From 3b122e587aeaa582296d9389c4e15469b589eb46 Mon Sep 17 00:00:00 2001 From: erwq <123213112a@gmail.com> Date: Mon, 14 Jul 2025 15:06:47 +0800 Subject: [PATCH 1/2] Add my custom modifications and experiment results --- .vscode/launch.json | 26 + .vscode/settings.json | 23 +- .vscode/tasks.json | 28 + .../loop-analysis/nest-analysis-tile-info.hpp | 22 + include/loop-analysis/nest-analysis.hpp | 8 +- include/workload/util/per-data-space.hpp | 12 +- src/applications/mapper/mapper.cpp | 1 + src/applications/model/main.cpp | 4 +- src/applications/model/model.cpp | 1 + src/loop-analysis/nest-analysis.cpp | 136 +- src/model/network-legacy.cpp | 1 - src/model/topology.cpp | 44 +- storage_comparison.png | Bin 0 -> 36782 bytes timeloop-mapper.ART.yaml | 19 + timeloop-mapper.ART_summary.yaml | 53 + timeloop-mapper.ERT.yaml | 89 + timeloop-mapper.ERT_summary.yaml | 115 + timeloop-mapper.accelergy.log | 964 ++ timeloop-mapper.flattened_architecture.yaml | 269 + workspace/README.md | 23 + workspace/cheatsheets/1_yaml_syntax.yaml | 95 + .../cheatsheets/2_arithmetic_parsing.yaml | 102 + workspace/cheatsheets/3_architecture.yaml | 161 + .../cheatsheets/4_compound_component.yaml | 52 + workspace/cheatsheets/5_jinja_parsing.yaml | 34 + workspace/example_designs/README.md | 72 + .../example_designs/_components/intmac.yaml | 32 + .../example_designs/_components/regfile.yaml | 45 + .../_components/regfile_metadata.yaml | 69 + .../_components/smartbuffer_RF.yaml | 64 + .../_components/smartbuffer_SRAM.yaml | 52 + .../_components/smartbuffer_metadata.yaml | 72 + .../_include/default_problem.yaml | 63 + .../example_designs/_include/mapper.yaml | 9 + .../example_designs/eyeriss_like/README.md | 33 + .../example_designs/eyeriss_like/arch.yaml | 107 + .../parsed-processed-input.yaml | 735 + .../default_problem/timeloop-mapper.ART.yaml | 19 + .../timeloop-mapper.ART_summary.yaml | 53 + .../default_problem/timeloop-mapper.ERT.yaml | 89 + .../timeloop-mapper.ERT_summary.yaml | 115 + .../timeloop-mapper.accelergy.log | 954 ++ ...imeloop-mapper.flattened_architecture.yaml | 244 + .../timeloop-mapper.map.tenssella.txt | 42 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../example_designs/simba_like/README.md | 23 + .../example_designs/simba_like/arch.yaml | 104 + .../parsed-processed-input.yaml | 795 + .../default_problem/timeloop-mapper.ART.yaml | 23 + .../timeloop-mapper.ART_summary.yaml | 65 + .../default_problem/timeloop-mapper.ERT.yaml | 103 + .../timeloop-mapper.ERT_summary.yaml | 138 + .../timeloop-mapper.accelergy.log | 953 ++ ...imeloop-mapper.flattened_architecture.yaml | 302 + .../timeloop-mapper.map.tenssella.txt | 53 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../simple_output_stationary/README.md | 13 + .../simple_output_stationary/arch.yaml | 97 + .../parsed-processed-input.yaml | 724 + .../default_problem/timeloop-mapper.ART.yaml | 19 + .../timeloop-mapper.ART_summary.yaml | 39 + .../default_problem/timeloop-mapper.ERT.yaml | 127 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 557 + ...imeloop-mapper.flattened_architecture.yaml | 219 + .../timeloop-mapper.map.tenssella.txt | 37 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../simple_weight_stationary/README.md | 21 + .../simple_weight_stationary/arch.yaml | 97 + .../parsed-processed-input.yaml | 724 + .../default_problem/timeloop-mapper.ART.yaml | 19 + .../timeloop-mapper.ART_summary.yaml | 39 + .../default_problem/timeloop-mapper.ERT.yaml | 127 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 557 + ...imeloop-mapper.flattened_architecture.yaml | 219 + .../timeloop-mapper.map.tenssella.txt | 36 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../sparse_tensor_core_like/README.md | 29 + .../sparse_tensor_core_like/arch.yaml | 90 + .../sparse_tensor_core_like/problem.yaml | 32 + .../parsed-processed-input.yaml | 678 + .../default_problem/timeloop-mapper.ART.yaml | 17 + .../timeloop-mapper.ART_summary.yaml | 54 + .../default_problem/timeloop-mapper.ERT.yaml | 105 + .../timeloop-mapper.ERT_summary.yaml | 132 + .../timeloop-mapper.accelergy.log | 744 + ...imeloop-mapper.flattened_architecture.yaml | 204 + .../timeloop-mapper.map.tenssella.txt | 37 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../01.2.1-DUDU-dot-product/arch.yaml | 25 + .../01.2.1-DUDU-dot-product/mapping.yaml | 5 + .../01.2.1-DUDU-dot-product/problem.yaml | 20 + .../parsed-processed-input.yaml | 489 + .../default_problem/timeloop-mapper.ART.yaml | 7 + .../timeloop-mapper.ART_summary.yaml | 17 + .../default_problem/timeloop-mapper.ERT.yaml | 25 + .../timeloop-mapper.ERT_summary.yaml | 31 + .../timeloop-mapper.accelergy.log | 272 + ...imeloop-mapper.flattened_architecture.yaml | 52 + .../timeloop-mapper.map.tenssella.txt | 3 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../01.2.2-SUDU-dot-product/arch.yaml | 34 + .../01.2.2-SUDU-dot-product/mapping.yaml | 5 + .../01.2.2-SUDU-dot-product/problem.yaml | 25 + .../parsed-processed-input.yaml | 508 + .../default_problem/timeloop-mapper.ART.yaml | 7 + .../timeloop-mapper.ART_summary.yaml | 17 + .../default_problem/timeloop-mapper.ERT.yaml | 25 + .../timeloop-mapper.ERT_summary.yaml | 31 + .../timeloop-mapper.accelergy.log | 272 + ...imeloop-mapper.flattened_architecture.yaml | 52 + .../timeloop-mapper.map.tenssella.txt | 3 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../01.2.3-SCDU-dot-product/arch.yaml | 46 + .../01.2.3-SCDU-dot-product/mapping.yaml | 5 + .../01.2.3-SCDU-dot-product/problem.yaml | 25 + .../parsed-processed-input.yaml | 516 + .../default_problem/timeloop-mapper.ART.yaml | 7 + .../timeloop-mapper.ART_summary.yaml | 27 + .../default_problem/timeloop-mapper.ERT.yaml | 40 + .../timeloop-mapper.ERT_summary.yaml | 63 + .../timeloop-mapper.accelergy.log | 500 + ...imeloop-mapper.flattened_architecture.yaml | 56 + .../timeloop-mapper.map.tenssella.txt | 3 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../sparseloop/02.2.1-spMspM/arch.yaml | 78 + .../sparseloop/02.2.1-spMspM/mapping.yaml | 10 + .../parsed-processed-input.yaml | 578 + .../default_problem/timeloop-mapper.ART.yaml | 9 + .../timeloop-mapper.ART_summary.yaml | 40 + .../default_problem/timeloop-mapper.ERT.yaml | 69 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 698 + ...imeloop-mapper.flattened_architecture.yaml | 89 + .../timeloop-mapper.map.tenssella.txt | 7 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../sparseloop/02.2.1-spMspM/problem.yaml | 33 + .../parsed-processed-input.yaml | 578 + .../default_problem/timeloop-mapper.ART.yaml | 9 + .../timeloop-mapper.ART_summary.yaml | 40 + .../default_problem/timeloop-mapper.ERT.yaml | 69 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 698 + ...imeloop-mapper.flattened_architecture.yaml | 89 + .../timeloop-mapper.map.tenssella.txt | 7 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../sparseloop/02.2.2-spMspM-tiled/arch.yaml | 79 + .../02.2.2-spMspM-tiled/mapping.yaml | 10 + .../parsed-processed-input.yaml | 579 + .../default_problem/timeloop-mapper.ART.yaml | 9 + .../timeloop-mapper.ART_summary.yaml | 40 + .../default_problem/timeloop-mapper.ERT.yaml | 69 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 698 + ...imeloop-mapper.flattened_architecture.yaml | 89 + .../timeloop-mapper.map.tenssella.txt | 7 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../02.2.2-spMspM-tiled/problem.yaml | 33 + .../parsed-processed-input.yaml | 579 + .../default_problem/timeloop-mapper.ART.yaml | 9 + .../timeloop-mapper.ART_summary.yaml | 40 + .../default_problem/timeloop-mapper.ERT.yaml | 69 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 698 + ...imeloop-mapper.flattened_architecture.yaml | 89 + .../timeloop-mapper.map.tenssella.txt | 7 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../sparseloop/03.2.1-conv1d/arch.yaml | 63 + .../sparseloop/03.2.1-conv1d/mapping.yaml | 11 + .../sparseloop/03.2.1-conv1d/problem.yaml | 24 + .../parsed-processed-input.yaml | 551 + .../default_problem/timeloop-mapper.ART.yaml | 9 + .../timeloop-mapper.ART_summary.yaml | 40 + .../default_problem/timeloop-mapper.ERT.yaml | 69 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 698 + ...imeloop-mapper.flattened_architecture.yaml | 87 + .../timeloop-mapper.map.tenssella.txt | 6 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../sparseloop/03.2.2-conv1d+oc/arch.yaml | 63 + .../sparseloop/03.2.2-conv1d+oc/mapping.yaml | 10 + .../sparseloop/03.2.2-conv1d+oc/problem.yaml | 27 + .../parsed-processed-input.yaml | 557 + .../default_problem/timeloop-mapper.ART.yaml | 9 + .../timeloop-mapper.ART_summary.yaml | 40 + .../default_problem/timeloop-mapper.ERT.yaml | 69 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 698 + ...imeloop-mapper.flattened_architecture.yaml | 87 + .../timeloop-mapper.map.tenssella.txt | 8 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../03.2.3-conv1d+oc-spatial/arch.yaml | 64 + .../03.2.3-conv1d+oc-spatial/mapping.yaml | 17 + .../03.2.3-conv1d+oc-spatial/problem.yaml | 27 + .../parsed-processed-input.yaml | 590 + .../default_problem/timeloop-mapper.ART.yaml | 11 + .../timeloop-mapper.ART_summary.yaml | 43 + .../default_problem/timeloop-mapper.ERT.yaml | 69 + .../timeloop-mapper.ERT_summary.yaml | 104 + .../timeloop-mapper.accelergy.log | 702 + ...imeloop-mapper.flattened_architecture.yaml | 110 + .../timeloop-mapper.map.tenssella.txt | 17 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../04.2.1-eyeriss-like-gating/arch.yaml | 153 + .../04.2.1-eyeriss-like-gating/mapping.yaml | 62 + .../04.2.1-eyeriss-like-gating/problem.yaml | 63 + .../parsed-processed-input.yaml | 809 + .../default_problem/timeloop-mapper.ART.yaml | 19 + .../timeloop-mapper.ART_summary.yaml | 59 + .../default_problem/timeloop-mapper.ERT.yaml | 104 + .../timeloop-mapper.ERT_summary.yaml | 137 + .../timeloop-mapper.accelergy.log | 853 + ...imeloop-mapper.flattened_architecture.yaml | 252 + .../timeloop-mapper.map.tenssella.txt | 42 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../arch.yaml | 157 + .../problem.yaml | 63 + .../parsed-processed-input.yaml | 795 + .../default_problem/timeloop-mapper.ART.yaml | 19 + .../timeloop-mapper.ART_summary.yaml | 59 + .../default_problem/timeloop-mapper.ERT.yaml | 104 + .../timeloop-mapper.ERT_summary.yaml | 137 + .../timeloop-mapper.accelergy.log | 853 + ...imeloop-mapper.flattened_architecture.yaml | 252 + .../timeloop-mapper.map.tenssella.txt | 42 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../arch.yaml | 159 + .../problem.yaml | 63 + .../parsed-processed-input.yaml | 844 + .../default_problem/timeloop-mapper.ART.yaml | 19 + .../timeloop-mapper.ART_summary.yaml | 59 + .../default_problem/timeloop-mapper.ERT.yaml | 104 + .../timeloop-mapper.ERT_summary.yaml | 137 + .../timeloop-mapper.accelergy.log | 888 + ...imeloop-mapper.flattened_architecture.yaml | 255 + .../timeloop-mapper.map.tenssella.txt | 42 + .../default_problem/timeloop-mapper.oaves.csv | 0 .../example_designs/top.yaml.jinja2 | 67 + .../CONV/AlexNet/AlexNet_layer1.yaml | 59 + .../CONV/AlexNet/AlexNet_layer2.yaml | 59 + .../CONV/AlexNet/AlexNet_layer3.yaml | 59 + .../CONV/AlexNet/AlexNet_layer4.yaml | 59 + .../CONV/AlexNet/AlexNet_layer5.yaml | 59 + .../layer_shapes/CONV/VGG01/VGG01_layer1.yaml | 59 + .../layer_shapes/CONV/VGG01/VGG01_layer2.yaml | 59 + .../layer_shapes/CONV/VGG01/VGG01_layer3.yaml | 59 + .../layer_shapes/CONV/VGG01/VGG01_layer4.yaml | 59 + .../layer_shapes/CONV/VGG01/VGG01_layer5.yaml | 59 + .../layer_shapes/CONV/VGG01/VGG01_layer6.yaml | 59 + .../layer_shapes/CONV/VGG01/VGG01_layer7.yaml | 59 + .../layer_shapes/CONV/VGG01/VGG01_layer8.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer1.yaml | 59 + .../CONV/VGG02/VGG02_layer10.yaml | 59 + .../CONV/VGG02/VGG02_layer11.yaml | 59 + .../CONV/VGG02/VGG02_layer12.yaml | 59 + .../CONV/VGG02/VGG02_layer13.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer2.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer3.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer4.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer5.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer6.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer7.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer8.yaml | 59 + .../layer_shapes/CONV/VGG02/VGG02_layer9.yaml | 59 + .../MM/ResNet50_repr/M1024-K512-N256.yaml | 32 + .../MM/ResNet50_repr/M512-K128-N1024.yaml | 32 + .../MM/ResNet50_repr/M512-K256-N1024.yaml | 32 + .../layer_shapes/alexnet/0.yaml | 6 + .../layer_shapes/alexnet/1.yaml | 6 + .../layer_shapes/alexnet/2.yaml | 6 + .../layer_shapes/alexnet/3.yaml | 6 + .../layer_shapes/alexnet/4.yaml | 6 + .../layer_shapes/alexnet/5.yaml | 6 + .../layer_shapes/alexnet/6.yaml | 6 + .../layer_shapes/alexnet/7.yaml | 6 + .../layer_shapes/densenet201/000.yaml | 6 + .../layer_shapes/densenet201/001.yaml | 6 + .../layer_shapes/densenet201/002.yaml | 6 + .../layer_shapes/densenet201/003.yaml | 6 + .../layer_shapes/densenet201/004.yaml | 6 + .../layer_shapes/densenet201/005.yaml | 6 + .../layer_shapes/densenet201/006.yaml | 6 + .../layer_shapes/densenet201/007.yaml | 6 + .../layer_shapes/densenet201/008.yaml | 6 + .../layer_shapes/densenet201/009.yaml | 6 + .../layer_shapes/densenet201/010.yaml | 6 + .../layer_shapes/densenet201/011.yaml | 6 + .../layer_shapes/densenet201/012.yaml | 6 + .../layer_shapes/densenet201/013.yaml | 6 + .../layer_shapes/densenet201/014.yaml | 6 + .../layer_shapes/densenet201/015.yaml | 6 + .../layer_shapes/densenet201/016.yaml | 6 + .../layer_shapes/densenet201/017.yaml | 6 + .../layer_shapes/densenet201/018.yaml | 6 + .../layer_shapes/densenet201/019.yaml | 6 + .../layer_shapes/densenet201/020.yaml | 6 + .../layer_shapes/densenet201/021.yaml | 6 + .../layer_shapes/densenet201/022.yaml | 6 + .../layer_shapes/densenet201/023.yaml | 6 + .../layer_shapes/densenet201/024.yaml | 6 + .../layer_shapes/densenet201/025.yaml | 6 + .../layer_shapes/densenet201/026.yaml | 6 + .../layer_shapes/densenet201/027.yaml | 6 + .../layer_shapes/densenet201/028.yaml | 6 + .../layer_shapes/densenet201/029.yaml | 6 + .../layer_shapes/densenet201/030.yaml | 6 + .../layer_shapes/densenet201/031.yaml | 6 + .../layer_shapes/densenet201/032.yaml | 6 + .../layer_shapes/densenet201/033.yaml | 6 + .../layer_shapes/densenet201/034.yaml | 6 + .../layer_shapes/densenet201/035.yaml | 6 + .../layer_shapes/densenet201/036.yaml | 6 + .../layer_shapes/densenet201/037.yaml | 6 + .../layer_shapes/densenet201/038.yaml | 6 + .../layer_shapes/densenet201/039.yaml | 6 + .../layer_shapes/densenet201/040.yaml | 6 + .../layer_shapes/densenet201/041.yaml | 6 + .../layer_shapes/densenet201/042.yaml | 6 + .../layer_shapes/densenet201/043.yaml | 6 + .../layer_shapes/densenet201/044.yaml | 6 + .../layer_shapes/densenet201/045.yaml | 6 + .../layer_shapes/densenet201/046.yaml | 6 + .../layer_shapes/densenet201/047.yaml | 6 + .../layer_shapes/densenet201/048.yaml | 6 + .../layer_shapes/densenet201/049.yaml | 6 + .../layer_shapes/densenet201/050.yaml | 6 + .../layer_shapes/densenet201/051.yaml | 6 + .../layer_shapes/densenet201/052.yaml | 6 + .../layer_shapes/densenet201/053.yaml | 6 + .../layer_shapes/densenet201/054.yaml | 6 + .../layer_shapes/densenet201/055.yaml | 6 + .../layer_shapes/densenet201/056.yaml | 6 + .../layer_shapes/densenet201/057.yaml | 6 + .../layer_shapes/densenet201/058.yaml | 6 + .../layer_shapes/densenet201/059.yaml | 6 + .../layer_shapes/densenet201/060.yaml | 6 + .../layer_shapes/densenet201/061.yaml | 6 + .../layer_shapes/densenet201/062.yaml | 6 + .../layer_shapes/densenet201/063.yaml | 6 + .../layer_shapes/densenet201/064.yaml | 6 + .../layer_shapes/densenet201/065.yaml | 6 + .../layer_shapes/densenet201/066.yaml | 6 + .../layer_shapes/densenet201/067.yaml | 6 + .../layer_shapes/densenet201/068.yaml | 6 + .../layer_shapes/densenet201/069.yaml | 6 + .../layer_shapes/densenet201/070.yaml | 6 + .../layer_shapes/densenet201/071.yaml | 6 + .../layer_shapes/densenet201/072.yaml | 6 + .../layer_shapes/densenet201/073.yaml | 6 + .../layer_shapes/densenet201/074.yaml | 6 + .../layer_shapes/densenet201/075.yaml | 6 + .../layer_shapes/densenet201/076.yaml | 6 + .../layer_shapes/densenet201/077.yaml | 6 + .../layer_shapes/densenet201/078.yaml | 6 + .../layer_shapes/densenet201/079.yaml | 6 + .../layer_shapes/densenet201/080.yaml | 6 + .../layer_shapes/densenet201/081.yaml | 6 + .../layer_shapes/densenet201/082.yaml | 6 + .../layer_shapes/densenet201/083.yaml | 6 + .../layer_shapes/densenet201/084.yaml | 6 + .../layer_shapes/densenet201/085.yaml | 6 + .../layer_shapes/densenet201/086.yaml | 6 + .../layer_shapes/densenet201/087.yaml | 6 + .../layer_shapes/densenet201/088.yaml | 6 + .../layer_shapes/densenet201/089.yaml | 6 + .../layer_shapes/densenet201/090.yaml | 6 + .../layer_shapes/densenet201/091.yaml | 6 + .../layer_shapes/densenet201/092.yaml | 6 + .../layer_shapes/densenet201/093.yaml | 6 + .../layer_shapes/densenet201/094.yaml | 6 + .../layer_shapes/densenet201/095.yaml | 6 + .../layer_shapes/densenet201/096.yaml | 6 + .../layer_shapes/densenet201/097.yaml | 6 + .../layer_shapes/densenet201/098.yaml | 6 + .../layer_shapes/densenet201/099.yaml | 6 + .../layer_shapes/densenet201/100.yaml | 6 + .../layer_shapes/densenet201/101.yaml | 6 + .../layer_shapes/densenet201/102.yaml | 6 + .../layer_shapes/densenet201/103.yaml | 6 + .../layer_shapes/densenet201/104.yaml | 6 + .../layer_shapes/densenet201/105.yaml | 6 + .../layer_shapes/densenet201/106.yaml | 6 + .../layer_shapes/densenet201/107.yaml | 6 + .../layer_shapes/densenet201/108.yaml | 6 + .../layer_shapes/densenet201/109.yaml | 6 + .../layer_shapes/densenet201/110.yaml | 6 + .../layer_shapes/densenet201/111.yaml | 6 + .../layer_shapes/densenet201/112.yaml | 6 + .../layer_shapes/densenet201/113.yaml | 6 + .../layer_shapes/densenet201/114.yaml | 6 + .../layer_shapes/densenet201/115.yaml | 6 + .../layer_shapes/densenet201/116.yaml | 6 + .../layer_shapes/densenet201/117.yaml | 6 + .../layer_shapes/densenet201/118.yaml | 6 + .../layer_shapes/densenet201/119.yaml | 6 + .../layer_shapes/densenet201/120.yaml | 6 + .../layer_shapes/densenet201/121.yaml | 6 + .../layer_shapes/densenet201/122.yaml | 6 + .../layer_shapes/densenet201/123.yaml | 6 + .../layer_shapes/densenet201/124.yaml | 6 + .../layer_shapes/densenet201/125.yaml | 6 + .../layer_shapes/densenet201/126.yaml | 6 + .../layer_shapes/densenet201/127.yaml | 6 + .../layer_shapes/densenet201/128.yaml | 6 + .../layer_shapes/densenet201/129.yaml | 6 + .../layer_shapes/densenet201/130.yaml | 6 + .../layer_shapes/densenet201/131.yaml | 6 + .../layer_shapes/densenet201/132.yaml | 6 + .../layer_shapes/densenet201/133.yaml | 6 + .../layer_shapes/densenet201/134.yaml | 6 + .../layer_shapes/densenet201/135.yaml | 6 + .../layer_shapes/densenet201/136.yaml | 6 + .../layer_shapes/densenet201/137.yaml | 6 + .../layer_shapes/densenet201/138.yaml | 6 + .../layer_shapes/densenet201/139.yaml | 6 + .../layer_shapes/densenet201/140.yaml | 6 + .../layer_shapes/densenet201/141.yaml | 6 + .../layer_shapes/densenet201/142.yaml | 6 + .../layer_shapes/densenet201/143.yaml | 6 + .../layer_shapes/densenet201/144.yaml | 6 + .../layer_shapes/densenet201/145.yaml | 6 + .../layer_shapes/densenet201/146.yaml | 6 + .../layer_shapes/densenet201/147.yaml | 6 + .../layer_shapes/densenet201/148.yaml | 6 + .../layer_shapes/densenet201/149.yaml | 6 + .../layer_shapes/densenet201/150.yaml | 6 + .../layer_shapes/densenet201/151.yaml | 6 + .../layer_shapes/densenet201/152.yaml | 6 + .../layer_shapes/densenet201/153.yaml | 6 + .../layer_shapes/densenet201/154.yaml | 6 + .../layer_shapes/densenet201/155.yaml | 6 + .../layer_shapes/densenet201/156.yaml | 6 + .../layer_shapes/densenet201/157.yaml | 6 + .../layer_shapes/densenet201/158.yaml | 6 + .../layer_shapes/densenet201/159.yaml | 6 + .../layer_shapes/densenet201/160.yaml | 6 + .../layer_shapes/densenet201/161.yaml | 6 + .../layer_shapes/densenet201/162.yaml | 6 + .../layer_shapes/densenet201/163.yaml | 6 + .../layer_shapes/densenet201/164.yaml | 6 + .../layer_shapes/densenet201/165.yaml | 6 + .../layer_shapes/densenet201/166.yaml | 6 + .../layer_shapes/densenet201/167.yaml | 6 + .../layer_shapes/densenet201/168.yaml | 6 + .../layer_shapes/densenet201/169.yaml | 6 + .../layer_shapes/densenet201/170.yaml | 6 + .../layer_shapes/densenet201/171.yaml | 6 + .../layer_shapes/densenet201/172.yaml | 6 + .../layer_shapes/densenet201/173.yaml | 6 + .../layer_shapes/densenet201/174.yaml | 6 + .../layer_shapes/densenet201/175.yaml | 6 + .../layer_shapes/densenet201/176.yaml | 6 + .../layer_shapes/densenet201/177.yaml | 6 + .../layer_shapes/densenet201/178.yaml | 6 + .../layer_shapes/densenet201/179.yaml | 6 + .../layer_shapes/densenet201/180.yaml | 6 + .../layer_shapes/densenet201/181.yaml | 6 + .../layer_shapes/densenet201/182.yaml | 6 + .../layer_shapes/densenet201/183.yaml | 6 + .../layer_shapes/densenet201/184.yaml | 6 + .../layer_shapes/densenet201/185.yaml | 6 + .../layer_shapes/densenet201/186.yaml | 6 + .../layer_shapes/densenet201/187.yaml | 6 + .../layer_shapes/densenet201/188.yaml | 6 + .../layer_shapes/densenet201/189.yaml | 6 + .../layer_shapes/densenet201/190.yaml | 6 + .../layer_shapes/densenet201/191.yaml | 6 + .../layer_shapes/densenet201/192.yaml | 6 + .../layer_shapes/densenet201/193.yaml | 6 + .../layer_shapes/densenet201/194.yaml | 6 + .../layer_shapes/densenet201/195.yaml | 6 + .../layer_shapes/densenet201/196.yaml | 6 + .../layer_shapes/densenet201/197.yaml | 6 + .../layer_shapes/densenet201/198.yaml | 6 + .../layer_shapes/densenet201/199.yaml | 6 + .../layer_shapes/densenet201/200.yaml | 6 + .../layer_shapes/dpt_large/000.yaml | 6 + .../layer_shapes/dpt_large/001.yaml | 6 + .../layer_shapes/dpt_large/002.yaml | 6 + .../layer_shapes/dpt_large/003.yaml | 6 + .../layer_shapes/dpt_large/004.yaml | 6 + .../layer_shapes/dpt_large/005.yaml | 6 + .../layer_shapes/dpt_large/006.yaml | 6 + .../layer_shapes/dpt_large/007.yaml | 6 + .../layer_shapes/dpt_large/008.yaml | 6 + .../layer_shapes/dpt_large/009.yaml | 6 + .../layer_shapes/dpt_large/010.yaml | 6 + .../layer_shapes/dpt_large/011.yaml | 6 + .../layer_shapes/dpt_large/012.yaml | 6 + .../layer_shapes/dpt_large/013.yaml | 6 + .../layer_shapes/dpt_large/014.yaml | 6 + .../layer_shapes/dpt_large/015.yaml | 6 + .../layer_shapes/dpt_large/016.yaml | 6 + .../layer_shapes/dpt_large/017.yaml | 6 + .../layer_shapes/dpt_large/018.yaml | 6 + .../layer_shapes/dpt_large/019.yaml | 6 + .../layer_shapes/dpt_large/020.yaml | 6 + .../layer_shapes/dpt_large/021.yaml | 6 + .../layer_shapes/dpt_large/022.yaml | 6 + .../layer_shapes/dpt_large/023.yaml | 6 + .../layer_shapes/dpt_large/024.yaml | 6 + .../layer_shapes/dpt_large/025.yaml | 6 + .../layer_shapes/dpt_large/026.yaml | 6 + .../layer_shapes/dpt_large/027.yaml | 6 + .../layer_shapes/dpt_large/028.yaml | 6 + .../layer_shapes/dpt_large/029.yaml | 6 + .../layer_shapes/dpt_large/030.yaml | 6 + .../layer_shapes/dpt_large/031.yaml | 6 + .../layer_shapes/dpt_large/032.yaml | 6 + .../layer_shapes/dpt_large/033.yaml | 6 + .../layer_shapes/dpt_large/034.yaml | 6 + .../layer_shapes/dpt_large/035.yaml | 6 + .../layer_shapes/dpt_large/036.yaml | 6 + .../layer_shapes/dpt_large/037.yaml | 6 + .../layer_shapes/dpt_large/038.yaml | 6 + .../layer_shapes/dpt_large/039.yaml | 6 + .../layer_shapes/dpt_large/040.yaml | 6 + .../layer_shapes/dpt_large/041.yaml | 6 + .../layer_shapes/dpt_large/042.yaml | 6 + .../layer_shapes/dpt_large/043.yaml | 6 + .../layer_shapes/dpt_large/044.yaml | 6 + .../layer_shapes/dpt_large/045.yaml | 6 + .../layer_shapes/dpt_large/046.yaml | 6 + .../layer_shapes/dpt_large/047.yaml | 6 + .../layer_shapes/dpt_large/048.yaml | 6 + .../layer_shapes/dpt_large/049.yaml | 6 + .../layer_shapes/dpt_large/050.yaml | 6 + .../layer_shapes/dpt_large/051.yaml | 6 + .../layer_shapes/dpt_large/052.yaml | 6 + .../layer_shapes/dpt_large/053.yaml | 6 + .../layer_shapes/dpt_large/054.yaml | 6 + .../layer_shapes/dpt_large/055.yaml | 6 + .../layer_shapes/dpt_large/056.yaml | 6 + .../layer_shapes/dpt_large/057.yaml | 6 + .../layer_shapes/dpt_large/058.yaml | 6 + .../layer_shapes/dpt_large/059.yaml | 6 + .../layer_shapes/dpt_large/060.yaml | 6 + .../layer_shapes/dpt_large/061.yaml | 6 + .../layer_shapes/dpt_large/062.yaml | 6 + .../layer_shapes/dpt_large/063.yaml | 6 + .../layer_shapes/dpt_large/064.yaml | 6 + .../layer_shapes/dpt_large/065.yaml | 6 + .../layer_shapes/dpt_large/066.yaml | 6 + .../layer_shapes/dpt_large/067.yaml | 6 + .../layer_shapes/dpt_large/068.yaml | 6 + .../layer_shapes/dpt_large/069.yaml | 6 + .../layer_shapes/dpt_large/070.yaml | 6 + .../layer_shapes/dpt_large/071.yaml | 6 + .../layer_shapes/dpt_large/072.yaml | 6 + .../layer_shapes/dpt_large/073.yaml | 6 + .../layer_shapes/dpt_large/074.yaml | 6 + .../layer_shapes/dpt_large/075.yaml | 6 + .../layer_shapes/dpt_large/076.yaml | 6 + .../layer_shapes/dpt_large/077.yaml | 6 + .../layer_shapes/dpt_large/078.yaml | 6 + .../layer_shapes/dpt_large/079.yaml | 6 + .../layer_shapes/dpt_large/080.yaml | 6 + .../layer_shapes/dpt_large/081.yaml | 6 + .../layer_shapes/dpt_large/082.yaml | 6 + .../layer_shapes/dpt_large/083.yaml | 6 + .../layer_shapes/dpt_large/084.yaml | 6 + .../layer_shapes/dpt_large/085.yaml | 6 + .../layer_shapes/dpt_large/086.yaml | 6 + .../layer_shapes/dpt_large/087.yaml | 6 + .../layer_shapes/dpt_large/088.yaml | 6 + .../layer_shapes/dpt_large/089.yaml | 6 + .../layer_shapes/dpt_large/090.yaml | 6 + .../layer_shapes/dpt_large/091.yaml | 6 + .../layer_shapes/dpt_large/092.yaml | 6 + .../layer_shapes/dpt_large/093.yaml | 6 + .../layer_shapes/dpt_large/094.yaml | 6 + .../layer_shapes/dpt_large/095.yaml | 6 + .../layer_shapes/dpt_large/096.yaml | 6 + .../layer_shapes/dpt_large/097.yaml | 6 + .../layer_shapes/dpt_large/098.yaml | 6 + .../layer_shapes/dpt_large/099.yaml | 6 + .../layer_shapes/dpt_large/100.yaml | 6 + .../layer_shapes/dpt_large/101.yaml | 6 + .../layer_shapes/dpt_large/102.yaml | 6 + .../layer_shapes/dpt_large/103.yaml | 6 + .../layer_shapes/dpt_large/104.yaml | 6 + .../layer_shapes/dpt_large/105.yaml | 6 + .../layer_shapes/dpt_large/106.yaml | 6 + .../layer_shapes/dpt_large/107.yaml | 6 + .../layer_shapes/dpt_large/108.yaml | 6 + .../layer_shapes/dpt_large/109.yaml | 6 + .../layer_shapes/dpt_large/110.yaml | 6 + .../layer_shapes/dpt_large/111.yaml | 6 + .../layer_shapes/dpt_large/112.yaml | 6 + .../layer_shapes/dpt_large/113.yaml | 6 + .../layer_shapes/dpt_large/114.yaml | 6 + .../layer_shapes/dpt_large/115.yaml | 6 + .../layer_shapes/dpt_large/116.yaml | 6 + .../layer_shapes/dpt_large/117.yaml | 6 + .../layer_shapes/dpt_large/118.yaml | 6 + .../layer_shapes/dpt_large/119.yaml | 6 + .../layer_shapes/dpt_large/120.yaml | 6 + .../layer_shapes/dpt_large/121.yaml | 6 + .../layer_shapes/dpt_large/122.yaml | 6 + .../layer_shapes/dpt_large/123.yaml | 6 + .../layer_shapes/dpt_large/124.yaml | 6 + .../layer_shapes/dpt_large/125.yaml | 6 + .../layer_shapes/dpt_large/126.yaml | 6 + .../layer_shapes/dpt_large/127.yaml | 6 + .../layer_shapes/dpt_large/128.yaml | 6 + .../layer_shapes/dpt_large/129.yaml | 6 + .../layer_shapes/dpt_large/130.yaml | 6 + .../layer_shapes/dpt_large/131.yaml | 6 + .../layer_shapes/dpt_large/132.yaml | 6 + .../layer_shapes/dpt_large/133.yaml | 6 + .../layer_shapes/dpt_large/134.yaml | 6 + .../layer_shapes/dpt_large/135.yaml | 6 + .../layer_shapes/dpt_large/136.yaml | 6 + .../layer_shapes/dpt_large/137.yaml | 6 + .../layer_shapes/dpt_large/138.yaml | 6 + .../layer_shapes/dpt_large/139.yaml | 6 + .../layer_shapes/dpt_large/140.yaml | 6 + .../layer_shapes/dpt_large/141.yaml | 6 + .../layer_shapes/dpt_large/142.yaml | 6 + .../layer_shapes/dpt_large/143.yaml | 6 + .../layer_shapes/dpt_large/144.yaml | 6 + .../layer_shapes/dpt_large/145.yaml | 6 + .../layer_shapes/dpt_large/146.yaml | 6 + .../layer_shapes/dpt_large/147.yaml | 6 + .../layer_shapes/dpt_large/148.yaml | 6 + .../layer_shapes/dpt_large/149.yaml | 6 + .../layer_shapes/dpt_large/150.yaml | 6 + .../layer_shapes/dpt_large/151.yaml | 6 + .../layer_shapes/dpt_large/152.yaml | 6 + .../layer_shapes/dpt_large/153.yaml | 6 + .../layer_shapes/dpt_large/154.yaml | 6 + .../layer_shapes/dpt_large/155.yaml | 6 + .../layer_shapes/dpt_large/156.yaml | 6 + .../layer_shapes/dpt_large/157.yaml | 6 + .../layer_shapes/dpt_large/158.yaml | 6 + .../layer_shapes/dpt_large/159.yaml | 6 + .../layer_shapes/dpt_large/160.yaml | 6 + .../layer_shapes/dpt_large/161.yaml | 6 + .../layer_shapes/dpt_large/162.yaml | 6 + .../layer_shapes/dpt_large/163.yaml | 6 + .../layer_shapes/dpt_large/164.yaml | 6 + .../layer_shapes/dpt_large/165.yaml | 6 + .../layer_shapes/dpt_large/166.yaml | 6 + .../layer_shapes/dpt_large/167.yaml | 6 + .../layer_shapes/dpt_large/168.yaml | 6 + .../layer_shapes/dpt_large/169.yaml | 6 + .../layer_shapes/dpt_large/170.yaml | 6 + .../layer_shapes/dpt_large/171.yaml | 6 + .../layer_shapes/dpt_large/172.yaml | 6 + .../layer_shapes/dpt_large/173.yaml | 6 + .../layer_shapes/dpt_large/174.yaml | 6 + .../layer_shapes/dpt_large/175.yaml | 6 + .../layer_shapes/dpt_large/176.yaml | 6 + .../layer_shapes/dpt_large/177.yaml | 6 + .../layer_shapes/dpt_large/178.yaml | 6 + .../layer_shapes/dpt_large/179.yaml | 6 + .../layer_shapes/dpt_large/180.yaml | 6 + .../layer_shapes/dpt_large/181.yaml | 6 + .../layer_shapes/dpt_large/182.yaml | 6 + .../layer_shapes/dpt_large/183.yaml | 6 + .../layer_shapes/dpt_large/184.yaml | 6 + .../layer_shapes/dpt_large/185.yaml | 6 + .../layer_shapes/dpt_large/186.yaml | 6 + .../layer_shapes/dpt_large/187.yaml | 6 + .../layer_shapes/dpt_large/188.yaml | 6 + .../layer_shapes/dpt_large/189.yaml | 6 + .../layer_shapes/dpt_large/190.yaml | 6 + .../layer_shapes/dpt_large/191.yaml | 6 + .../layer_shapes/dpt_large/192.yaml | 6 + .../layer_shapes/dpt_large/193.yaml | 6 + .../layer_shapes/dpt_large/194.yaml | 6 + .../layer_shapes/dpt_large/195.yaml | 6 + .../layer_shapes/dpt_large/196.yaml | 6 + .../layer_shapes/dpt_large/197.yaml | 6 + .../layer_shapes/dpt_large/198.yaml | 6 + .../layer_shapes/dpt_large/199.yaml | 6 + .../layer_shapes/dpt_large/200.yaml | 6 + .../layer_shapes/dpt_large/201.yaml | 6 + .../layer_shapes/dpt_large/202.yaml | 6 + .../layer_shapes/dpt_large/203.yaml | 6 + .../layer_shapes/dpt_large/204.yaml | 6 + .../layer_shapes/dpt_large/205.yaml | 6 + .../layer_shapes/dpt_large/206.yaml | 6 + .../layer_shapes/dpt_large/207.yaml | 6 + .../layer_shapes/dpt_large/208.yaml | 6 + .../layer_shapes/dpt_large/209.yaml | 6 + .../layer_shapes/dpt_large/210.yaml | 6 + .../layer_shapes/dpt_large/211.yaml | 6 + .../layer_shapes/dpt_large/212.yaml | 6 + .../layer_shapes/dpt_large/213.yaml | 6 + .../layer_shapes/dpt_large/214.yaml | 6 + .../layer_shapes/dpt_large/215.yaml | 6 + .../layer_shapes/dpt_large/216.yaml | 6 + .../layer_shapes/dpt_large/217.yaml | 6 + .../layer_shapes/dpt_large/218.yaml | 6 + .../layer_shapes/dpt_large/219.yaml | 6 + .../layer_shapes/dpt_large/220.yaml | 6 + .../layer_shapes/dpt_large/221.yaml | 6 + .../layer_shapes/dpt_large/222.yaml | 6 + .../layer_shapes/dpt_large/223.yaml | 6 + .../layer_shapes/dpt_large/224.yaml | 6 + .../layer_shapes/dpt_large/225.yaml | 6 + .../layer_shapes/dpt_large/226.yaml | 6 + .../layer_shapes/gpt2/000.yaml | 6 + .../layer_shapes/gpt2/001.yaml | 6 + .../layer_shapes/gpt2/002.yaml | 6 + .../layer_shapes/gpt2/003.yaml | 6 + .../layer_shapes/gpt2/004.yaml | 6 + .../layer_shapes/gpt2/005.yaml | 6 + .../layer_shapes/gpt2/006.yaml | 6 + .../layer_shapes/gpt2/007.yaml | 6 + .../layer_shapes/gpt2/008.yaml | 6 + .../layer_shapes/gpt2/009.yaml | 6 + .../layer_shapes/gpt2/010.yaml | 6 + .../layer_shapes/gpt2/011.yaml | 6 + .../layer_shapes/gpt2/012.yaml | 6 + .../layer_shapes/gpt2/013.yaml | 6 + .../layer_shapes/gpt2/014.yaml | 6 + .../layer_shapes/gpt2/015.yaml | 6 + .../layer_shapes/gpt2/016.yaml | 6 + .../layer_shapes/gpt2/017.yaml | 6 + .../layer_shapes/gpt2/018.yaml | 6 + .../layer_shapes/gpt2/019.yaml | 6 + .../layer_shapes/gpt2/020.yaml | 6 + .../layer_shapes/gpt2/021.yaml | 6 + .../layer_shapes/gpt2/022.yaml | 6 + .../layer_shapes/gpt2/023.yaml | 6 + .../layer_shapes/gpt2/024.yaml | 6 + .../layer_shapes/gpt2/025.yaml | 6 + .../layer_shapes/gpt2/026.yaml | 6 + .../layer_shapes/gpt2/027.yaml | 6 + .../layer_shapes/gpt2/028.yaml | 6 + .../layer_shapes/gpt2/029.yaml | 6 + .../layer_shapes/gpt2/030.yaml | 6 + .../layer_shapes/gpt2/031.yaml | 6 + .../layer_shapes/gpt2/032.yaml | 6 + .../layer_shapes/gpt2/033.yaml | 6 + .../layer_shapes/gpt2/034.yaml | 6 + .../layer_shapes/gpt2/035.yaml | 6 + .../layer_shapes/gpt2/036.yaml | 6 + .../layer_shapes/gpt2/037.yaml | 6 + .../layer_shapes/gpt2/038.yaml | 6 + .../layer_shapes/gpt2/039.yaml | 6 + .../layer_shapes/gpt2/040.yaml | 6 + .../layer_shapes/gpt2/041.yaml | 6 + .../layer_shapes/gpt2/042.yaml | 6 + .../layer_shapes/gpt2/043.yaml | 6 + .../layer_shapes/gpt2/044.yaml | 6 + .../layer_shapes/gpt2/045.yaml | 6 + .../layer_shapes/gpt2/046.yaml | 6 + .../layer_shapes/gpt2/047.yaml | 6 + .../layer_shapes/gpt2/048.yaml | 6 + .../layer_shapes/gpt2/049.yaml | 6 + .../layer_shapes/gpt2/050.yaml | 6 + .../layer_shapes/gpt2/051.yaml | 6 + .../layer_shapes/gpt2/052.yaml | 6 + .../layer_shapes/gpt2/053.yaml | 6 + .../layer_shapes/gpt2/054.yaml | 6 + .../layer_shapes/gpt2/055.yaml | 6 + .../layer_shapes/gpt2/056.yaml | 6 + .../layer_shapes/gpt2/057.yaml | 6 + .../layer_shapes/gpt2/058.yaml | 6 + .../layer_shapes/gpt2/059.yaml | 6 + .../layer_shapes/gpt2/060.yaml | 6 + .../layer_shapes/gpt2/061.yaml | 6 + .../layer_shapes/gpt2/062.yaml | 6 + .../layer_shapes/gpt2/063.yaml | 6 + .../layer_shapes/gpt2/064.yaml | 6 + .../layer_shapes/gpt2/065.yaml | 6 + .../layer_shapes/gpt2/066.yaml | 6 + .../layer_shapes/gpt2/067.yaml | 6 + .../layer_shapes/gpt2/068.yaml | 6 + .../layer_shapes/gpt2/069.yaml | 6 + .../layer_shapes/gpt2/070.yaml | 6 + .../layer_shapes/gpt2/071.yaml | 6 + .../layer_shapes/gpt2/072.yaml | 6 + .../layer_shapes/gpt2/073.yaml | 6 + .../layer_shapes/gpt2/074.yaml | 6 + .../layer_shapes/gpt2/075.yaml | 6 + .../layer_shapes/gpt2/076.yaml | 6 + .../layer_shapes/gpt2/077.yaml | 6 + .../layer_shapes/gpt2/078.yaml | 6 + .../layer_shapes/gpt2/079.yaml | 6 + .../layer_shapes/gpt2/080.yaml | 6 + .../layer_shapes/gpt2/081.yaml | 6 + .../layer_shapes/gpt2/082.yaml | 6 + .../layer_shapes/gpt2/083.yaml | 6 + .../layer_shapes/gpt2/084.yaml | 6 + .../layer_shapes/gpt2/085.yaml | 6 + .../layer_shapes/gpt2/086.yaml | 6 + .../layer_shapes/gpt2/087.yaml | 6 + .../layer_shapes/gpt2/088.yaml | 6 + .../layer_shapes/gpt2/089.yaml | 6 + .../layer_shapes/gpt2/090.yaml | 6 + .../layer_shapes/gpt2/091.yaml | 6 + .../layer_shapes/gpt2/092.yaml | 6 + .../layer_shapes/gpt2/093.yaml | 6 + .../layer_shapes/gpt2/094.yaml | 6 + .../layer_shapes/gpt2/095.yaml | 6 + .../layer_shapes/gpt2/096.yaml | 6 + .../layer_shapes/gpt2/097.yaml | 6 + .../layer_shapes/gpt2/098.yaml | 6 + .../layer_shapes/gpt2/099.yaml | 6 + .../layer_shapes/gpt2/100.yaml | 6 + .../layer_shapes/gpt2/101.yaml | 6 + .../layer_shapes/gpt2/102.yaml | 6 + .../layer_shapes/gpt2/103.yaml | 6 + .../layer_shapes/gpt2/104.yaml | 6 + .../layer_shapes/gpt2/105.yaml | 6 + .../layer_shapes/gpt2/106.yaml | 6 + .../layer_shapes/gpt2/107.yaml | 6 + .../layer_shapes/gpt2/108.yaml | 6 + .../layer_shapes/gpt2/109.yaml | 6 + .../layer_shapes/gpt2/110.yaml | 6 + .../layer_shapes/gpt2/111.yaml | 6 + .../layer_shapes/gpt2/112.yaml | 6 + .../layer_shapes/gpt2/113.yaml | 6 + .../layer_shapes/gpt2/114.yaml | 6 + .../layer_shapes/gpt2/115.yaml | 6 + .../layer_shapes/gpt2/116.yaml | 6 + .../layer_shapes/gpt2/117.yaml | 6 + .../layer_shapes/gpt2/118.yaml | 6 + .../layer_shapes/gpt2/119.yaml | 6 + .../layer_shapes/gpt2/120.yaml | 6 + .../layer_shapes/gpt2/121.yaml | 6 + .../layer_shapes/gpt2/122.yaml | 6 + .../layer_shapes/gpt2/123.yaml | 6 + .../layer_shapes/gpt2/124.yaml | 6 + .../layer_shapes/gpt2/125.yaml | 6 + .../layer_shapes/gpt2/126.yaml | 6 + .../layer_shapes/gpt2/127.yaml | 6 + .../layer_shapes/gpt2/128.yaml | 6 + .../layer_shapes/gpt2/129.yaml | 6 + .../layer_shapes/gpt2/130.yaml | 6 + .../layer_shapes/gpt2/131.yaml | 6 + .../layer_shapes/gpt2/132.yaml | 6 + .../layer_shapes/gpt2/133.yaml | 6 + .../layer_shapes/gpt2/134.yaml | 6 + .../layer_shapes/gpt2/135.yaml | 6 + .../layer_shapes/gpt2/136.yaml | 6 + .../layer_shapes/gpt2/137.yaml | 6 + .../layer_shapes/gpt2/138.yaml | 6 + .../layer_shapes/gpt2/139.yaml | 6 + .../layer_shapes/gpt2/140.yaml | 6 + .../layer_shapes/gpt2/141.yaml | 6 + .../layer_shapes/gpt2/142.yaml | 6 + .../layer_shapes/gpt2/143.yaml | 6 + .../layer_shapes/gpt2/144.yaml | 6 + .../layer_shapes/mobilebert/000.yaml | 6 + .../layer_shapes/mobilebert/001.yaml | 6 + .../layer_shapes/mobilebert/002.yaml | 6 + .../layer_shapes/mobilebert/003.yaml | 6 + .../layer_shapes/mobilebert/004.yaml | 6 + .../layer_shapes/mobilebert/005.yaml | 6 + .../layer_shapes/mobilebert/006.yaml | 6 + .../layer_shapes/mobilebert/007.yaml | 6 + .../layer_shapes/mobilebert/008.yaml | 6 + .../layer_shapes/mobilebert/009.yaml | 6 + .../layer_shapes/mobilebert/010.yaml | 6 + .../layer_shapes/mobilebert/011.yaml | 6 + .../layer_shapes/mobilebert/012.yaml | 6 + .../layer_shapes/mobilebert/013.yaml | 6 + .../layer_shapes/mobilebert/014.yaml | 6 + .../layer_shapes/mobilebert/015.yaml | 6 + .../layer_shapes/mobilebert/016.yaml | 6 + .../layer_shapes/mobilebert/017.yaml | 6 + .../layer_shapes/mobilebert/018.yaml | 6 + .../layer_shapes/mobilebert/019.yaml | 6 + .../layer_shapes/mobilebert/020.yaml | 6 + .../layer_shapes/mobilebert/021.yaml | 6 + .../layer_shapes/mobilebert/022.yaml | 6 + .../layer_shapes/mobilebert/023.yaml | 6 + .../layer_shapes/mobilebert/024.yaml | 6 + .../layer_shapes/mobilebert/025.yaml | 6 + .../layer_shapes/mobilebert/026.yaml | 6 + .../layer_shapes/mobilebert/027.yaml | 6 + .../layer_shapes/mobilebert/028.yaml | 6 + .../layer_shapes/mobilebert/029.yaml | 6 + .../layer_shapes/mobilebert/030.yaml | 6 + .../layer_shapes/mobilebert/031.yaml | 6 + .../layer_shapes/mobilebert/032.yaml | 6 + .../layer_shapes/mobilebert/033.yaml | 6 + .../layer_shapes/mobilebert/034.yaml | 6 + .../layer_shapes/mobilebert/035.yaml | 6 + .../layer_shapes/mobilebert/036.yaml | 6 + .../layer_shapes/mobilebert/037.yaml | 6 + .../layer_shapes/mobilebert/038.yaml | 6 + .../layer_shapes/mobilebert/039.yaml | 6 + .../layer_shapes/mobilebert/040.yaml | 6 + .../layer_shapes/mobilebert/041.yaml | 6 + .../layer_shapes/mobilebert/042.yaml | 6 + .../layer_shapes/mobilebert/043.yaml | 6 + .../layer_shapes/mobilebert/044.yaml | 6 + .../layer_shapes/mobilebert/045.yaml | 6 + .../layer_shapes/mobilebert/046.yaml | 6 + .../layer_shapes/mobilebert/047.yaml | 6 + .../layer_shapes/mobilebert/048.yaml | 6 + .../layer_shapes/mobilebert/049.yaml | 6 + .../layer_shapes/mobilebert/050.yaml | 6 + .../layer_shapes/mobilebert/051.yaml | 6 + .../layer_shapes/mobilebert/052.yaml | 6 + .../layer_shapes/mobilebert/053.yaml | 6 + .../layer_shapes/mobilebert/054.yaml | 6 + .../layer_shapes/mobilebert/055.yaml | 6 + .../layer_shapes/mobilebert/056.yaml | 6 + .../layer_shapes/mobilebert/057.yaml | 6 + .../layer_shapes/mobilebert/058.yaml | 6 + .../layer_shapes/mobilebert/059.yaml | 6 + .../layer_shapes/mobilebert/060.yaml | 6 + .../layer_shapes/mobilebert/061.yaml | 6 + .../layer_shapes/mobilebert/062.yaml | 6 + .../layer_shapes/mobilebert/063.yaml | 6 + .../layer_shapes/mobilebert/064.yaml | 6 + .../layer_shapes/mobilebert/065.yaml | 6 + .../layer_shapes/mobilebert/066.yaml | 6 + .../layer_shapes/mobilebert/067.yaml | 6 + .../layer_shapes/mobilebert/068.yaml | 6 + .../layer_shapes/mobilebert/069.yaml | 6 + .../layer_shapes/mobilebert/070.yaml | 6 + .../layer_shapes/mobilebert/071.yaml | 6 + .../layer_shapes/mobilebert/072.yaml | 6 + .../layer_shapes/mobilebert/073.yaml | 6 + .../layer_shapes/mobilebert/074.yaml | 6 + .../layer_shapes/mobilebert/075.yaml | 6 + .../layer_shapes/mobilebert/076.yaml | 6 + .../layer_shapes/mobilebert/077.yaml | 6 + .../layer_shapes/mobilebert/078.yaml | 6 + .../layer_shapes/mobilebert/079.yaml | 6 + .../layer_shapes/mobilebert/080.yaml | 6 + .../layer_shapes/mobilebert/081.yaml | 6 + .../layer_shapes/mobilebert/082.yaml | 6 + .../layer_shapes/mobilebert/083.yaml | 6 + .../layer_shapes/mobilebert/084.yaml | 6 + .../layer_shapes/mobilebert/085.yaml | 6 + .../layer_shapes/mobilebert/086.yaml | 6 + .../layer_shapes/mobilebert/087.yaml | 6 + .../layer_shapes/mobilebert/088.yaml | 6 + .../layer_shapes/mobilebert/089.yaml | 6 + .../layer_shapes/mobilebert/090.yaml | 6 + .../layer_shapes/mobilebert/091.yaml | 6 + .../layer_shapes/mobilebert/092.yaml | 6 + .../layer_shapes/mobilebert/093.yaml | 6 + .../layer_shapes/mobilebert/094.yaml | 6 + .../layer_shapes/mobilebert/095.yaml | 6 + .../layer_shapes/mobilebert/096.yaml | 6 + .../layer_shapes/mobilebert/097.yaml | 6 + .../layer_shapes/mobilebert/098.yaml | 6 + .../layer_shapes/mobilebert/099.yaml | 6 + .../layer_shapes/mobilebert/100.yaml | 6 + .../layer_shapes/mobilebert/101.yaml | 6 + .../layer_shapes/mobilebert/102.yaml | 6 + .../layer_shapes/mobilebert/103.yaml | 6 + .../layer_shapes/mobilebert/104.yaml | 6 + .../layer_shapes/mobilebert/105.yaml | 6 + .../layer_shapes/mobilebert/106.yaml | 6 + .../layer_shapes/mobilebert/107.yaml | 6 + .../layer_shapes/mobilebert/108.yaml | 6 + .../layer_shapes/mobilebert/109.yaml | 6 + .../layer_shapes/mobilebert/110.yaml | 6 + .../layer_shapes/mobilebert/111.yaml | 6 + .../layer_shapes/mobilebert/112.yaml | 6 + .../layer_shapes/mobilebert/113.yaml | 6 + .../layer_shapes/mobilebert/114.yaml | 6 + .../layer_shapes/mobilebert/115.yaml | 6 + .../layer_shapes/mobilebert/116.yaml | 6 + .../layer_shapes/mobilebert/117.yaml | 6 + .../layer_shapes/mobilebert/118.yaml | 6 + .../layer_shapes/mobilebert/119.yaml | 6 + .../layer_shapes/mobilebert/120.yaml | 6 + .../layer_shapes/mobilebert/121.yaml | 6 + .../layer_shapes/mobilebert/122.yaml | 6 + .../layer_shapes/mobilebert/123.yaml | 6 + .../layer_shapes/mobilebert/124.yaml | 6 + .../layer_shapes/mobilebert/125.yaml | 6 + .../layer_shapes/mobilebert/126.yaml | 6 + .../layer_shapes/mobilebert/127.yaml | 6 + .../layer_shapes/mobilebert/128.yaml | 6 + .../layer_shapes/mobilebert/129.yaml | 6 + .../layer_shapes/mobilebert/130.yaml | 6 + .../layer_shapes/mobilebert/131.yaml | 6 + .../layer_shapes/mobilebert/132.yaml | 6 + .../layer_shapes/mobilebert/133.yaml | 6 + .../layer_shapes/mobilebert/134.yaml | 6 + .../layer_shapes/mobilebert/135.yaml | 6 + .../layer_shapes/mobilebert/136.yaml | 6 + .../layer_shapes/mobilebert/137.yaml | 6 + .../layer_shapes/mobilebert/138.yaml | 6 + .../layer_shapes/mobilebert/139.yaml | 6 + .../layer_shapes/mobilebert/140.yaml | 6 + .../layer_shapes/mobilebert/141.yaml | 6 + .../layer_shapes/mobilebert/142.yaml | 6 + .../layer_shapes/mobilebert/143.yaml | 6 + .../layer_shapes/mobilebert/144.yaml | 6 + .../layer_shapes/mobilebert/145.yaml | 6 + .../layer_shapes/mobilebert/146.yaml | 6 + .../layer_shapes/mobilebert/147.yaml | 6 + .../layer_shapes/mobilebert/148.yaml | 6 + .../layer_shapes/mobilebert/149.yaml | 6 + .../layer_shapes/mobilebert/150.yaml | 6 + .../layer_shapes/mobilebert/151.yaml | 6 + .../layer_shapes/mobilebert/152.yaml | 6 + .../layer_shapes/mobilebert/153.yaml | 6 + .../layer_shapes/mobilebert/154.yaml | 6 + .../layer_shapes/mobilebert/155.yaml | 6 + .../layer_shapes/mobilebert/156.yaml | 6 + .../layer_shapes/mobilebert/157.yaml | 6 + .../layer_shapes/mobilebert/158.yaml | 6 + .../layer_shapes/mobilebert/159.yaml | 6 + .../layer_shapes/mobilebert/160.yaml | 6 + .../layer_shapes/mobilebert/161.yaml | 6 + .../layer_shapes/mobilebert/162.yaml | 6 + .../layer_shapes/mobilebert/163.yaml | 6 + .../layer_shapes/mobilebert/164.yaml | 6 + .../layer_shapes/mobilebert/165.yaml | 6 + .../layer_shapes/mobilebert/166.yaml | 6 + .../layer_shapes/mobilebert/167.yaml | 6 + .../layer_shapes/mobilebert/168.yaml | 6 + .../layer_shapes/mobilebert/169.yaml | 6 + .../layer_shapes/mobilebert/170.yaml | 6 + .../layer_shapes/mobilebert/171.yaml | 6 + .../layer_shapes/mobilebert/172.yaml | 6 + .../layer_shapes/mobilebert/173.yaml | 6 + .../layer_shapes/mobilebert/174.yaml | 6 + .../layer_shapes/mobilebert/175.yaml | 6 + .../layer_shapes/mobilebert/176.yaml | 6 + .../layer_shapes/mobilebert/177.yaml | 6 + .../layer_shapes/mobilebert/178.yaml | 6 + .../layer_shapes/mobilebert/179.yaml | 6 + .../layer_shapes/mobilebert/180.yaml | 6 + .../layer_shapes/mobilebert/181.yaml | 6 + .../layer_shapes/mobilebert/182.yaml | 6 + .../layer_shapes/mobilebert/183.yaml | 6 + .../layer_shapes/mobilebert/184.yaml | 6 + .../layer_shapes/mobilebert/185.yaml | 6 + .../layer_shapes/mobilebert/186.yaml | 6 + .../layer_shapes/mobilebert/187.yaml | 6 + .../layer_shapes/mobilebert/188.yaml | 6 + .../layer_shapes/mobilebert/189.yaml | 6 + .../layer_shapes/mobilebert/190.yaml | 6 + .../layer_shapes/mobilebert/191.yaml | 6 + .../layer_shapes/mobilebert/192.yaml | 6 + .../layer_shapes/mobilebert/193.yaml | 6 + .../layer_shapes/mobilebert/194.yaml | 6 + .../layer_shapes/mobilebert/195.yaml | 6 + .../layer_shapes/mobilebert/196.yaml | 6 + .../layer_shapes/mobilebert/197.yaml | 6 + .../layer_shapes/mobilebert/198.yaml | 6 + .../layer_shapes/mobilebert/199.yaml | 6 + .../layer_shapes/mobilebert/200.yaml | 6 + .../layer_shapes/mobilebert/201.yaml | 6 + .../layer_shapes/mobilebert/202.yaml | 6 + .../layer_shapes/mobilebert/203.yaml | 6 + .../layer_shapes/mobilebert/204.yaml | 6 + .../layer_shapes/mobilebert/205.yaml | 6 + .../layer_shapes/mobilebert/206.yaml | 6 + .../layer_shapes/mobilebert/207.yaml | 6 + .../layer_shapes/mobilebert/208.yaml | 6 + .../layer_shapes/mobilebert/209.yaml | 6 + .../layer_shapes/mobilebert/210.yaml | 6 + .../layer_shapes/mobilebert/211.yaml | 6 + .../layer_shapes/mobilebert/212.yaml | 6 + .../layer_shapes/mobilebert/213.yaml | 6 + .../layer_shapes/mobilebert/214.yaml | 6 + .../layer_shapes/mobilebert/215.yaml | 6 + .../layer_shapes/mobilebert/216.yaml | 6 + .../layer_shapes/mobilebert/217.yaml | 6 + .../layer_shapes/mobilebert/218.yaml | 6 + .../layer_shapes/mobilebert/219.yaml | 6 + .../layer_shapes/mobilebert/220.yaml | 6 + .../layer_shapes/mobilebert/221.yaml | 6 + .../layer_shapes/mobilebert/222.yaml | 6 + .../layer_shapes/mobilebert/223.yaml | 6 + .../layer_shapes/mobilebert/224.yaml | 6 + .../layer_shapes/mobilebert/225.yaml | 6 + .../layer_shapes/mobilebert/226.yaml | 6 + .../layer_shapes/mobilebert/227.yaml | 6 + .../layer_shapes/mobilebert/228.yaml | 6 + .../layer_shapes/mobilebert/229.yaml | 6 + .../layer_shapes/mobilebert/230.yaml | 6 + .../layer_shapes/mobilebert/231.yaml | 6 + .../layer_shapes/mobilebert/232.yaml | 6 + .../layer_shapes/mobilebert/233.yaml | 6 + .../layer_shapes/mobilebert/234.yaml | 6 + .../layer_shapes/mobilebert/235.yaml | 6 + .../layer_shapes/mobilebert/236.yaml | 6 + .../layer_shapes/mobilebert/237.yaml | 6 + .../layer_shapes/mobilebert/238.yaml | 6 + .../layer_shapes/mobilebert/239.yaml | 6 + .../layer_shapes/mobilebert/240.yaml | 6 + .../layer_shapes/mobilebert/241.yaml | 6 + .../layer_shapes/mobilebert/242.yaml | 6 + .../layer_shapes/mobilebert/243.yaml | 6 + .../layer_shapes/mobilebert/244.yaml | 6 + .../layer_shapes/mobilebert/245.yaml | 6 + .../layer_shapes/mobilebert/246.yaml | 6 + .../layer_shapes/mobilebert/247.yaml | 6 + .../layer_shapes/mobilebert/248.yaml | 6 + .../layer_shapes/mobilebert/249.yaml | 6 + .../layer_shapes/mobilebert/250.yaml | 6 + .../layer_shapes/mobilebert/251.yaml | 6 + .../layer_shapes/mobilebert/252.yaml | 6 + .../layer_shapes/mobilebert/253.yaml | 6 + .../layer_shapes/mobilebert/254.yaml | 6 + .../layer_shapes/mobilebert/255.yaml | 6 + .../layer_shapes/mobilebert/256.yaml | 6 + .../layer_shapes/mobilebert/257.yaml | 6 + .../layer_shapes/mobilebert/258.yaml | 6 + .../layer_shapes/mobilebert/259.yaml | 6 + .../layer_shapes/mobilebert/260.yaml | 6 + .../layer_shapes/mobilebert/261.yaml | 6 + .../layer_shapes/mobilebert/262.yaml | 6 + .../layer_shapes/mobilebert/263.yaml | 6 + .../layer_shapes/mobilebert/264.yaml | 6 + .../layer_shapes/mobilebert/265.yaml | 6 + .../layer_shapes/mobilebert/266.yaml | 6 + .../layer_shapes/mobilebert/267.yaml | 6 + .../layer_shapes/mobilebert/268.yaml | 6 + .../layer_shapes/mobilebert/269.yaml | 6 + .../layer_shapes/mobilebert/270.yaml | 6 + .../layer_shapes/mobilebert/271.yaml | 6 + .../layer_shapes/mobilebert/272.yaml | 6 + .../layer_shapes/mobilebert/273.yaml | 6 + .../layer_shapes/mobilebert/274.yaml | 6 + .../layer_shapes/mobilebert/275.yaml | 6 + .../layer_shapes/mobilebert/276.yaml | 6 + .../layer_shapes/mobilebert/277.yaml | 6 + .../layer_shapes/mobilebert/278.yaml | 6 + .../layer_shapes/mobilebert/279.yaml | 6 + .../layer_shapes/mobilebert/280.yaml | 6 + .../layer_shapes/mobilebert/281.yaml | 6 + .../layer_shapes/mobilebert/282.yaml | 6 + .../layer_shapes/mobilebert/283.yaml | 6 + .../layer_shapes/mobilebert/284.yaml | 6 + .../layer_shapes/mobilebert/285.yaml | 6 + .../layer_shapes/mobilebert/286.yaml | 6 + .../layer_shapes/mobilebert/287.yaml | 6 + .../layer_shapes/mobilebert/288.yaml | 6 + .../layer_shapes/mobilebert/289.yaml | 6 + .../layer_shapes/mobilebert/290.yaml | 6 + .../layer_shapes/mobilebert/291.yaml | 6 + .../layer_shapes/mobilebert/292.yaml | 6 + .../layer_shapes/mobilebert/293.yaml | 6 + .../layer_shapes/mobilebert/294.yaml | 6 + .../layer_shapes/mobilebert/295.yaml | 6 + .../layer_shapes/mobilebert/296.yaml | 6 + .../layer_shapes/mobilebert/297.yaml | 6 + .../layer_shapes/mobilebert/298.yaml | 6 + .../layer_shapes/mobilebert/299.yaml | 6 + .../layer_shapes/mobilebert/300.yaml | 6 + .../layer_shapes/mobilebert/301.yaml | 6 + .../layer_shapes/mobilebert/302.yaml | 6 + .../layer_shapes/mobilebert/303.yaml | 6 + .../layer_shapes/mobilebert/304.yaml | 6 + .../layer_shapes/mobilebert/305.yaml | 6 + .../layer_shapes/mobilebert/306.yaml | 6 + .../layer_shapes/mobilebert/307.yaml | 6 + .../layer_shapes/mobilebert/308.yaml | 6 + .../layer_shapes/mobilebert/309.yaml | 6 + .../layer_shapes/mobilebert/310.yaml | 6 + .../layer_shapes/mobilebert/311.yaml | 6 + .../layer_shapes/mobilebert/312.yaml | 6 + .../layer_shapes/mobilebert/313.yaml | 6 + .../layer_shapes/mobilebert/314.yaml | 6 + .../layer_shapes/mobilebert/315.yaml | 6 + .../layer_shapes/mobilebert/316.yaml | 6 + .../layer_shapes/mobilebert/317.yaml | 6 + .../layer_shapes/mobilebert/318.yaml | 6 + .../layer_shapes/mobilebert/319.yaml | 6 + .../layer_shapes/mobilebert/320.yaml | 6 + .../layer_shapes/mobilebert/321.yaml | 6 + .../layer_shapes/mobilebert/322.yaml | 6 + .../layer_shapes/mobilebert/323.yaml | 6 + .../layer_shapes/mobilebert/324.yaml | 6 + .../layer_shapes/mobilebert/325.yaml | 6 + .../layer_shapes/mobilebert/326.yaml | 6 + .../layer_shapes/mobilebert/327.yaml | 6 + .../layer_shapes/mobilebert/328.yaml | 6 + .../layer_shapes/mobilebert/329.yaml | 6 + .../layer_shapes/mobilebert/330.yaml | 6 + .../layer_shapes/mobilebert/331.yaml | 6 + .../layer_shapes/mobilebert/332.yaml | 6 + .../layer_shapes/mobilebert/333.yaml | 6 + .../layer_shapes/mobilebert/334.yaml | 6 + .../layer_shapes/mobilebert/335.yaml | 6 + .../layer_shapes/mobilebert/336.yaml | 6 + .../layer_shapes/mobilebert/337.yaml | 6 + .../layer_shapes/mobilebert/338.yaml | 6 + .../layer_shapes/mobilebert/339.yaml | 6 + .../layer_shapes/mobilebert/340.yaml | 6 + .../layer_shapes/mobilebert/341.yaml | 6 + .../layer_shapes/mobilebert/342.yaml | 6 + .../layer_shapes/mobilebert/343.yaml | 6 + .../layer_shapes/mobilebert/344.yaml | 6 + .../layer_shapes/mobilebert/345.yaml | 6 + .../layer_shapes/mobilebert/346.yaml | 6 + .../layer_shapes/mobilebert/347.yaml | 6 + .../layer_shapes/mobilebert/348.yaml | 6 + .../layer_shapes/mobilebert/349.yaml | 6 + .../layer_shapes/mobilebert/350.yaml | 6 + .../layer_shapes/mobilebert/351.yaml | 6 + .../layer_shapes/mobilebert/352.yaml | 6 + .../layer_shapes/mobilebert/353.yaml | 6 + .../layer_shapes/mobilebert/354.yaml | 6 + .../layer_shapes/mobilebert/355.yaml | 6 + .../layer_shapes/mobilebert/356.yaml | 6 + .../layer_shapes/mobilebert/357.yaml | 6 + .../layer_shapes/mobilebert/358.yaml | 6 + .../layer_shapes/mobilebert/359.yaml | 6 + .../layer_shapes/mobilebert/360.yaml | 6 + .../layer_shapes/mobilebert/361.yaml | 6 + .../layer_shapes/mobilebert/362.yaml | 6 + .../layer_shapes/mobilebert/363.yaml | 6 + .../layer_shapes/mobilebert/364.yaml | 6 + .../layer_shapes/mobilebert/365.yaml | 6 + .../layer_shapes/mobilebert/366.yaml | 6 + .../layer_shapes/mobilebert/367.yaml | 6 + .../layer_shapes/mobilebert/368.yaml | 6 + .../layer_shapes/mobilebert/369.yaml | 6 + .../layer_shapes/mobilebert/370.yaml | 6 + .../layer_shapes/mobilebert/371.yaml | 6 + .../layer_shapes/mobilebert/372.yaml | 6 + .../layer_shapes/mobilebert/373.yaml | 6 + .../layer_shapes/mobilebert/374.yaml | 6 + .../layer_shapes/mobilebert/375.yaml | 6 + .../layer_shapes/mobilebert/376.yaml | 6 + .../layer_shapes/mobilebert/377.yaml | 6 + .../layer_shapes/mobilebert/378.yaml | 6 + .../layer_shapes/mobilebert/379.yaml | 6 + .../layer_shapes/mobilebert/380.yaml | 6 + .../layer_shapes/mobilebert/381.yaml | 6 + .../layer_shapes/mobilebert/382.yaml | 6 + .../layer_shapes/mobilebert/383.yaml | 6 + .../layer_shapes/mobilebert/384.yaml | 6 + .../layer_shapes/mobilebert/385.yaml | 6 + .../layer_shapes/mobilebert/386.yaml | 6 + .../layer_shapes/mobilebert/387.yaml | 6 + .../layer_shapes/mobilebert/388.yaml | 6 + .../layer_shapes/mobilebert/389.yaml | 6 + .../layer_shapes/mobilebert/390.yaml | 6 + .../layer_shapes/mobilebert/391.yaml | 6 + .../layer_shapes/mobilebert/392.yaml | 6 + .../layer_shapes/mobilebert/393.yaml | 6 + .../layer_shapes/mobilebert/394.yaml | 6 + .../layer_shapes/mobilebert/395.yaml | 6 + .../layer_shapes/mobilebert/396.yaml | 6 + .../layer_shapes/mobilebert/397.yaml | 6 + .../layer_shapes/mobilebert/398.yaml | 6 + .../layer_shapes/mobilebert/399.yaml | 6 + .../layer_shapes/mobilebert/400.yaml | 6 + .../layer_shapes/mobilebert/401.yaml | 6 + .../layer_shapes/mobilebert/402.yaml | 6 + .../layer_shapes/mobilebert/403.yaml | 6 + .../layer_shapes/mobilebert/404.yaml | 6 + .../layer_shapes/mobilebert/405.yaml | 6 + .../layer_shapes/mobilebert/406.yaml | 6 + .../layer_shapes/mobilebert/407.yaml | 6 + .../layer_shapes/mobilebert/408.yaml | 6 + .../layer_shapes/mobilenet_v3/00.yaml | 6 + .../layer_shapes/mobilenet_v3/01.yaml | 6 + .../layer_shapes/mobilenet_v3/02.yaml | 6 + .../layer_shapes/mobilenet_v3/03.yaml | 6 + .../layer_shapes/mobilenet_v3/04.yaml | 6 + .../layer_shapes/mobilenet_v3/05.yaml | 6 + .../layer_shapes/mobilenet_v3/06.yaml | 6 + .../layer_shapes/mobilenet_v3/07.yaml | 6 + .../layer_shapes/mobilenet_v3/08.yaml | 6 + .../layer_shapes/mobilenet_v3/09.yaml | 6 + .../layer_shapes/mobilenet_v3/10.yaml | 6 + .../layer_shapes/mobilenet_v3/11.yaml | 6 + .../layer_shapes/mobilenet_v3/12.yaml | 6 + .../layer_shapes/mobilenet_v3/13.yaml | 6 + .../layer_shapes/mobilenet_v3/14.yaml | 6 + .../layer_shapes/mobilenet_v3/15.yaml | 6 + .../layer_shapes/mobilenet_v3/16.yaml | 6 + .../layer_shapes/mobilenet_v3/17.yaml | 6 + .../layer_shapes/mobilenet_v3/18.yaml | 6 + .../layer_shapes/mobilenet_v3/19.yaml | 6 + .../layer_shapes/mobilenet_v3/20.yaml | 6 + .../layer_shapes/mobilenet_v3/21.yaml | 6 + .../layer_shapes/mobilenet_v3/22.yaml | 6 + .../layer_shapes/mobilenet_v3/23.yaml | 6 + .../layer_shapes/mobilenet_v3/24.yaml | 6 + .../layer_shapes/mobilenet_v3/25.yaml | 6 + .../layer_shapes/mobilenet_v3/26.yaml | 6 + .../layer_shapes/mobilenet_v3/27.yaml | 6 + .../layer_shapes/mobilenet_v3/28.yaml | 6 + .../layer_shapes/mobilenet_v3/29.yaml | 6 + .../layer_shapes/mobilenet_v3/30.yaml | 6 + .../layer_shapes/mobilenet_v3/31.yaml | 6 + .../layer_shapes/mobilenet_v3/32.yaml | 6 + .../layer_shapes/mobilenet_v3/33.yaml | 6 + .../layer_shapes/mobilenet_v3/34.yaml | 6 + .../layer_shapes/mobilenet_v3/35.yaml | 6 + .../layer_shapes/mobilenet_v3/36.yaml | 6 + .../layer_shapes/mobilenet_v3/37.yaml | 6 + .../layer_shapes/mobilenet_v3/38.yaml | 6 + .../layer_shapes/mobilenet_v3/39.yaml | 6 + .../layer_shapes/mobilenet_v3/40.yaml | 6 + .../layer_shapes/mobilenet_v3/41.yaml | 6 + .../layer_shapes/mobilenet_v3/42.yaml | 6 + .../layer_shapes/mobilenet_v3/43.yaml | 6 + .../layer_shapes/mobilenet_v3/44.yaml | 6 + .../layer_shapes/mobilenet_v3/45.yaml | 6 + .../layer_shapes/mobilenet_v3/46.yaml | 6 + .../layer_shapes/mobilenet_v3/47.yaml | 6 + .../layer_shapes/mobilenet_v3/48.yaml | 6 + .../layer_shapes/mobilenet_v3/49.yaml | 6 + .../layer_shapes/mobilenet_v3/50.yaml | 6 + .../layer_shapes/mobilenet_v3/51.yaml | 6 + .../layer_shapes/mobilenet_v3/52.yaml | 6 + .../layer_shapes/mobilenet_v3/53.yaml | 6 + .../layer_shapes/mobilenet_v3/54.yaml | 6 + .../layer_shapes/mobilenet_v3/55.yaml | 6 + .../layer_shapes/mobilenet_v3/56.yaml | 6 + .../layer_shapes/mobilenet_v3/57.yaml | 6 + .../layer_shapes/mobilenet_v3/58.yaml | 6 + .../layer_shapes/mobilenet_v3/59.yaml | 6 + .../layer_shapes/mobilenet_v3/60.yaml | 6 + .../layer_shapes/mobilenet_v3/61.yaml | 6 + .../layer_shapes/mobilenet_v3/62.yaml | 6 + .../layer_shapes/mobilenet_v3/63.yaml | 6 + .../layer_shapes/msft_phi_1_5/000.yaml | 6 + .../layer_shapes/msft_phi_1_5/001.yaml | 6 + .../layer_shapes/msft_phi_1_5/002.yaml | 6 + .../layer_shapes/msft_phi_1_5/003.yaml | 6 + .../layer_shapes/msft_phi_1_5/004.yaml | 6 + .../layer_shapes/msft_phi_1_5/005.yaml | 6 + .../layer_shapes/msft_phi_1_5/006.yaml | 6 + .../layer_shapes/msft_phi_1_5/007.yaml | 6 + .../layer_shapes/msft_phi_1_5/008.yaml | 6 + .../layer_shapes/msft_phi_1_5/009.yaml | 6 + .../layer_shapes/msft_phi_1_5/010.yaml | 6 + .../layer_shapes/msft_phi_1_5/011.yaml | 6 + .../layer_shapes/msft_phi_1_5/012.yaml | 6 + .../layer_shapes/msft_phi_1_5/013.yaml | 6 + .../layer_shapes/msft_phi_1_5/014.yaml | 6 + .../layer_shapes/msft_phi_1_5/015.yaml | 6 + .../layer_shapes/msft_phi_1_5/016.yaml | 6 + .../layer_shapes/msft_phi_1_5/017.yaml | 6 + .../layer_shapes/msft_phi_1_5/018.yaml | 6 + .../layer_shapes/msft_phi_1_5/019.yaml | 6 + .../layer_shapes/msft_phi_1_5/020.yaml | 6 + .../layer_shapes/msft_phi_1_5/021.yaml | 6 + .../layer_shapes/msft_phi_1_5/022.yaml | 6 + .../layer_shapes/msft_phi_1_5/023.yaml | 6 + .../layer_shapes/msft_phi_1_5/024.yaml | 6 + .../layer_shapes/msft_phi_1_5/025.yaml | 6 + .../layer_shapes/msft_phi_1_5/026.yaml | 6 + .../layer_shapes/msft_phi_1_5/027.yaml | 6 + .../layer_shapes/msft_phi_1_5/028.yaml | 6 + .../layer_shapes/msft_phi_1_5/029.yaml | 6 + .../layer_shapes/msft_phi_1_5/030.yaml | 6 + .../layer_shapes/msft_phi_1_5/031.yaml | 6 + .../layer_shapes/msft_phi_1_5/032.yaml | 6 + .../layer_shapes/msft_phi_1_5/033.yaml | 6 + .../layer_shapes/msft_phi_1_5/034.yaml | 6 + .../layer_shapes/msft_phi_1_5/035.yaml | 6 + .../layer_shapes/msft_phi_1_5/036.yaml | 6 + .../layer_shapes/msft_phi_1_5/037.yaml | 6 + .../layer_shapes/msft_phi_1_5/038.yaml | 6 + .../layer_shapes/msft_phi_1_5/039.yaml | 6 + .../layer_shapes/msft_phi_1_5/040.yaml | 6 + .../layer_shapes/msft_phi_1_5/041.yaml | 6 + .../layer_shapes/msft_phi_1_5/042.yaml | 6 + .../layer_shapes/msft_phi_1_5/043.yaml | 6 + .../layer_shapes/msft_phi_1_5/044.yaml | 6 + .../layer_shapes/msft_phi_1_5/045.yaml | 6 + .../layer_shapes/msft_phi_1_5/046.yaml | 6 + .../layer_shapes/msft_phi_1_5/047.yaml | 6 + .../layer_shapes/msft_phi_1_5/048.yaml | 6 + .../layer_shapes/msft_phi_1_5/049.yaml | 6 + .../layer_shapes/msft_phi_1_5/050.yaml | 6 + .../layer_shapes/msft_phi_1_5/051.yaml | 6 + .../layer_shapes/msft_phi_1_5/052.yaml | 6 + .../layer_shapes/msft_phi_1_5/053.yaml | 6 + .../layer_shapes/msft_phi_1_5/054.yaml | 6 + .../layer_shapes/msft_phi_1_5/055.yaml | 6 + .../layer_shapes/msft_phi_1_5/056.yaml | 6 + .../layer_shapes/msft_phi_1_5/057.yaml | 6 + .../layer_shapes/msft_phi_1_5/058.yaml | 6 + .../layer_shapes/msft_phi_1_5/059.yaml | 6 + .../layer_shapes/msft_phi_1_5/060.yaml | 6 + .../layer_shapes/msft_phi_1_5/061.yaml | 6 + .../layer_shapes/msft_phi_1_5/062.yaml | 6 + .../layer_shapes/msft_phi_1_5/063.yaml | 6 + .../layer_shapes/msft_phi_1_5/064.yaml | 6 + .../layer_shapes/msft_phi_1_5/065.yaml | 6 + .../layer_shapes/msft_phi_1_5/066.yaml | 6 + .../layer_shapes/msft_phi_1_5/067.yaml | 6 + .../layer_shapes/msft_phi_1_5/068.yaml | 6 + .../layer_shapes/msft_phi_1_5/069.yaml | 6 + .../layer_shapes/msft_phi_1_5/070.yaml | 6 + .../layer_shapes/msft_phi_1_5/071.yaml | 6 + .../layer_shapes/msft_phi_1_5/072.yaml | 6 + .../layer_shapes/msft_phi_1_5/073.yaml | 6 + .../layer_shapes/msft_phi_1_5/074.yaml | 6 + .../layer_shapes/msft_phi_1_5/075.yaml | 6 + .../layer_shapes/msft_phi_1_5/076.yaml | 6 + .../layer_shapes/msft_phi_1_5/077.yaml | 6 + .../layer_shapes/msft_phi_1_5/078.yaml | 6 + .../layer_shapes/msft_phi_1_5/079.yaml | 6 + .../layer_shapes/msft_phi_1_5/080.yaml | 6 + .../layer_shapes/msft_phi_1_5/081.yaml | 6 + .../layer_shapes/msft_phi_1_5/082.yaml | 6 + .../layer_shapes/msft_phi_1_5/083.yaml | 6 + .../layer_shapes/msft_phi_1_5/084.yaml | 6 + .../layer_shapes/msft_phi_1_5/085.yaml | 6 + .../layer_shapes/msft_phi_1_5/086.yaml | 6 + .../layer_shapes/msft_phi_1_5/087.yaml | 6 + .../layer_shapes/msft_phi_1_5/088.yaml | 6 + .../layer_shapes/msft_phi_1_5/089.yaml | 6 + .../layer_shapes/msft_phi_1_5/090.yaml | 6 + .../layer_shapes/msft_phi_1_5/091.yaml | 6 + .../layer_shapes/msft_phi_1_5/092.yaml | 6 + .../layer_shapes/msft_phi_1_5/093.yaml | 6 + .../layer_shapes/msft_phi_1_5/094.yaml | 6 + .../layer_shapes/msft_phi_1_5/095.yaml | 6 + .../layer_shapes/msft_phi_1_5/096.yaml | 6 + .../layer_shapes/msft_phi_1_5/097.yaml | 6 + .../layer_shapes/msft_phi_1_5/098.yaml | 6 + .../layer_shapes/msft_phi_1_5/099.yaml | 6 + .../layer_shapes/msft_phi_1_5/100.yaml | 6 + .../layer_shapes/msft_phi_1_5/101.yaml | 6 + .../layer_shapes/msft_phi_1_5/102.yaml | 6 + .../layer_shapes/msft_phi_1_5/103.yaml | 6 + .../layer_shapes/msft_phi_1_5/104.yaml | 6 + .../layer_shapes/msft_phi_1_5/105.yaml | 6 + .../layer_shapes/msft_phi_1_5/106.yaml | 6 + .../layer_shapes/msft_phi_1_5/107.yaml | 6 + .../layer_shapes/msft_phi_1_5/108.yaml | 6 + .../layer_shapes/msft_phi_1_5/109.yaml | 6 + .../layer_shapes/msft_phi_1_5/110.yaml | 6 + .../layer_shapes/msft_phi_1_5/111.yaml | 6 + .../layer_shapes/msft_phi_1_5/112.yaml | 6 + .../layer_shapes/msft_phi_1_5/113.yaml | 6 + .../layer_shapes/msft_phi_1_5/114.yaml | 6 + .../layer_shapes/msft_phi_1_5/115.yaml | 6 + .../layer_shapes/msft_phi_1_5/116.yaml | 6 + .../layer_shapes/msft_phi_1_5/117.yaml | 6 + .../layer_shapes/msft_phi_1_5/118.yaml | 6 + .../layer_shapes/msft_phi_1_5/119.yaml | 6 + .../layer_shapes/msft_phi_1_5/120.yaml | 6 + .../layer_shapes/msft_phi_1_5/121.yaml | 6 + .../layer_shapes/msft_phi_1_5/122.yaml | 6 + .../layer_shapes/msft_phi_1_5/123.yaml | 6 + .../layer_shapes/msft_phi_1_5/124.yaml | 6 + .../layer_shapes/msft_phi_1_5/125.yaml | 6 + .../layer_shapes/msft_phi_1_5/126.yaml | 6 + .../layer_shapes/msft_phi_1_5/127.yaml | 6 + .../layer_shapes/msft_phi_1_5/128.yaml | 6 + .../layer_shapes/msft_phi_1_5/129.yaml | 6 + .../layer_shapes/msft_phi_1_5/130.yaml | 6 + .../layer_shapes/msft_phi_1_5/131.yaml | 6 + .../layer_shapes/msft_phi_1_5/132.yaml | 6 + .../layer_shapes/msft_phi_1_5/133.yaml | 6 + .../layer_shapes/msft_phi_1_5/134.yaml | 6 + .../layer_shapes/msft_phi_1_5/135.yaml | 6 + .../layer_shapes/msft_phi_1_5/136.yaml | 6 + .../layer_shapes/msft_phi_1_5/137.yaml | 6 + .../layer_shapes/msft_phi_1_5/138.yaml | 6 + .../layer_shapes/msft_phi_1_5/139.yaml | 6 + .../layer_shapes/msft_phi_1_5/140.yaml | 6 + .../layer_shapes/msft_phi_1_5/141.yaml | 6 + .../layer_shapes/msft_phi_1_5/142.yaml | 6 + .../layer_shapes/msft_phi_1_5/143.yaml | 6 + .../layer_shapes/msft_phi_1_5/144.yaml | 6 + .../layer_shapes/problem_base.yaml | 64 + .../layer_shapes/resnet18/00.yaml | 6 + .../layer_shapes/resnet18/01.yaml | 6 + .../layer_shapes/resnet18/02.yaml | 6 + .../layer_shapes/resnet18/03.yaml | 6 + .../layer_shapes/resnet18/04.yaml | 6 + .../layer_shapes/resnet18/05.yaml | 6 + .../layer_shapes/resnet18/06.yaml | 6 + .../layer_shapes/resnet18/07.yaml | 6 + .../layer_shapes/resnet18/08.yaml | 6 + .../layer_shapes/resnet18/09.yaml | 6 + .../layer_shapes/resnet18/10.yaml | 6 + .../layer_shapes/resnet18/11.yaml | 6 + .../layer_shapes/resnet18/12.yaml | 6 + .../layer_shapes/resnet18/13.yaml | 6 + .../layer_shapes/resnet18/14.yaml | 6 + .../layer_shapes/resnet18/15.yaml | 6 + .../layer_shapes/resnet18/16.yaml | 6 + .../layer_shapes/resnet18/17.yaml | 6 + .../layer_shapes/resnet18/18.yaml | 6 + .../layer_shapes/resnet18/19.yaml | 6 + .../layer_shapes/resnet18/20.yaml | 6 + .../layer_shapes/vgg16/00.yaml | 6 + .../layer_shapes/vgg16/01.yaml | 6 + .../layer_shapes/vgg16/02.yaml | 6 + .../layer_shapes/vgg16/03.yaml | 6 + .../layer_shapes/vgg16/04.yaml | 6 + .../layer_shapes/vgg16/05.yaml | 6 + .../layer_shapes/vgg16/06.yaml | 6 + .../layer_shapes/vgg16/07.yaml | 6 + .../layer_shapes/vgg16/08.yaml | 6 + .../layer_shapes/vgg16/09.yaml | 6 + .../layer_shapes/vgg16/10.yaml | 6 + .../layer_shapes/vgg16/11.yaml | 6 + .../layer_shapes/vgg16/12.yaml | 6 + .../layer_shapes/vgg16/13.yaml | 6 + .../layer_shapes/vgg16/14.yaml | 6 + .../layer_shapes/vgg16/15.yaml | 6 + .../layer_shapes/vision_transformer/00.yaml | 6 + .../layer_shapes/vision_transformer/01.yaml | 6 + .../layer_shapes/vision_transformer/02.yaml | 6 + .../layer_shapes/vision_transformer/03.yaml | 6 + .../layer_shapes/vision_transformer/04.yaml | 6 + .../layer_shapes/vision_transformer/05.yaml | 6 + .../layer_shapes/vision_transformer/06.yaml | 6 + .../layer_shapes/vision_transformer/07.yaml | 6 + .../layer_shapes/vision_transformer/08.yaml | 6 + .../layer_shapes/vision_transformer/09.yaml | 6 + .../layer_shapes/vision_transformer/10.yaml | 6 + .../layer_shapes/vision_transformer/11.yaml | 6 + .../layer_shapes/vision_transformer/12.yaml | 6 + .../layer_shapes/vision_transformer/13.yaml | 6 + .../layer_shapes/vision_transformer/14.yaml | 6 + .../layer_shapes/vision_transformer/15.yaml | 6 + .../layer_shapes/vision_transformer/16.yaml | 6 + .../layer_shapes/vision_transformer/17.yaml | 6 + .../layer_shapes/vision_transformer/18.yaml | 6 + .../layer_shapes/vision_transformer/19.yaml | 6 + .../layer_shapes/vision_transformer/20.yaml | 6 + .../layer_shapes/vision_transformer/21.yaml | 6 + .../layer_shapes/vision_transformer/22.yaml | 6 + .../layer_shapes/vision_transformer/23.yaml | 6 + .../layer_shapes/vision_transformer/24.yaml | 6 + .../layer_shapes/vision_transformer/25.yaml | 6 + .../layer_shapes/vision_transformer/26.yaml | 6 + .../layer_shapes/vision_transformer/27.yaml | 6 + .../layer_shapes/vision_transformer/28.yaml | 6 + .../layer_shapes/vision_transformer/29.yaml | 6 + .../layer_shapes/vision_transformer/30.yaml | 6 + .../layer_shapes/vision_transformer/31.yaml | 6 + .../layer_shapes/vision_transformer/32.yaml | 6 + .../layer_shapes/vision_transformer/33.yaml | 6 + .../layer_shapes/vision_transformer/34.yaml | 6 + .../layer_shapes/vision_transformer/35.yaml | 6 + .../layer_shapes/vision_transformer/36.yaml | 6 + .../layer_shapes/vision_transformer/37.yaml | 6 + .../layer_shapes/vision_transformer/38.yaml | 6 + .../layer_shapes/vision_transformer/39.yaml | 6 + .../layer_shapes/vision_transformer/40.yaml | 6 + .../layer_shapes/vision_transformer/41.yaml | 6 + .../layer_shapes/vision_transformer/42.yaml | 6 + .../layer_shapes/vision_transformer/43.yaml | 6 + .../layer_shapes/vision_transformer/44.yaml | 6 + .../layer_shapes/vision_transformer/45.yaml | 6 + .../layer_shapes/vision_transformer/46.yaml | 6 + .../layer_shapes/vision_transformer/47.yaml | 6 + .../layer_shapes/vision_transformer/48.yaml | 6 + .../layer_shapes/vision_transformer/49.yaml | 6 + .../layer_shapes/vision_transformer/50.yaml | 6 + .../layer_shapes/vision_transformer/51.yaml | 6 + .../layer_shapes/vision_transformer/52.yaml | 6 + .../layer_shapes/vision_transformer/53.yaml | 6 + .../layer_shapes/vision_transformer/54.yaml | 6 + .../layer_shapes/vision_transformer/55.yaml | 6 + .../layer_shapes/vision_transformer/56.yaml | 6 + .../layer_shapes/vision_transformer/57.yaml | 6 + .../layer_shapes/vision_transformer/58.yaml | 6 + .../layer_shapes/vision_transformer/59.yaml | 6 + .../layer_shapes/vision_transformer/60.yaml | 6 + .../layer_shapes/vision_transformer/61.yaml | 6 + .../layer_shapes/vision_transformer/62.yaml | 6 + .../layer_shapes/vision_transformer/63.yaml | 6 + .../layer_shapes/vision_transformer/64.yaml | 6 + .../layer_shapes/vision_transformer/65.yaml | 6 + .../layer_shapes/vision_transformer/66.yaml | 6 + .../layer_shapes/vision_transformer/67.yaml | 6 + .../layer_shapes/vision_transformer/68.yaml | 6 + .../layer_shapes/vision_transformer/69.yaml | 6 + .../layer_shapes/vision_transformer/70.yaml | 6 + .../layer_shapes/vision_transformer/71.yaml | 6 + .../layer_shapes/vision_transformer/72.yaml | 6 + .../layer_shapes/vision_transformer/73.yaml | 6 + .../layer_shapes/vision_transformer/74.yaml | 6 + .../layer_shapes/vision_transformer/75.yaml | 6 + .../layer_shapes/vision_transformer/76.yaml | 6 + .../layer_shapes/vision_transformer/77.yaml | 6 + .../layer_shapes/vision_transformer/78.yaml | 6 + .../layer_shapes/vision_transformer/79.yaml | 6 + .../layer_shapes/vision_transformer/80.yaml | 6 + .../layer_shapes/vision_transformer/81.yaml | 6 + .../layer_shapes/vision_transformer/82.yaml | 6 + .../layer_shapes/vision_transformer/83.yaml | 6 + .../layer_shapes/vision_transformer/84.yaml | 6 + .../layer_shapes/vision_transformer/85.yaml | 6 + .../layer_shapes/vision_transformer/86.yaml | 6 + .../layer_shapes/vision_transformer/87.yaml | 6 + .../layer_shapes/vision_transformer/88.yaml | 6 + .../layer_shapes/vision_transformer/89.yaml | 6 + .../layer_shapes/vision_transformer/90.yaml | 6 + .../layer_shapes/vision_transformer/91.yaml | 6 + .../layer_shapes/vision_transformer/92.yaml | 6 + .../layer_shapes/vision_transformer/93.yaml | 6 + .../layer_shapes/vision_transformer/94.yaml | 6 + .../layer_shapes/vision_transformer/95.yaml | 6 + .../layer_shapes/vision_transformer/96.yaml | 6 + .../layer_shapes/vision_transformer/97.yaml | 6 + .../example_designs/run_example_designs.py | 110 + workspace/example_designs/util_functions.py | 57 + workspace/scripts/generate_refs.sh | 17 + workspace/scripts/generate_timeloop_spec.py | 11 + workspace/scripts/remove_yaml.sh | 62 + workspace/scripts/test_notebooks.sh | 20 + workspace/scripts/trans_yaml.sh | 70 + .../README.md | 13 + .../01_primitive_architecture_ERT/README.md | 41 + .../input/architecture.yaml | 36 + .../output/.gitkeep | 0 .../ref-output/ART.yaml | 9 + .../ref-output/ART_summary.yaml | 12 + .../ref-output/ERT.yaml | 107 + .../ref-output/ERT_summary.yaml | 46 + .../ref-output/flattened_architecture.yaml | 32 + .../README.md | 40 + .../input/ERT.yaml | 107 + .../input/action_counts.yaml | 41 + .../input/flattened_architecture.yaml | 33 + .../output/.gitkeep | 1 + .../output/energy_estimation.yaml | 10 + .../ref-output/energy_estimation.yaml | 10 + .../03_compound_architecture/README.md | 47 + .../input/action_counts.yaml | 54 + .../input/architecture.yaml | 33 + .../input/components/mac_fifo.yaml | 62 + .../input/components/smartbuffer_RF.yaml | 68 + .../input/components/smartbuffer_SRAM.yaml | 68 + .../03_compound_architecture/output/.gitkeep | 1 + .../03_compound_architecture/output/ART.yaml | 9 + .../output/ART_summary.yaml | 24 + .../03_compound_architecture/output/ERT.yaml | 167 + .../output/ERT_summary.yaml | 60 + .../output/energy_estimation.yaml | 14 + .../output/flattened_architecture.yaml | 38 + .../ref-output/ART.yaml | 9 + .../ref-output/ART_summary.yaml | 24 + .../ref-output/ERT.yaml | 167 + .../ref-output/ERT_summary.yaml | 60 + .../ref-output/energy_estimation.yaml | 14 + .../ref-output/flattened_architecture.yaml | 35 + .../accelergy/04_eyeriss_like/README.md | 49 + .../04_eyeriss_like/input/action_counts.yaml | 13822 ++++++++++++++++ .../04_eyeriss_like/input/architecture.yaml | 66 + .../input/components/XY_NoC.yaml | 75 + .../input/components/smartbuffer_RF.yaml | 68 + .../input/components/smartbuffer_SRAM.yaml | 68 + .../accelergy/04_eyeriss_like/output/.gitkeep | 1 + .../accelergy/04_eyeriss_like/output/ART.yaml | 23 + .../04_eyeriss_like/output/ART_summary.yaml | 77 + .../accelergy/04_eyeriss_like/output/ERT.yaml | 7486 +++++++++ .../04_eyeriss_like/output/ERT_summary.yaml | 293 + .../output/energy_estimation.yaml | 1264 ++ .../output/flattened_architecture.yaml | 113 + .../04_eyeriss_like/ref-output/ART.yaml | 23 + .../ref-output/ART_summary.yaml | 77 + .../04_eyeriss_like/ref-output/ERT.yaml | 7482 +++++++++ .../ref-output/ERT_summary.yaml | 293 + .../ref-output/energy_estimation.yaml | 1264 ++ .../ref-output/flattened_architecture.yaml | 103 + .../timeloop+accelergy/README.md | 52 + .../timeloop+accelergy/arch/arch.yaml | 113 + .../arch/components/intmac.yaml | 62 + .../arch/components/regfile.yaml | 45 + .../arch/components/smartbuffer_RF.yaml | 63 + .../arch/components/smartbuffer_SRAM.yaml | 63 + .../arch/eyeriss_like-float32.yaml | 71 + .../arch/eyeriss_like-int16.yaml | 71 + .../timeloop+accelergy/mapper/mapper.yaml | 9 + .../timeloop+accelergy/prob/prob.yaml | 59 + .../fpmac/parsed-processed-input.yaml | 614 + .../ref-output/fpmac/timeloop-mapper.ART.yaml | 19 + .../fpmac/timeloop-mapper.ART_summary.yaml | 53 + .../ref-output/fpmac/timeloop-mapper.ERT.yaml | 89 + .../fpmac/timeloop-mapper.ERT_summary.yaml | 115 + .../fpmac/timeloop-mapper.accelergy.log | 863 + ...imeloop-mapper.flattened_architecture.yaml | 269 + .../fpmac/timeloop-mapper.map.tenssella.txt | 42 + .../fpmac/timeloop-mapper.oaves.csv | 0 .../intmac/parsed-processed-input.yaml | 614 + .../intmac/timeloop-mapper.ART.yaml | 19 + .../intmac/timeloop-mapper.ART_summary.yaml | 53 + .../intmac/timeloop-mapper.ERT.yaml | 89 + .../intmac/timeloop-mapper.ERT_summary.yaml | 115 + .../intmac/timeloop-mapper.accelergy.log | 928 ++ ...imeloop-mapper.flattened_architecture.yaml | 269 + .../intmac/timeloop-mapper.map.tenssella.txt | 42 + .../intmac/timeloop-mapper.oaves.csv | 0 .../timeloop+accelergy/run_example.py | 87 + .../timeloop/.gitignore | 7 + .../timeloop/00-model-conv1d-1level/README.md | 35 + .../arch/1level.arch.yaml | 22 + .../map/conv1d-1level.map.yaml | 6 + .../output/parsed-processed-input.yaml | 115 + .../output/timeloop-model.ART.yaml | 7 + .../output/timeloop-model.ART_summary.yaml | 9 + .../output/timeloop-model.ERT.yaml | 32 + .../output/timeloop-model.ERT_summary.yaml | 23 + ...timeloop-model.flattened_architecture.yaml | 52 + .../output/timeloop-model.map.tensella.txt | 3 + .../prob/conv1d.prob.yaml | 20 + .../ref-output/parsed-processed-input.yaml | 115 + .../ref-output/timeloop-model.ART.yaml | 7 + .../timeloop-model.ART_summary.yaml | 9 + .../ref-output/timeloop-model.ERT.yaml | 32 + .../timeloop-model.ERT_summary.yaml | 23 + ...timeloop-model.flattened_architecture.yaml | 48 + .../timeloop-model.map.tenssella.txt | 3 + .../timeloop/01-model-conv1d-2level/README.md | 37 + .../arch/2level.arch.yaml | 30 + .../map/conv1d-2level-os.map.yaml | 11 + .../map/conv1d-2level-ws.map.yaml | 21 + .../output/os/parsed-processed-input.yaml | 143 + .../output/os/timeloop-model.ART.yaml | 9 + .../output/os/timeloop-model.ART_summary.yaml | 12 + .../output/os/timeloop-model.ERT.yaml | 54 + .../output/os/timeloop-model.ERT_summary.yaml | 36 + ...timeloop-model.flattened_architecture.yaml | 82 + .../output/os/timeloop-model.map.tensella.txt | 6 + .../output/ws/parsed-processed-input.yaml | 143 + .../output/ws/timeloop-model.ART.yaml | 9 + .../output/ws/timeloop-model.ART_summary.yaml | 12 + .../output/ws/timeloop-model.ERT.yaml | 54 + .../output/ws/timeloop-model.ERT_summary.yaml | 36 + ...timeloop-model.flattened_architecture.yaml | 82 + .../output/ws/timeloop-model.map.tensella.txt | 6 + .../prob/conv1d.prob.yaml | 20 + .../ref-output/os/parsed-processed-input.yaml | 143 + .../ref-output/os/timeloop-model.ART.yaml | 9 + .../os/timeloop-model.ART_summary.yaml | 12 + .../ref-output/os/timeloop-model.ERT.yaml | 54 + .../os/timeloop-model.ERT_summary.yaml | 36 + ...timeloop-model.flattened_architecture.yaml | 76 + .../os/timeloop-model.map.tenssella.txt | 6 + .../ref-output/ws/parsed-processed-input.yaml | 143 + .../ref-output/ws/timeloop-model.ART.yaml | 9 + .../ws/timeloop-model.ART_summary.yaml | 12 + .../ref-output/ws/timeloop-model.ERT.yaml | 54 + .../ws/timeloop-model.ERT_summary.yaml | 36 + ...timeloop-model.flattened_architecture.yaml | 76 + .../ws/timeloop-model.map.tenssella.txt | 6 + .../02-model-conv1d+oc-2level/README.md | 29 + .../arch/2level.arch.yaml | 33 + .../map/conv1d+oc-2level-os-tiled.map.yaml | 11 + .../map/conv1d+oc-2level-os.map.yaml | 11 + .../prob/conv1d+oc.prob.yaml | 23 + .../no-tiling/parsed-processed-input.yaml | 147 + .../no-tiling/timeloop-model.ART.yaml | 9 + .../no-tiling/timeloop-model.ART_summary.yaml | 12 + .../no-tiling/timeloop-model.ERT.yaml | 54 + .../no-tiling/timeloop-model.ERT_summary.yaml | 36 + ...timeloop-model.flattened_architecture.yaml | 76 + .../timeloop-model.map.tenssella.txt | 6 + .../tiling/parsed-processed-input.yaml | 147 + .../ref-output/tiling/timeloop-model.ART.yaml | 9 + .../tiling/timeloop-model.ART_summary.yaml | 12 + .../ref-output/tiling/timeloop-model.ERT.yaml | 54 + .../tiling/timeloop-model.ERT_summary.yaml | 36 + ...timeloop-model.flattened_architecture.yaml | 76 + .../tiling/timeloop-model.map.tenssella.txt | 6 + .../03-model-conv1d+oc-3level/README.md | 24 + .../arch/3level.arch.yaml | 40 + .../map/conv1d+oc-3level-bypass.map.yaml | 33 + .../map/conv1d+oc-3level.map.yaml | 16 + .../prob/conv1d+oc.prob.yaml | 23 + .../bypass/parsed-processed-input.yaml | 188 + .../ref-output/bypass/timeloop-model.ART.yaml | 11 + .../bypass/timeloop-model.ART_summary.yaml | 15 + .../ref-output/bypass/timeloop-model.ERT.yaml | 76 + .../bypass/timeloop-model.ERT_summary.yaml | 49 + ...timeloop-model.flattened_architecture.yaml | 103 + .../bypass/timeloop-model.map.tenssella.txt | 12 + .../no-bypass/parsed-processed-input.yaml | 174 + .../no-bypass/timeloop-model.ART.yaml | 11 + .../no-bypass/timeloop-model.ART_summary.yaml | 15 + .../no-bypass/timeloop-model.ERT.yaml | 76 + .../no-bypass/timeloop-model.ERT_summary.yaml | 49 + ...timeloop-model.flattened_architecture.yaml | 103 + .../timeloop-model.map.tenssella.txt | 9 + .../README.md | 43 + .../arch/3levelspatial.arch.yaml | 42 + .../conv1d+oc+ic-3levelspatial-cp-ws.map.yaml | 21 + .../conv1d+oc+ic-3levelspatial-kp-ws.map.yaml | 21 + .../output/cp/parsed-processed-input.yaml | 212 + .../output/cp/timeloop-model.ART.yaml | 13 + .../output/cp/timeloop-model.ART_summary.yaml | 18 + .../output/cp/timeloop-model.ERT.yaml | 76 + .../output/cp/timeloop-model.ERT_summary.yaml | 49 + ...timeloop-model.flattened_architecture.yaml | 137 + .../output/cp/timeloop-model.map.tensella.txt | 19 + .../output/kp/parsed-processed-input.yaml | 212 + .../output/kp/timeloop-model.ART.yaml | 13 + .../output/kp/timeloop-model.ART_summary.yaml | 18 + .../output/kp/timeloop-model.ERT.yaml | 76 + .../output/kp/timeloop-model.ERT_summary.yaml | 49 + ...timeloop-model.flattened_architecture.yaml | 137 + .../output/kp/timeloop-model.map.tensella.txt | 19 + .../prob/conv1d+oc+ic.prob.yaml | 26 + .../ref-output/cp/parsed-processed-input.yaml | 211 + .../ref-output/cp/timeloop-model.ART.yaml | 13 + .../cp/timeloop-model.ART_summary.yaml | 18 + .../ref-output/cp/timeloop-model.ERT.yaml | 76 + .../cp/timeloop-model.ERT_summary.yaml | 49 + ...timeloop-model.flattened_architecture.yaml | 126 + .../cp/timeloop-model.map.tenssella.txt | 19 + .../ref-output/kp/parsed-processed-input.yaml | 211 + .../ref-output/kp/timeloop-model.ART.yaml | 13 + .../kp/timeloop-model.ART_summary.yaml | 18 + .../ref-output/kp/timeloop-model.ERT.yaml | 76 + .../kp/timeloop-model.ERT_summary.yaml | 49 + ...timeloop-model.flattened_architecture.yaml | 126 + .../kp/timeloop-model.map.tenssella.txt | 19 + .../05-mapper-conv1d+oc-3level/README.md | 63 + .../arch/3level.arch.yaml | 41 + ...conv1d+oc-3level-1mapping.constraints.yaml | 39 + ...nv1d+oc-3level-freebypass.constraints.yaml | 25 + .../constraints/null.constraints.yaml | 5 + .../mapper/exhaustive.mapper.yaml | 8 + .../prob/conv1d+oc.prob.yaml | 23 + .../baked/parsed-processed-input.yaml | 188 + .../ref-output/baked/timeloop-mapper.ART.yaml | 11 + .../baked/timeloop-mapper.ART_summary.yaml | 15 + .../ref-output/baked/timeloop-mapper.ERT.yaml | 76 + .../baked/timeloop-mapper.ERT_summary.yaml | 49 + ...imeloop-mapper.flattened_architecture.yaml | 103 + .../baked/timeloop-mapper.map.tenssella.txt | 9 + .../baked/timeloop-mapper.oaves.csv | 0 .../freebypass/parsed-processed-input.yaml | 176 + .../freebypass/timeloop-mapper.ART.yaml | 11 + .../timeloop-mapper.ART_summary.yaml | 15 + .../freebypass/timeloop-mapper.ERT.yaml | 76 + .../timeloop-mapper.ERT_summary.yaml | 49 + ...imeloop-mapper.flattened_architecture.yaml | 103 + .../timeloop-mapper.map.tenssella.txt | 11 + .../freebypass/timeloop-mapper.oaves.csv | 0 .../null/parsed-processed-input.yaml | 164 + .../ref-output/null/timeloop-mapper.ART.yaml | 11 + .../null/timeloop-mapper.ART_summary.yaml | 15 + .../ref-output/null/timeloop-mapper.ERT.yaml | 76 + .../null/timeloop-mapper.ERT_summary.yaml | 49 + ...imeloop-mapper.flattened_architecture.yaml | 103 + .../null/timeloop-mapper.map.tenssella.txt | 15 + .../ref-output/null/timeloop-mapper.oaves.csv | 0 .../06-mapper-convlayer-eyeriss/README.md | 39 + .../arch/components/intmac.yaml | 32 + .../arch/components/regfile.yaml | 45 + .../arch/components/smartbuffer_RF.yaml | 63 + .../arch/components/smartbuffer_SRAM.yaml | 63 + .../arch/eyeriss_like.yaml | 108 + .../mapper/mapper.yaml | 9 + .../output/parsed-processed-input.yaml | 592 + .../output/timeloop-mapper.ART.yaml | 19 + .../output/timeloop-mapper.ART_summary.yaml | 53 + .../output/timeloop-mapper.ERT.yaml | 89 + .../output/timeloop-mapper.ERT_summary.yaml | 115 + ...imeloop-mapper.flattened_architecture.yaml | 269 + .../output/timeloop-mapper.map.tensella.txt | 42 + .../output/timeloop-mapper.orojenesis.csv | 0 .../prob/VGG02_layer5.yaml | 59 + .../ref-output/parsed-processed-input.yaml | 591 + .../ref-output/timeloop-mapper.ART.yaml | 19 + .../timeloop-mapper.ART_summary.yaml | 53 + .../ref-output/timeloop-mapper.ERT.yaml | 89 + .../timeloop-mapper.ERT_summary.yaml | 115 + ...imeloop-mapper.flattened_architecture.yaml | 252 + .../timeloop-mapper.map.tenssella.txt | 42 + .../ref-output/timeloop-mapper.oaves.csv | 0 .../06-model-convlayer-eyeriss/README.md | 39 + .../arch/components/intmac.yaml | 32 + .../arch/components/regfile.yaml | 45 + .../arch/components/smartbuffer_RF.yaml | 63 + .../arch/components/smartbuffer_SRAM.yaml | 63 + .../arch/eyeriss_like.yaml | 81 + .../output/parsed-processed-input.yaml | 597 + .../output/timeloop-mapper.ART.yaml | 19 + .../output/timeloop-mapper.ART_summary.yaml | 53 + .../output/timeloop-mapper.ERT.yaml | 89 + .../output/timeloop-mapper.ERT_summary.yaml | 115 + ...imeloop-mapper.flattened_architecture.yaml | 269 + .../output/timeloop-mapper.map.tensella.txt | 42 + .../output/timeloop-mapper.orojenesis.csv | 0 .../output/timeloop-model.ART.yaml | 19 + .../output/timeloop-model.ART_summary.yaml | 53 + .../output/timeloop-model.ERT.yaml | 89 + .../output/timeloop-model.ERT_summary.yaml | 115 + ...timeloop-model.flattened_architecture.yaml | 269 + .../output/timeloop-model.map.tensella.txt | 42 + .../prob/VGG02_layer5.yaml | 59 + .../ref-output/parsed-processed-input.yaml | 591 + .../ref-output/timeloop-mapper.ART.yaml | 19 + .../timeloop-mapper.ART_summary.yaml | 53 + .../ref-output/timeloop-mapper.ERT.yaml | 89 + .../timeloop-mapper.ERT_summary.yaml | 115 + ...imeloop-mapper.flattened_architecture.yaml | 252 + .../timeloop-mapper.map.tenssella.txt | 42 + .../ref-output/timeloop-mapper.oaves.csv | 0 .../timeloop/TRACE_GUIDE.md | 122 + .../timeloop/check_outputs.py | 0 .../timeloop/mapping_analysis.md | 90 + .../timeloop/parser.py | 96 + .../timeloop/run_example.py | 254 + .../timeloop/run_with_trace.py | 110 + .../timeloop/test.txt | 4706 ++++++ .../timeloop/timeloop-mapper.ART.yaml | 19 + .../timeloop/timeloop-mapper.ART_summary.yaml | 53 + .../timeloop/timeloop-mapper.ERT.yaml | 89 + .../timeloop/timeloop-mapper.ERT_summary.yaml | 115 + ...imeloop-mapper.flattened_architecture.yaml | 269 + .../timeloop/visualize_mapping.py | 147 + .../timeloop/ws_analysis_detailed.md | 120 + .../timeloop/ws_mapping_complete_analysis.md | 161 + .../1_specifications.ipynb | 1054 ++ .../2_design_space_exploration.ipynb | 216 + .../3_processors.ipynb | 472 + .../inputs/arch.yaml | 57 + .../inputs/components.yaml | 30 + .../inputs/mapper.yaml | 12 + .../inputs/problem.yaml | 63 + .../inputs/variables.yaml | 5 + .../outputs/ART.yaml | 13 + .../outputs/ART_summary_verbose.yaml | 28 + .../outputs/ERT.yaml | 66 + .../outputs/ERT_summary_verbose.yaml | 91 + .../outputs/accelergy_verbose.log | 1022 ++ .../flattened_architecture_verbose.yaml | 140 + .../outputs/parsed-processed-input.yaml | 257 + .../outputs/timeloop-mapper.ART.yaml | 11 + .../outputs/timeloop-mapper.ART_summary.yaml | 19 + .../outputs/timeloop-mapper.ERT.yaml | 52 + .../outputs/timeloop-mapper.ERT_summary.yaml | 38 + .../outputs/timeloop-mapper.accelergy.log | 216 + ...imeloop-mapper.flattened_architecture.yaml | 104 + .../outputs/timeloop-mapper.map.tenssella.txt | 16 + .../outputs/timeloop-mapper.oaves.csv | 0 .../top.yaml.jinja | 9 + .../03_sparse_tensors_2021_isca/.gitkeep | 0 .../03_sparse_tensors_2021_isca/README.md | 1 + .../notebooks/.gitkeep | 0 .../notebooks/00.1-background-fibertree.ipynb | 184 + .../notebooks/01.1-dotproduct-fibertree.ipynb | 473 + .../01.2-dotproduct-sparseloop.ipynb | 431 + .../02.1-matrixmultiply-fibertree.ipynb | 476 + .../02.2-matrixmultiply-sparseloop.ipynb | 381 + .../notebooks/03.1-convolution.ipynb | 508 + .../03.2-convolution-sparseloop.ipynb | 408 + ...mples-and-mapspace-search-sparseloop.ipynb | 131 + .../notebooks/figures/.gitkeep | 0 .../notebooks/figures/01.2.1.DUDU_setup.png | Bin 0 -> 103382 bytes .../figures/01.2.2.SUDU_baseline_setup.png | Bin 0 -> 112941 bytes .../figures/01.2.2.SUDU_gating_setup.png | Bin 0 -> 124322 bytes .../figures/01.2.3.SCDU_skipping_setup.png | Bin 0 -> 126735 bytes .../notebooks/figures/01.2.SC_DU_arch.png | Bin 0 -> 24392 bytes .../notebooks/figures/02.2.1.spMspM_setup.png | Bin 0 -> 172593 bytes .../figures/02.2.2.dense_tiled_mapping.png | Bin 0 -> 106929 bytes .../notebooks/figures/03.2.1.conv1d_setup.png | Bin 0 -> 135165 bytes .../notebooks/figures/03.2.3.spatial_arch.png | Bin 0 -> 53858 bytes .../notebooks/prelude.py | 159 + .../scripts/.gitkeep | 0 .../01.2.1-DUDU-dot-product-buffer-stats.sh | 7 + .../01.2.1-DUDU-dot-product-compute-stats.sh | 3 + .../01.2.1-DUDU-dot-product-summary-stats.sh | 4 + ...1.2.2-SUDU-dot-product-aggregated-stats.sh | 21 + ...UDU-dot-product-gating-aggregated-stats.sh | 23 + ...1.2.3-SCDU-dot-product-aggregated-stats.sh | 22 + .../scripts/02.2.1-spMspM-aggregated-stats.sh | 21 + .../scripts/02.2.2-spMspM-pretiling-stats.sh | 28 + .../scripts/03.2-conv-aggregated-stats.sh | 31 + .../scripts/03.2-conv-summary-stats.sh | 4 + .../TUTORIALS_TO_CREATE | 56 + .../accelergy.log | 234 + .../creating_first_plug_in.ipynb | 500 + .../out_dir/ART.yaml | 9 + .../out_dir/ART_summary.yaml | 14 + .../out_dir/ART_summary_verbose.yaml | 17 + .../out_dir/ERT.yaml | 14 + .../out_dir/ERT_summary.yaml | 14 + .../out_dir/ERT_summary_verbose.yaml | 66 + .../out_dir/_plug_in_tmp.py | 67 + .../out_dir/accelergy.log | 100 + .../out_dir/flattened_architecture.yaml | 37 + .../flattened_architecture_verbose.yaml | 71 + .../plug_in_template/README.md | 5 + .../plug_in_template/setup.py | 39 + .../plug_in_template/template.estimator.yaml | 9 + .../plug_in_template/template.py | 46 + .../utils/design0.yaml | 57 + .../utils/design1.yaml | 66 + .../utils/helper_functions.py | 97 + workspace/tutorial_exercises/README.md | 10 + ws_energy_breakdown.png | Bin 0 -> 64847 bytes ws_mapping_pattern.png | Bin 0 -> 73815 bytes 1995 files changed, 114204 insertions(+), 41 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json create mode 100644 storage_comparison.png create mode 100644 timeloop-mapper.ART.yaml create mode 100644 timeloop-mapper.ART_summary.yaml create mode 100644 timeloop-mapper.ERT.yaml create mode 100644 timeloop-mapper.ERT_summary.yaml create mode 100644 timeloop-mapper.accelergy.log create mode 100644 timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/README.md create mode 100644 workspace/cheatsheets/1_yaml_syntax.yaml create mode 100644 workspace/cheatsheets/2_arithmetic_parsing.yaml create mode 100644 workspace/cheatsheets/3_architecture.yaml create mode 100644 workspace/cheatsheets/4_compound_component.yaml create mode 100644 workspace/cheatsheets/5_jinja_parsing.yaml create mode 100644 workspace/example_designs/README.md create mode 100644 workspace/example_designs/example_designs/_components/intmac.yaml create mode 100644 workspace/example_designs/example_designs/_components/regfile.yaml create mode 100644 workspace/example_designs/example_designs/_components/regfile_metadata.yaml create mode 100644 workspace/example_designs/example_designs/_components/smartbuffer_RF.yaml create mode 100644 workspace/example_designs/example_designs/_components/smartbuffer_SRAM.yaml create mode 100644 workspace/example_designs/example_designs/_components/smartbuffer_metadata.yaml create mode 100644 workspace/example_designs/example_designs/_include/default_problem.yaml create mode 100644 workspace/example_designs/example_designs/_include/mapper.yaml create mode 100644 workspace/example_designs/example_designs/eyeriss_like/README.md create mode 100644 workspace/example_designs/example_designs/eyeriss_like/arch.yaml create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/simba_like/README.md create mode 100644 workspace/example_designs/example_designs/simba_like/arch.yaml create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/README.md create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/arch.yaml create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/README.md create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/arch.yaml create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/README.md create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/mapping.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/arch.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/problem.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/parsed-processed-input.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ART.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ERT.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.accelergy.log create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.oaves.csv create mode 100644 workspace/example_designs/example_designs/top.yaml.jinja2 create mode 100644 workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer1.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer2.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer3.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer4.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer5.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer1.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer2.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer3.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer4.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer5.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer6.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer7.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer8.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer1.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer10.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer11.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer12.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer13.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer2.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer3.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer4.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer5.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer6.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer7.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer8.yaml create mode 100644 workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer9.yaml create mode 100644 workspace/example_designs/layer_shapes/MM/ResNet50_repr/M1024-K512-N256.yaml create mode 100644 workspace/example_designs/layer_shapes/MM/ResNet50_repr/M512-K128-N1024.yaml create mode 100644 workspace/example_designs/layer_shapes/MM/ResNet50_repr/M512-K256-N1024.yaml create mode 100644 workspace/example_designs/layer_shapes/alexnet/0.yaml create mode 100644 workspace/example_designs/layer_shapes/alexnet/1.yaml create mode 100644 workspace/example_designs/layer_shapes/alexnet/2.yaml create mode 100644 workspace/example_designs/layer_shapes/alexnet/3.yaml create mode 100644 workspace/example_designs/layer_shapes/alexnet/4.yaml create mode 100644 workspace/example_designs/layer_shapes/alexnet/5.yaml create mode 100644 workspace/example_designs/layer_shapes/alexnet/6.yaml create mode 100644 workspace/example_designs/layer_shapes/alexnet/7.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/000.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/001.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/002.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/003.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/004.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/005.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/006.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/007.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/008.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/009.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/010.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/011.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/012.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/013.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/014.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/015.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/016.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/017.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/018.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/019.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/020.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/021.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/022.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/023.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/024.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/025.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/026.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/027.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/028.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/029.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/030.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/031.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/032.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/033.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/034.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/035.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/036.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/037.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/038.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/039.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/040.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/041.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/042.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/043.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/044.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/045.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/046.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/047.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/048.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/049.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/050.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/051.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/052.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/053.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/054.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/055.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/056.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/057.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/058.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/059.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/060.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/061.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/062.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/063.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/064.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/065.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/066.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/067.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/068.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/069.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/070.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/071.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/072.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/073.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/074.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/075.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/076.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/077.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/078.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/079.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/080.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/081.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/082.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/083.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/084.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/085.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/086.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/087.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/088.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/089.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/090.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/091.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/092.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/093.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/094.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/095.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/096.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/097.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/098.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/099.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/100.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/101.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/102.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/103.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/104.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/105.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/106.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/107.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/108.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/109.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/110.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/111.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/112.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/113.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/114.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/115.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/116.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/117.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/118.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/119.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/120.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/121.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/122.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/123.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/124.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/125.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/126.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/127.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/128.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/129.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/130.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/131.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/132.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/133.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/134.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/135.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/136.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/137.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/138.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/139.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/140.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/141.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/142.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/143.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/144.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/145.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/146.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/147.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/148.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/149.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/150.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/151.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/152.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/153.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/154.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/155.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/156.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/157.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/158.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/159.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/160.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/161.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/162.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/163.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/164.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/165.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/166.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/167.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/168.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/169.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/170.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/171.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/172.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/173.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/174.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/175.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/176.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/177.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/178.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/179.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/180.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/181.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/182.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/183.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/184.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/185.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/186.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/187.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/188.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/189.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/190.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/191.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/192.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/193.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/194.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/195.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/196.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/197.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/198.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/199.yaml create mode 100755 workspace/example_designs/layer_shapes/densenet201/200.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/000.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/001.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/002.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/003.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/004.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/005.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/006.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/007.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/008.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/009.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/010.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/011.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/012.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/013.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/014.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/015.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/016.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/017.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/018.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/019.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/020.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/021.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/022.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/023.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/024.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/025.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/026.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/027.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/028.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/029.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/030.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/031.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/032.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/033.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/034.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/035.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/036.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/037.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/038.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/039.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/040.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/041.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/042.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/043.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/044.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/045.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/046.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/047.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/048.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/049.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/050.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/051.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/052.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/053.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/054.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/055.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/056.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/057.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/058.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/059.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/060.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/061.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/062.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/063.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/064.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/065.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/066.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/067.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/068.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/069.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/070.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/071.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/072.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/073.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/074.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/075.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/076.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/077.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/078.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/079.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/080.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/081.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/082.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/083.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/084.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/085.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/086.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/087.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/088.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/089.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/090.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/091.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/092.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/093.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/094.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/095.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/096.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/097.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/098.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/099.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/100.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/101.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/102.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/103.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/104.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/105.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/106.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/107.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/108.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/109.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/110.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/111.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/112.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/113.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/114.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/115.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/116.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/117.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/118.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/119.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/120.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/121.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/122.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/123.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/124.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/125.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/126.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/127.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/128.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/129.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/130.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/131.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/132.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/133.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/134.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/135.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/136.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/137.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/138.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/139.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/140.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/141.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/142.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/143.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/144.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/145.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/146.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/147.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/148.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/149.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/150.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/151.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/152.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/153.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/154.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/155.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/156.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/157.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/158.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/159.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/160.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/161.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/162.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/163.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/164.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/165.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/166.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/167.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/168.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/169.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/170.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/171.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/172.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/173.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/174.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/175.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/176.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/177.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/178.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/179.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/180.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/181.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/182.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/183.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/184.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/185.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/186.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/187.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/188.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/189.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/190.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/191.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/192.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/193.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/194.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/195.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/196.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/197.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/198.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/199.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/200.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/201.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/202.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/203.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/204.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/205.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/206.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/207.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/208.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/209.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/210.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/211.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/212.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/213.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/214.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/215.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/216.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/217.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/218.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/219.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/220.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/221.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/222.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/223.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/224.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/225.yaml create mode 100755 workspace/example_designs/layer_shapes/dpt_large/226.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/000.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/001.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/002.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/003.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/004.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/005.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/006.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/007.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/008.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/009.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/010.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/011.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/012.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/013.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/014.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/015.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/016.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/017.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/018.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/019.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/020.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/021.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/022.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/023.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/024.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/025.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/026.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/027.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/028.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/029.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/030.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/031.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/032.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/033.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/034.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/035.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/036.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/037.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/038.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/039.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/040.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/041.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/042.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/043.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/044.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/045.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/046.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/047.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/048.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/049.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/050.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/051.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/052.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/053.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/054.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/055.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/056.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/057.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/058.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/059.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/060.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/061.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/062.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/063.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/064.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/065.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/066.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/067.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/068.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/069.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/070.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/071.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/072.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/073.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/074.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/075.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/076.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/077.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/078.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/079.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/080.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/081.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/082.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/083.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/084.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/085.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/086.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/087.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/088.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/089.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/090.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/091.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/092.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/093.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/094.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/095.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/096.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/097.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/098.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/099.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/100.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/101.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/102.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/103.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/104.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/105.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/106.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/107.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/108.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/109.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/110.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/111.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/112.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/113.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/114.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/115.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/116.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/117.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/118.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/119.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/120.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/121.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/122.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/123.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/124.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/125.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/126.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/127.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/128.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/129.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/130.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/131.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/132.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/133.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/134.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/135.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/136.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/137.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/138.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/139.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/140.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/141.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/142.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/143.yaml create mode 100755 workspace/example_designs/layer_shapes/gpt2/144.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/000.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/001.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/002.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/003.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/004.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/005.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/006.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/007.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/008.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/009.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/010.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/011.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/012.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/013.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/014.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/015.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/016.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/017.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/018.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/019.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/020.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/021.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/022.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/023.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/024.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/025.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/026.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/027.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/028.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/029.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/030.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/031.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/032.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/033.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/034.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/035.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/036.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/037.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/038.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/039.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/040.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/041.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/042.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/043.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/044.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/045.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/046.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/047.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/048.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/049.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/050.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/051.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/052.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/053.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/054.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/055.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/056.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/057.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/058.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/059.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/060.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/061.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/062.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/063.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/064.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/065.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/066.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/067.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/068.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/069.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/070.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/071.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/072.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/073.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/074.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/075.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/076.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/077.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/078.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/079.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/080.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/081.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/082.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/083.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/084.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/085.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/086.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/087.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/088.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/089.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/090.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/091.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/092.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/093.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/094.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/095.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/096.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/097.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/098.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/099.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/100.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/101.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/102.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/103.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/104.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/105.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/106.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/107.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/108.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/109.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/110.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/111.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/112.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/113.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/114.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/115.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/116.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/117.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/118.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/119.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/120.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/121.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/122.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/123.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/124.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/125.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/126.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/127.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/128.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/129.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/130.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/131.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/132.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/133.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/134.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/135.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/136.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/137.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/138.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/139.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/140.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/141.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/142.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/143.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/144.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/145.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/146.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/147.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/148.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/149.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/150.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/151.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/152.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/153.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/154.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/155.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/156.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/157.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/158.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/159.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/160.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/161.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/162.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/163.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/164.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/165.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/166.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/167.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/168.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/169.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/170.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/171.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/172.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/173.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/174.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/175.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/176.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/177.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/178.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/179.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/180.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/181.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/182.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/183.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/184.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/185.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/186.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/187.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/188.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/189.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/190.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/191.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/192.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/193.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/194.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/195.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/196.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/197.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/198.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/199.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/200.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/201.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/202.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/203.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/204.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/205.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/206.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/207.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/208.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/209.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/210.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/211.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/212.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/213.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/214.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/215.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/216.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/217.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/218.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/219.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/220.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/221.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/222.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/223.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/224.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/225.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/226.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/227.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/228.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/229.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/230.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/231.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/232.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/233.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/234.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/235.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/236.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/237.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/238.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/239.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/240.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/241.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/242.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/243.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/244.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/245.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/246.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/247.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/248.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/249.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/250.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/251.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/252.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/253.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/254.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/255.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/256.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/257.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/258.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/259.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/260.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/261.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/262.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/263.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/264.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/265.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/266.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/267.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/268.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/269.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/270.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/271.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/272.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/273.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/274.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/275.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/276.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/277.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/278.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/279.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/280.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/281.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/282.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/283.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/284.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/285.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/286.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/287.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/288.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/289.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/290.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/291.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/292.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/293.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/294.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/295.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/296.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/297.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/298.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/299.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/300.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/301.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/302.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/303.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/304.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/305.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/306.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/307.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/308.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/309.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/310.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/311.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/312.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/313.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/314.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/315.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/316.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/317.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/318.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/319.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/320.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/321.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/322.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/323.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/324.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/325.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/326.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/327.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/328.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/329.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/330.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/331.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/332.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/333.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/334.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/335.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/336.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/337.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/338.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/339.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/340.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/341.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/342.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/343.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/344.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/345.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/346.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/347.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/348.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/349.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/350.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/351.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/352.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/353.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/354.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/355.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/356.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/357.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/358.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/359.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/360.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/361.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/362.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/363.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/364.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/365.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/366.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/367.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/368.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/369.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/370.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/371.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/372.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/373.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/374.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/375.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/376.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/377.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/378.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/379.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/380.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/381.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/382.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/383.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/384.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/385.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/386.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/387.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/388.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/389.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/390.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/391.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/392.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/393.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/394.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/395.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/396.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/397.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/398.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/399.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/400.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/401.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/402.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/403.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/404.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/405.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/406.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/407.yaml create mode 100644 workspace/example_designs/layer_shapes/mobilebert/408.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/00.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/01.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/02.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/03.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/04.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/05.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/06.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/07.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/08.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/09.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/10.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/11.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/12.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/13.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/14.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/15.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/16.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/17.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/18.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/19.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/20.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/21.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/22.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/23.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/24.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/25.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/26.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/27.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/28.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/29.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/30.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/31.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/32.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/33.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/34.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/35.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/36.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/37.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/38.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/39.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/40.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/41.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/42.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/43.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/44.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/45.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/46.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/47.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/48.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/49.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/50.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/51.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/52.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/53.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/54.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/55.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/56.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/57.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/58.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/59.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/60.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/61.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/62.yaml create mode 100755 workspace/example_designs/layer_shapes/mobilenet_v3/63.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/000.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/001.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/002.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/003.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/004.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/005.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/006.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/007.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/008.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/009.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/010.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/011.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/012.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/013.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/014.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/015.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/016.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/017.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/018.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/019.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/020.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/021.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/022.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/023.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/024.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/025.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/026.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/027.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/028.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/029.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/030.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/031.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/032.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/033.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/034.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/035.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/036.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/037.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/038.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/039.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/040.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/041.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/042.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/043.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/044.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/045.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/046.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/047.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/048.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/049.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/050.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/051.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/052.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/053.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/054.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/055.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/056.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/057.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/058.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/059.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/060.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/061.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/062.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/063.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/064.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/065.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/066.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/067.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/068.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/069.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/070.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/071.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/072.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/073.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/074.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/075.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/076.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/077.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/078.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/079.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/080.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/081.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/082.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/083.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/084.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/085.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/086.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/087.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/088.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/089.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/090.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/091.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/092.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/093.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/094.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/095.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/096.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/097.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/098.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/099.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/100.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/101.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/102.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/103.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/104.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/105.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/106.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/107.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/108.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/109.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/110.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/111.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/112.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/113.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/114.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/115.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/116.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/117.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/118.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/119.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/120.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/121.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/122.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/123.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/124.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/125.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/126.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/127.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/128.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/129.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/130.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/131.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/132.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/133.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/134.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/135.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/136.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/137.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/138.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/139.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/140.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/141.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/142.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/143.yaml create mode 100755 workspace/example_designs/layer_shapes/msft_phi_1_5/144.yaml create mode 100755 workspace/example_designs/layer_shapes/problem_base.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/00.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/01.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/02.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/03.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/04.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/05.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/06.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/07.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/08.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/09.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/10.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/11.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/12.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/13.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/14.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/15.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/16.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/17.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/18.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/19.yaml create mode 100644 workspace/example_designs/layer_shapes/resnet18/20.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/00.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/01.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/02.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/03.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/04.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/05.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/06.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/07.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/08.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/09.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/10.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/11.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/12.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/13.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/14.yaml create mode 100644 workspace/example_designs/layer_shapes/vgg16/15.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/00.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/01.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/02.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/03.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/04.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/05.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/06.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/07.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/08.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/09.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/10.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/11.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/12.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/13.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/14.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/15.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/16.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/17.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/18.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/19.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/20.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/21.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/22.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/23.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/24.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/25.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/26.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/27.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/28.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/29.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/30.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/31.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/32.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/33.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/34.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/35.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/36.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/37.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/38.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/39.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/40.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/41.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/42.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/43.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/44.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/45.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/46.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/47.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/48.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/49.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/50.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/51.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/52.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/53.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/54.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/55.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/56.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/57.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/58.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/59.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/60.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/61.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/62.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/63.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/64.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/65.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/66.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/67.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/68.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/69.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/70.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/71.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/72.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/73.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/74.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/75.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/76.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/77.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/78.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/79.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/80.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/81.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/82.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/83.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/84.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/85.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/86.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/87.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/88.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/89.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/90.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/91.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/92.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/93.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/94.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/95.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/96.yaml create mode 100755 workspace/example_designs/layer_shapes/vision_transformer/97.yaml create mode 100644 workspace/example_designs/run_example_designs.py create mode 100644 workspace/example_designs/util_functions.py create mode 100755 workspace/scripts/generate_refs.sh create mode 100644 workspace/scripts/generate_timeloop_spec.py create mode 100755 workspace/scripts/remove_yaml.sh create mode 100755 workspace/scripts/test_notebooks.sh create mode 100755 workspace/scripts/trans_yaml.sh create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/input/architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/output/.gitkeep create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/action_counts.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/output/.gitkeep create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/output/energy_estimation.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/ref-output/energy_estimation.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/action_counts.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/mac_fifo.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/smartbuffer_RF.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/smartbuffer_SRAM.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/.gitkeep create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/energy_estimation.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/energy_estimation.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/action_counts.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/XY_NoC.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/smartbuffer_RF.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/smartbuffer_SRAM.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/.gitkeep create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/energy_estimation.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/energy_estimation.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/arch.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/intmac.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/regfile.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/smartbuffer_RF.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/smartbuffer_SRAM.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/eyeriss_like-float32.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/eyeriss_like-int16.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/mapper/mapper.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/prob/prob.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.accelergy.log create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.oaves.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.accelergy.log create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.oaves.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/run_example.py create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/.gitignore create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/arch/1level.arch.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/map/conv1d-1level.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.map.tensella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/prob/conv1d.prob.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/arch/2level.arch.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/map/conv1d-2level-os.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/map/conv1d-2level-ws.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.map.tensella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.map.tensella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/prob/conv1d.prob.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/arch/2level.arch.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/map/conv1d+oc-2level-os-tiled.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/map/conv1d+oc-2level-os.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/prob/conv1d+oc.prob.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/arch/3level.arch.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/map/conv1d+oc-3level-bypass.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/map/conv1d+oc-3level.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/prob/conv1d+oc.prob.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/arch/3levelspatial.arch.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/map/conv1d+oc+ic-3levelspatial-cp-ws.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/map/conv1d+oc+ic-3levelspatial-kp-ws.map.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.map.tensella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.map.tensella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/prob/conv1d+oc+ic.prob.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/arch/3level.arch.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/conv1d+oc-3level-1mapping.constraints.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/conv1d+oc-3level-freebypass.constraints.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/null.constraints.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/mapper/exhaustive.mapper.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/prob/conv1d+oc.prob.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.oaves.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.oaves.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.oaves.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/intmac.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/regfile.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/smartbuffer_RF.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/smartbuffer_SRAM.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/eyeriss_like.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/mapper/mapper.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.map.tensella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.orojenesis.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/prob/VGG02_layer5.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.oaves.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/README.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/intmac.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/regfile.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/smartbuffer_RF.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/smartbuffer_SRAM.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/eyeriss_like.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.map.tensella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.orojenesis.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.map.tensella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/prob/VGG02_layer5.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.oaves.csv create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/TRACE_GUIDE.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/check_outputs.py create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/mapping_analysis.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/parser.py create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/run_example.py create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/run_with_trace.py create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/visualize_mapping.py create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/ws_analysis_detailed.md create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/ws_mapping_complete_analysis.md create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/1_specifications.ipynb create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/2_design_space_exploration.ipynb create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/3_processors.ipynb create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/arch.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/components.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/mapper.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/problem.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/variables.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ART.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ART_summary_verbose.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ERT.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ERT_summary_verbose.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/accelergy_verbose.log create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/flattened_architecture_verbose.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ART.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ERT.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.accelergy.log create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.map.tenssella.txt create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.oaves.csv create mode 100644 workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/top.yaml.jinja create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/.gitkeep create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/README.md create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/.gitkeep create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/00.1-background-fibertree.ipynb create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/01.1-dotproduct-fibertree.ipynb create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/01.2-dotproduct-sparseloop.ipynb create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/02.1-matrixmultiply-fibertree.ipynb create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/02.2-matrixmultiply-sparseloop.ipynb create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/03.1-convolution.ipynb create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/03.2-convolution-sparseloop.ipynb create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/04.2-more-examples-and-mapspace-search-sparseloop.ipynb create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/.gitkeep create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/01.2.1.DUDU_setup.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/01.2.2.SUDU_baseline_setup.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/01.2.2.SUDU_gating_setup.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/01.2.3.SCDU_skipping_setup.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/01.2.SC_DU_arch.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/02.2.1.spMspM_setup.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/02.2.2.dense_tiled_mapping.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/03.2.1.conv1d_setup.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/03.2.3.spatial_arch.png create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/prelude.py create mode 100644 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/.gitkeep create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-buffer-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-compute-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-summary-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.2-SUDU-dot-product-aggregated-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.2-SUDU-dot-product-gating-aggregated-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.3-SCDU-dot-product-aggregated-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/02.2.1-spMspM-aggregated-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/02.2.2-spMspM-pretiling-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/03.2-conv-aggregated-stats.sh create mode 100755 workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/03.2-conv-summary-stats.sh create mode 100644 workspace/tutorial_exercises/04_compute_in_memory_2024/TUTORIALS_TO_CREATE create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/accelergy.log create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/creating_first_plug_in.ipynb create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART_summary.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART_summary_verbose.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT_summary_verbose.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/_plug_in_tmp.py create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/accelergy.log create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/flattened_architecture_verbose.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/README.md create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/setup.py create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/template.estimator.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/template.py create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design0.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design1.yaml create mode 100644 workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/helper_functions.py create mode 100644 workspace/tutorial_exercises/README.md create mode 100644 ws_energy_breakdown.png create mode 100644 ws_mapping_pattern.png diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..235d4fda --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,26 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "(gdb) 启动 timeloop-mapper", + "type": "cppdbg", + "request": "launch", + // 1. 指定您的主可执行程序路径 + "program": "/home/arch/.local/bin/timeloop-mapper", + // 2. 在这里填写程序的命令行参数,每个参数是一个独立的字符串 + "args": [ + "/home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/parsed-processed-input.yaml" + + ], + "stopAtEntry": false, + // 3. 指定程序的工作目录,通常是项目根目录 + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + // 4. (可选) 如果gdb不在系统路径中,可以在这里指定它的绝对路径 + // "miDebuggerPath": "/usr/bin/gdb", + + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 053e242c..6799bfdc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -67,6 +67,27 @@ "thread": "cpp", "cinttypes": "cpp", "typeinfo": "cpp", - "*.h++": "cpp" + "*.h++": "cpp", + "hash_map": "cpp", + "cfenv": "cpp", + "charconv": "cpp", + "coroutine": "cpp", + "csetjmp": "cpp", + "csignal": "cpp", + "forward_list": "cpp", + "source_location": "cpp", + "format": "cpp", + "future": "cpp", + "numbers": "cpp", + "queue": "cpp", + "semaphore": "cpp", + "shared_mutex": "cpp", + "span": "cpp", + "stack": "cpp", + "stdfloat": "cpp", + "text_encoding": "cpp", + "typeindex": "cpp", + "valarray": "cpp", + "variant": "cpp" } } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..cb8b75d5 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++ 生成活动文件", + "command": "/usr/bin/g++", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "调试器生成的任务。" + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/include/loop-analysis/nest-analysis-tile-info.hpp b/include/loop-analysis/nest-analysis-tile-info.hpp index 4c72d48d..2e467e0e 100644 --- a/include/loop-analysis/nest-analysis-tile-info.hpp +++ b/include/loop-analysis/nest-analysis-tile-info.hpp @@ -144,6 +144,20 @@ struct DataMovementInfo void Reset(); void Validate(); + + friend std::ostream& operator << (std::ostream& out, const DataMovementInfo& info) + { + out << "DataMovementInfo: size=" << info.size + << ", total_child_accesses=" << info.total_child_accesses + << ", link_transfers=" << info.link_transfers + << ", replication_factor=" << info.replication_factor + << ", fanout=" << info.fanout + << ", is_on_storage_boundary=" << std::boolalpha << info.is_on_storage_boundary + << ", is_master_spatial=" << std::boolalpha << info.is_master_spatial + << ", rmw_first_update=" << std::boolalpha << info.rmw_first_update + << ", no_coalesce=" << std::boolalpha << info.no_coalesce; + return out; + } }; struct ComputeInfo @@ -155,6 +169,14 @@ struct ComputeInfo ComputeInfo(); void Reset(); + + friend std::ostream& operator << (std::ostream& out, const ComputeInfo& info) + { + out << "ComputeInfo: replication_factor=" << info.replication_factor + << ", accesses=" << info.accesses + << ", max_temporal_iterations=" << info.max_temporal_iterations; + return out; + } }; // compound tile info types to capture per-dataspace info diff --git a/include/loop-analysis/nest-analysis.hpp b/include/loop-analysis/nest-analysis.hpp index 0e488060..33bfd09e 100644 --- a/include/loop-analysis/nest-analysis.hpp +++ b/include/loop-analysis/nest-analysis.hpp @@ -189,7 +189,9 @@ class NestAnalysis std::vector::reverse_iterator cur, const std::unordered_map& spatial_deltas, problem::PerDataSpace>& unaccounted_delta, - problem::PerDataSpace& access_stats); + problem::PerDataSpace& access_stats, + bool enable_debug_print = false + ); void ComputeNetworkLinkTransfers( std::vector::reverse_iterator cur, @@ -208,6 +210,10 @@ class NestAnalysis void ComputeDataDensity(); void PrintSpaceTimeStamp(); + void LogStrategyDecision(int level, unsigned pvi, + std::uint64_t accesses_without_links, + std::uint64_t accesses_with_links); + public: // API NestAnalysis(); diff --git a/include/workload/util/per-data-space.hpp b/include/workload/util/per-data-space.hpp index 9d66fbe8..c3870c03 100644 --- a/include/workload/util/per-data-space.hpp +++ b/include/workload/util/per-data-space.hpp @@ -92,13 +92,13 @@ class PerDataSpace : public DynamicArray friend std::ostream& operator << (std::ostream& out, const PerDataSpace& x) { - // for (unsigned pvi = 0; pvi < GetShape()->NumDataSpaces; pvi++) - // { - // out << std::setw(10) << GetShape()->DataSpaceIDToName.at(pvi) << ": " << x[pvi] << std::endl; - // } - for (unsigned pvi = 0; pvi < x.size(); pvi++) + // 使用这个信息更丰富的版本 + for (unsigned pvi = 0; pvi < problem::GetShape()->NumDataSpaces; pvi++) { - out << pvi << ": " << x[pvi] << std::endl; + out << std::setw(12) << std::left << problem::GetShape()->DataSpaceIDToName.at(pvi) + ":" << x[pvi]; + if (pvi < problem::GetShape()->NumDataSpaces - 1) { + out << std::endl; + } } return out; } diff --git a/src/applications/mapper/mapper.cpp b/src/applications/mapper/mapper.cpp index a1939545..14415766 100644 --- a/src/applications/mapper/mapper.cpp +++ b/src/applications/mapper/mapper.cpp @@ -316,6 +316,7 @@ Mapper::Mapper(config::CompoundConfig* config, // layout modeling std::cout << "Start Parsering Layout" << std::endl; + std::cout<< "Hello timeloop in mapper !" << std::endl; config::CompoundConfigNode compound_config_node_layout; bool existing_layout = rootNode.lookup("layout", compound_config_node_layout); if (existing_layout){ diff --git a/src/applications/model/main.cpp b/src/applications/model/main.cpp index 65c54162..90e87a21 100644 --- a/src/applications/model/main.cpp +++ b/src/applications/model/main.cpp @@ -28,7 +28,7 @@ #include #include #include - +// #include #include "applications/model/model.hpp" #include "compound-config/compound-config.hpp" #include "util/args.hpp" @@ -65,7 +65,7 @@ int main(int argc, char* argv[]) sigemptyset(&action.sa_mask); action.sa_flags = 0; sigaction(SIGINT, &action, NULL); - + // dbg("dbg-macro is fuctioning correctly"); std::vector input_files; std::string output_dir = "."; bool success = ParseArgs(argc, argv, input_files, output_dir); diff --git a/src/applications/model/model.cpp b/src/applications/model/model.cpp index 5121e08f..2c6c7ca2 100644 --- a/src/applications/model/model.cpp +++ b/src/applications/model/model.cpp @@ -188,6 +188,7 @@ Model::Model(config::CompoundConfig* config, // layout modeling std::cout << "Start Parsering Layout" << std::endl; + std::cout<< "Hello timeloop in model !" << std::endl; config::CompoundConfigNode compound_config_node_layout; bool existing_layout = rootNode.lookup("layout", compound_config_node_layout); diff --git a/src/loop-analysis/nest-analysis.cpp b/src/loop-analysis/nest-analysis.cpp index 9c858044..8fd56044 100644 --- a/src/loop-analysis/nest-analysis.cpp +++ b/src/loop-analysis/nest-analysis.cpp @@ -34,7 +34,7 @@ #include #include #include - +#include // FIXME: num_spatial_elems, spatial_fanouts, replication_factor etc. are // all maintained across datatypes. They should be per-datatype at // this analytical level of abstraction. It's only when we get to @@ -102,6 +102,7 @@ namespace analysis NestAnalysis::NestAnalysis() { + std::cout << "[DEBUG] NestAnalysis constructor has been called." << std::endl; } @@ -366,6 +367,7 @@ std::ostream& operator << (std::ostream& out, const NestAnalysis& n) void NestAnalysis::ComputeWorkingSets() { + std::cout<< "Hello NestAnalysis!" << std::endl; if (nest_state_.size() != 0) { InitializeNestProperties(); @@ -735,7 +737,6 @@ problem::OperationSpace NestAnalysis::ComputeDeltas(std::vectordescriptor.spacetime_dimension)) { ComputeSpatialWorkingSet(cur); @@ -777,19 +778,8 @@ problem::OperationSpace NestAnalysis::ComputeDeltas(std::vector no_temporal_reuse(workload_->GetShape()->NumDataSpaces); for(unsigned pv = 0; pv < workload_->GetShape()->NumDataSpaces; pv++) { @@ -820,6 +811,21 @@ problem::OperationSpace NestAnalysis::ComputeDeltas(std::vector::r bool this_level_imperfect = cur->descriptor.end != cur->descriptor.residual_end; bool run_last_iteration = imperfect_iteration || workload_->GetShape()->UsesFlattening || gRunLastIteration; bool run_second_last_iteration = this_level_imperfect && run_last_iteration; - + + dbg(gExtrapolateUniformTemporal); if (gExtrapolateUniformTemporal && !disable_temporal_extrapolation_.at(level)) { // What we would like to do is to *NOT* iterate through the entire loop @@ -945,6 +952,7 @@ void NestAnalysis::ComputeTemporalWorkingSet(std::vector::r if (num_iterations >= 1) { + dbg("Temporal Extrapolate: Iteration #0", level, indices_[level]); // Invoke next (inner) loop level. ++cur; auto temporal_delta = ComputeDeltas(cur); @@ -961,7 +969,7 @@ void NestAnalysis::ComputeTemporalWorkingSet(std::vector::r (time_stamp_.back())++; } - // Iterations #1 through #last-1/last. + // Iterations #1 through #last-1/last.s if ((run_second_last_iteration && num_iterations >= 4) || (run_last_iteration && !run_second_last_iteration && num_iterations >= 3) || (!run_last_iteration && num_iterations >= 2)) @@ -977,6 +985,7 @@ void NestAnalysis::ComputeTemporalWorkingSet(std::vector::r auto saved_epochs = num_epochs_; num_epochs_ *= virtual_iterations; + dbg("Temporal Extrapolate: Virtual Block", level, indices_[level], "num_virtual_iterations", virtual_iterations); ++cur; auto temporal_delta = ComputeDeltas(cur); @@ -1000,6 +1009,7 @@ void NestAnalysis::ComputeTemporalWorkingSet(std::vector::r if (run_second_last_iteration && num_iterations >= 3) { // Invoke next (inner) loop level. + dbg("Temporal Extrapolate: Second-to-Last Iteration", level, indices_[level]); ++cur; auto temporal_delta = ComputeDeltas(cur); --cur; @@ -1025,6 +1035,7 @@ void NestAnalysis::ComputeTemporalWorkingSet(std::vector::r if (run_last_iteration && num_iterations >= 2) { // Invoke next (inner) loop level. + dbg("Temporal Extrapolate: Last Iteration", level, indices_[level]); ++cur; auto temporal_delta = ComputeDeltas(cur); --cur; @@ -1132,8 +1143,8 @@ void NestAnalysis::ComputeTemporalWorkingSet(std::vector::r void NestAnalysis::ComputeSpatialWorkingSet(std::vector::reverse_iterator cur) { int level = cur->level; + dbg("Hitting spatial level",level); ASSERT(master_spatial_level_[level]); - // // Step II: Compute Spatial Deltas, etc. // @@ -1223,12 +1234,11 @@ void NestAnalysis::ComputeSpatialWorkingSet(std::vector::re } ComputeAccurateMulticastedAccesses(cur, spatial_deltas, unaccounted_delta, - access_stats_without_link_transfers); + access_stats_without_link_transfers,true); // *** FIXME *** for Read-Write data spaces, we must check if hardware // reduction is supported by the child level. If not, we cannot perform // link transfers. - if (gEnableLinkTransfers && linked_spatial_level_[level]) { // Reset unaccounted delta, and now count with link transfers. @@ -1243,11 +1253,16 @@ void NestAnalysis::ComputeSpatialWorkingSet(std::vector::re // } problem::PerDataSpace link_transfers(workload_->GetShape()->NumDataSpaces); - + + // dbg(level); + // dbg(link_transfers); + // dbg(unaccounted_delta); ComputeNetworkLinkTransfers(cur, spatial_deltas, unaccounted_delta, link_transfers); - + // dbg(link_transfers); + // dbg(unaccounted_delta); ComputeAccurateMulticastedAccesses(cur, spatial_deltas, unaccounted_delta, access_stats_with_link_transfers); + // dbg("------------------------------------------------------------------"); // Compare. for (unsigned pvi = 0; pvi < workload_->GetShape()->NumDataSpaces; pvi++) @@ -1255,8 +1270,11 @@ void NestAnalysis::ComputeSpatialWorkingSet(std::vector::re std::uint64_t total_without = access_stats_without_link_transfers[pvi].TotalAccesses(); std::uint64_t total_with = access_stats_with_link_transfers[pvi].TotalAccesses(); + // LogStrategyDecision(level, pvi, total_without, total_with); + if (total_with < total_without) { + cur_state.link_transfers[pvi] += link_transfers[pvi]; access_stats[pvi] = &access_stats_with_link_transfers[pvi]; } @@ -1435,7 +1453,7 @@ void NestAnalysis::FillSpatialDeltas(std::vector::reverse_i unsigned iterations_to_run = (gExtrapolateUniformSpatial && !workload_->GetShape()->UsesFlattening) ? (gDisableFirstElementOnlySpatialExtrapolation ? 3 : 1) : num_iterations; - + // dbg(level,base_index,iterations_to_run,cur->descriptor.start,cur->descriptor.stride,end,loop::IsSpatial(next->descriptor.spacetime_dimension)); if (loop::IsSpatial(next->descriptor.spacetime_dimension)) { // Next-inner loop level is spatial. @@ -1609,10 +1627,11 @@ void NestAnalysis::ComputeAccurateMulticastedAccesses( problem::PerDataSpace>& unaccounted_delta, //std::set>& unaccounted_delta, //std::vector>& unaccounted_delta, - problem::PerDataSpace& access_stats) + problem::PerDataSpace& access_stats, + bool enable_debug_print) { //std::uint64_t num_deltas = spatial_deltas.size(); - + // if(enable_debug_print) dbg(spatial_deltas); // For each data type, records the number of unaccounted deltas // that the current delta matches with. This will be used // to infer the multicast factor for a specific delta. @@ -1698,7 +1717,30 @@ void NestAnalysis::ComputeAccurateMulticastedAccesses( } } } - + // // ======================= DBG语句开始 ======================= + if(enable_debug_print){} + // { + // for (unsigned pv = 0; pv < workload_->GetShape()->NumDataSpaces; pv++) + // { + // // 仅当目标数量大于1时,才认为是多播 + // if (num_matches[pv] > 1 && delta.GetSize(pv) > 0) + + // { + // // 使用 stringstream 来格式化位置列表,使其更易读 + // std::stringstream locations_ss; + // for (const auto& loc : match_set[pv]) + // { + // locations_ss << loc << " "; + // } + + // // 打印详细的多播信息 + // // 你可以把 std::cout 替换为你的 dbg() 宏 + // dbg(pv, num_matches[pv], delta.GetSize(pv), match_set[pv]); + // } + // } + + // } + // ======================= DBG语句结束 ======================= // NOTE: multicast is # children sharing the same delta // scatter factor is the # data spaces with the same multicast value @@ -1777,7 +1819,12 @@ void NestAnalysis::ComputeAccurateMulticastedAccesses( } } } - + // // The main loop has finished. This is the correct place. + // if (enable_debug_print) + // { + // dbg("=== End of all multicast checks for this function call ==="); + // } + // Populate the actual stats. for (unsigned pv = 0; pv < workload_->GetShape()->NumDataSpaces; pv++) { @@ -1830,9 +1877,21 @@ void NestAnalysis::CompareSpatioTemporalDeltas( { if (!ignore_dataspaces[pv] && !cur_delta.IsEmpty(pv)) { + // ================================================================= + // ============= 在这里插入“关卡五”的调试代码 ============= + // ================================================================= + // 打印当前比较的两个PE的索引 + // dbg(cur_spatial_index, prev_spatial_index); + + // // 打印出即将被比较的两个OperationSpace + // dbg(pv); + // dbg( cur_delta); + // dbg( prev_delta); + // ================================================================= if (cur_delta.CheckEquality(prev_delta, pv)) { // ASSERT(!inter_elem_reuse[cur_spatial_index][pv]); + dbg("Found a match!"); inter_elem_reuse.at(cur_spatial_index)[pv] = true; //std::cout << " match for pv " << pv << std::endl; } @@ -1988,6 +2047,7 @@ void NestAnalysis::ComputeNetworkLinkTransfers( } } + // Compute the total number of accesses that can be bypassed // by using link transfers for (auto& delta: cur_spatial_deltas) @@ -2375,4 +2435,26 @@ problem::OperationSpace NestAnalysis::GetCurrentWorkingSet(std::vector bool gHideInconsequentialStats = (getenv("TIMELOOP_HIDE_INCONSEQUENTIAL_STATS") == NULL) || @@ -1293,6 +1294,8 @@ std::vector Topology::Evaluate(Mapping& mapping, sparse::SparseOptimizationInfo* sparse_optimizations, bool break_on_failure) { + dbg(mapping); + dbg(analysis); assert(is_specced_); Reset(); assert(!is_evaluated_); @@ -1317,8 +1320,8 @@ std::vector Topology::Evaluate(Mapping& mapping, problem::Workload* workload = analysis->GetWorkload(); workload_ = workload; layout::Layouts layout = analysis->GetLayout(); - std::vector eval_status(NumLevels(), { .success = true, .fail_reason = "" }); + // dbg(eval_status); bool valid = tiling::CheckMaskValidity(mapping.datatype_bypass_nest, workload); if (!valid) { @@ -1327,7 +1330,6 @@ std::vector Topology::Evaluate(Mapping& mapping, EvalStatus({ .success = false, .fail_reason = "one of the tensors is bypassed in all storage levels"})); return eval_status; } - bool success_accum = true; bool success = true; @@ -1345,15 +1347,50 @@ std::vector Topology::Evaluate(Mapping& mapping, // Compute working-set tile hierarchy for the nest. analysis::CompoundTileNest tile_info_nest; problem::PerDataSpace> ws_tiles; + dbg("hello topology!"); try { + dbg("function!"); ws_tiles = analysis->GetWorkingSets(); - // construct a summaried tileinfo with both datamovement info and compute info + // ================ 手动打印 ws_tiles 的开始 ================ +std::cout << "----------- Manually printing ws_tiles -----------" << std::endl; + +// // 1. 外层循环:遍历所有数据空间 (Inputs, Weights, Outputs, etc.) +// for (unsigned pvi = 0; pvi < problem::GetShape()->NumDataSpaces; pvi++) +// { +// // 获取当前数据空间的名称,例如 "Weights" +// const auto& data_space_name = problem::GetShape()->DataSpaceIDToName.at(pvi); + +// // 获取该数据空间对应的 std::vector +// const auto& data_movement_vector = ws_tiles[pvi]; + +// std::cout << " [" << data_space_name << "]:" << std::endl; + +// if (data_movement_vector.empty()) +// { +// std::cout << " (No data movement info)" << std::endl; +// continue; +// } + +// // 2. 内层循环:遍历 vector 中的每一个 DataMovementInfo 对象 +// for (size_t i = 0; i < data_movement_vector.size(); ++i) +// { +// const auto& info = data_movement_vector[i]; +// dbg(info); +// std::cout<GetComputeInfo(); + // dbg(tile_info_nest.compound_compute_info_nest); tile_info_nest.compound_data_movement_info_nest = ws_tiles; } catch (std::runtime_error& e) { + dbg("error"); std::fill(eval_status.begin(), eval_status.end(), EvalStatus({ .success = false, .fail_reason = "" })); return eval_status; @@ -1361,6 +1398,7 @@ std::vector Topology::Evaluate(Mapping& mapping, // Ugh... FIXME. + dbg("function!"); auto compute_cycles = analysis->GetComputeInfo()[0].accesses; //innermost level // Create a mask indicating which levels support distributed multicast. diff --git a/storage_comparison.png b/storage_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..058961cc1f7dd7ad50a8f5f913a49c09ba273ec3 GIT binary patch literal 36782 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 literal 0 HcmV?d00001 diff --git a/timeloop-mapper.ART.yaml b/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..0c904bbb --- /dev/null +++ b/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + - name: system_top_level.mac[1..168] + area: 330.392 diff --git a/timeloop-mapper.ART_summary.yaml b/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..6d89e0ad --- /dev/null +++ b/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 330.392 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/timeloop-mapper.ERT.yaml b/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..98fc39d0 --- /dev/null +++ b/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 14.1379 + - name: read + arguments: {} + energy: 18.1838 + - name: leak + arguments: {} + energy: 0.00565154 + - name: update + arguments: {} + energy: 14.1379 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.221404 + - name: read + arguments: {} + energy: 0.253957 + - name: leak + arguments: {} + energy: 0.000127419 + - name: update + arguments: {} + energy: 0.221404 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 2.37642 + - name: read + arguments: {} + energy: 2.49655 + - name: leak + arguments: {} + energy: 0.00201372 + - name: update + arguments: {} + energy: 2.37642 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.275033 + - name: read + arguments: {} + energy: 0.315775 + - name: leak + arguments: {} + energy: 0.000169297 + - name: update + arguments: {} + energy: 0.275033 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.262781 + - name: leak + arguments: {} + energy: 0.00300321 diff --git a/timeloop-mapper.ERT_summary.yaml b/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..2b44a84f --- /dev/null +++ b/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: write + energy: 512.0 + - name: update + energy: 512.0 + - name: leak + energy: 0.0 + - name: read + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 14.1379 + - name: read + energy: 18.1838 + - name: leak + energy: 0.00565154 + - name: update + energy: 14.1379 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.221404 + - name: read + energy: 0.253957 + - name: leak + energy: 0.000127419 + - name: update + energy: 0.221404 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 2.37642 + - name: read + energy: 2.49655 + - name: leak + energy: 0.00201372 + - name: update + energy: 2.37642 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.275033 + - name: read + energy: 0.315775 + - name: leak + energy: 0.000169297 + - name: update + energy: 0.275033 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.262781 + - name: leak + energy: 0.00300321 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/timeloop-mapper.accelergy.log b/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..704184e6 --- /dev/null +++ b/timeloop-mapper.accelergy.log @@ -0,0 +1,964 @@ +2025-07-05 16:30:44 INFO _ _ +2025-07-05 16:30:44 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2025-07-05 16:30:44 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2025-07-05 16:30:44 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2025-07-05 16:30:44 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2025-07-05 16:30:44 INFO |___/ |___/ +2025-07-05 16:30:44 INFO generating outputs according to the following specified output flags... +2025-07-05 16:30:44 INFO Please use the -f flag to update the preference (default to all output files) +2025-07-05 16:30:44 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2025-07-05 16:30:44 INFO Located config file at /home/arch/.config/accelergy/accelergy_config.yaml. +2025-07-05 16:30:44 INFO config file located: +2025-07-05 16:30:44 INFO /home/arch/.config/accelergy/accelergy_config.yaml +2025-07-05 16:30:44 INFO Parsing file /home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/parsed-processed-input.yaml for architecture info +2025-07-05 16:30:44 INFO Parsing file /home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/parsed-processed-input.yaml for compound_components info +2025-07-05 16:30:44 INFO Adding required action "write" to class DRAM +2025-07-05 16:30:44 INFO Adding required action "update" to class DRAM +2025-07-05 16:30:44 INFO Adding required action "leak" to class DRAM +2025-07-05 16:30:44 INFO Adding required action "read" to class DRAM +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_SRAM attributes"memory_width" as "max(32, width)" = 64. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_SRAM attributes"memory_depth" as "max(64, depth)" = 16384. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_SRAM attributes"widthscale" as "width / memory_width" = 1.0. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_SRAM attributes"depthscale" as "depth / memory_depth" = 1.0. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_SRAM attributes"real_depth" as "depth" = 16384. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_SRAM attributes"area_scale" as "widthscale * depthscale" = 1.0. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_SRAM attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 1.0. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_SRAM attributes"static_energy_scale" as "area_scale" = 1.0. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.1875. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 12. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.09375. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.1354911710963393. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.09375. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 192. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 192. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.5. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.5. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.5. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.25. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 16. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.125. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.16957554093095897. +2025-07-05 16:30:44 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.125. +2025-07-05 16:30:44 WARNING Area scale in attributes is deprecated. Use it on the same level as the attributes, not a subkey. +2025-07-05 16:30:44 WARNING Area scale in attributes is deprecated. Use it on the same level as the attributes, not a subkey. +2025-07-05 16:30:44 WARNING Area scale in attributes is deprecated. Use it on the same level as the attributes, not a subkey. +2025-07-05 16:30:44 WARNING Area scale in attributes is deprecated. Use it on the same level as the attributes, not a subkey. +2025-07-05 16:30:44 INFO Estimator plug-in identified by: /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2025-07-05 16:30:44 INFO Estimator plug-in identified by: /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2025-07-05 16:30:44 INFO Estimator plug-in identified by: /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2025-07-05 16:30:44 INFO Estimator plug-in identified by: /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2025-07-05 16:30:44 INFO Estimator plug-in identified by: /home/arch/miniconda3/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2025-07-05 16:30:44 INFO Estimator plug-in identified by: /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2025-07-05 16:30:44 INFO Estimator plug-in identified by: /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2025-07-05 16:30:44 INFO Loading Python plug-in: /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_wrapper.py. Errors below are likely due to plug-in, not Accelergy. +2025-07-05 16:30:44 INFO Getting all estimators in module +2025-07-05 16:30:44 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2025-07-05 16:30:44 INFO Added estimator CactiDRAM that estimates ['DRAM', 'dram'] with actions idle, read, update, write, leak +2025-07-05 16:30:44 INFO Added estimator CactiSRAM that estimates ['SRAM', 'sram'] with actions idle, read, update, write, leak +2025-07-05 16:30:44 INFO Done loading Python plug-ins. +2025-07-05 16:30:44 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2025-07-05 16:30:44 INFO Found estimator plug-in: Neurosim Plug-In () +2025-07-05 16:30:44 INFO Found estimator plug-in: Aladdin_table () +2025-07-05 16:30:44 INFO Found estimator plug-in: dummy () +2025-07-05 16:30:44 INFO Found estimator plug-in: Library () +2025-07-05 16:30:44 INFO Found estimator plug-in: ADC Plug-In () +2025-07-05 16:30:44 INFO Found estimator plug-in: CactiCache () +2025-07-05 16:30:44 INFO Found estimator plug-in: CactiDRAM () +2025-07-05 16:30:44 INFO Found estimator plug-in: CactiSRAM () +2025-07-05 16:30:44 INFO Calculated storage."width" as "memory_width" = 64. +2025-07-05 16:30:44 INFO Calculated storage."depth" as "memory_depth" = 16384. +2025-07-05 16:30:44 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2025-07-05 16:30:44 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated storage.area_scale as "area_scale" = 1.0. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 14. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 14. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2025-07-05 16:30:44 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 1.0. +2025-07-05 16:30:44 INFO Calculated action leak energy_scale as "static_energy_scale" = 1.0. +2025-07-05 16:30:44 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2025-07-05 16:30:44 INFO Calculated storage."width" as "memory_width" = 32. +2025-07-05 16:30:44 INFO Calculated storage."depth" as "memory_depth" = 64. +2025-07-05 16:30:44 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2025-07-05 16:30:44 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated storage.area_scale as "area_scale" = 0.09375. +2025-07-05 16:30:44 INFO Calculated list index expression as "width*depth" = 2048. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2025-07-05 16:30:44 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.09375. +2025-07-05 16:30:44 INFO Calculated list index expression as "width*depth" = 2048. +2025-07-05 16:30:44 INFO Calculated system_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated system_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated storage."width" as "memory_width" = 32. +2025-07-05 16:30:44 INFO Calculated storage."depth" as "memory_depth" = 192. +2025-07-05 16:30:44 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2025-07-05 16:30:44 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated storage.area_scale as "area_scale" = 0.5. +2025-07-05 16:30:44 INFO Calculated list index expression as "width*depth" = 6144. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 192. +2025-07-05 16:30:44 INFO Calculated storage.storage[1..6144]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated storage.comparator[1..192]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2025-07-05 16:30:44 INFO Calculated storage.comparator[1..192]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 192. +2025-07-05 16:30:44 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.5. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 192. +2025-07-05 16:30:44 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.5. +2025-07-05 16:30:44 INFO Calculated list index expression as "width*depth" = 6144. +2025-07-05 16:30:44 INFO Calculated system_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 192. +2025-07-05 16:30:44 INFO Calculated system_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 192. +2025-07-05 16:30:44 INFO Calculated storage."width" as "memory_width" = 32. +2025-07-05 16:30:44 INFO Calculated storage."depth" as "memory_depth" = 64. +2025-07-05 16:30:44 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2025-07-05 16:30:44 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated storage.area_scale as "area_scale" = 0.125. +2025-07-05 16:30:44 INFO Calculated list index expression as "width*depth" = 2048. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2025-07-05 16:30:44 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2025-07-05 16:30:44 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.125. +2025-07-05 16:30:44 INFO Calculated list index expression as "width*depth" = 2048. +2025-07-05 16:30:44 INFO Calculated system_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated system_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2025-07-05 16:30:44 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2025-07-05 16:30:44 INFO Calculated list index expression as "width" = 32. +2025-07-05 16:30:44 INFO Calculated list index expression as "depth" = 64. +2025-07-05 16:30:44 INFO Calculated intadder."width" as "adder_width" = 16. +2025-07-05 16:30:44 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2025-07-05 16:30:44 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2025-07-05 16:30:44 INFO +2025-07-05 16:30:44 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, depth=1048576, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=32nm, global_cycle_seconds=1e-09, version=0.4, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2025-07-05 16:30:44 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2025-07-05 16:30:44 INFO | Unused arguments (datawidth, depth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, global_cycle_seconds, version, action_latency_cycles, cycle_seconds, n_instances) provided for ['DRAM', 'dram'].__init__. Arguments used: (type, width) +2025-07-05 16:30:44 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for ['DRAM', 'dram'].write. Arguments used: () +2025-07-05 16:30:44 INFO +2025-07-05 16:30:44 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, depth=1048576, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=32nm, global_cycle_seconds=1e-09, version=0.4, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2025-07-05 16:30:44 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2025-07-05 16:30:44 INFO | Unused arguments (datawidth, depth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, global_cycle_seconds, version, action_latency_cycles, cycle_seconds, n_instances) provided for ['DRAM', 'dram'].__init__. Arguments used: (type, width) +2025-07-05 16:30:44 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for ['DRAM', 'dram'].update. Arguments used: () +2025-07-05 16:30:44 INFO +2025-07-05 16:30:44 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, depth=1048576, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=32nm, global_cycle_seconds=1e-09, version=0.4, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2025-07-05 16:30:44 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2025-07-05 16:30:44 INFO | Unused arguments (datawidth, depth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, global_cycle_seconds, version, action_latency_cycles, cycle_seconds, n_instances) provided for ['DRAM', 'dram'].__init__. Arguments used: (type, width) +2025-07-05 16:30:44 INFO | Unused arguments (action_latency_cycles) provided for ['DRAM', 'dram'].leak. Arguments used: (global_cycle_seconds) +2025-07-05 16:30:44 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:44 INFO +2025-07-05 16:30:44 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, depth=1048576, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=32nm, global_cycle_seconds=1e-09, version=0.4, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2025-07-05 16:30:44 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2025-07-05 16:30:44 INFO | Unused arguments (datawidth, depth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, global_cycle_seconds, version, action_latency_cycles, cycle_seconds, n_instances) provided for ['DRAM', 'dram'].__init__. Arguments used: (type, width) +2025-07-05 16:30:44 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for ['DRAM', 'dram'].read. Arguments used: () +2025-07-05 16:30:44 INFO +2025-07-05 16:30:44 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:44 INFO CactiSRAM estimated 1.4109500000000001e-11 with accuracy 80%. Messages: +2025-07-05 16:30:44 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for ['SRAM', 'sram'].__init__. Arguments used: (width, depth, technology) +2025-07-05 16:30:44 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ['SRAM', 'sram'].write. Arguments used: () +2025-07-05 16:30:44 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2025-07-05 16:30:44 INFO | Calling CACTI with input path /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp49jltde3 +2025-07-05 16:30:44 INFO | CACTI output will be written to /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpka_r6riy +2025-07-05 16:30:44 INFO | CACTI executable not found at /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2025-07-05 16:30:44 INFO | Calling: cd /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp49jltde3 >> /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpka_r6riy 2>&1 +2025-07-05 16:30:44 INFO | Cache bandwidth: 8.0 bytes/cycle +2025-07-05 16:30:44 INFO | Cache bandwidth: 49177808513.908104 bits/second +2025-07-05 16:30:44 INFO +2025-07-05 16:30:44 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:44 INFO Neurosim Plug-In estimated 0.028429009999999998p with accuracy 70%. Messages: +2025-07-05 16:30:44 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:44 INFO | Building a crossbar with cell file /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2025-07-05 16:30:44 INFO | Neurosim Plugin parsing cell file... +2025-07-05 16:30:44 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -WriteVoltage (V): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -SetCurrent (uA): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -SetPower (uW): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -ReadCurrent (uA): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -ReadEnergy (pJ): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2025-07-05 16:30:44 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2025-07-05 16:30:44 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2025-07-05 16:30:44 INFO | Running /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_73089.cfg +2025-07-05 16:30:44 INFO | Crossbar minimum latency is 2.344 ns to read 8.0 columns at once. +2025-07-05 16:30:44 INFO +2025-07-05 16:30:44 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO CactiSRAM estimated 1.81554e-11 with accuracy 80%. Messages: +2025-07-05 16:30:45 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for ['SRAM', 'sram'].__init__. Arguments used: (width, depth, technology) +2025-07-05 16:30:45 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ['SRAM', 'sram'].read. Arguments used: () +2025-07-05 16:30:45 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2025-07-05 16:30:45 INFO | Calling CACTI with input path /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3204k2cl +2025-07-05 16:30:45 INFO | CACTI output will be written to /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplq3_wynu +2025-07-05 16:30:45 INFO | CACTI executable not found at /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2025-07-05 16:30:45 INFO | Calling: cd /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3204k2cl >> /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplq3_wynu 2>&1 +2025-07-05 16:30:45 INFO | Cache bandwidth: 8.0 bytes/cycle +2025-07-05 16:30:45 INFO | Cache bandwidth: 49177808513.908104 bits/second +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.028429009999999998p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO CactiSRAM estimated 5.645290000000001e-15 with accuracy 80%. Messages: +2025-07-05 16:30:45 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for ['SRAM', 'sram'].__init__. Arguments used: (width, depth, technology) +2025-07-05 16:30:45 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for ['SRAM', 'sram'].leak. Arguments used: (global_cycle_seconds) +2025-07-05 16:30:45 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2025-07-05 16:30:45 INFO | Calling CACTI with input path /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5ly_in86 +2025-07-05 16:30:45 INFO | CACTI output will be written to /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8k83h9dj +2025-07-05 16:30:45 INFO | CACTI executable not found at /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2025-07-05 16:30:45 INFO | Calling: cd /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5ly_in86 >> /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8k83h9dj 2>&1 +2025-07-05 16:30:45 INFO | Cache bandwidth: 8.0 bytes/cycle +2025-07-05 16:30:45 INFO | Cache bandwidth: 49177808513.908104 bits/second +2025-07-05 16:30:45 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.3013999999999999e-09 +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 3.124068e-06p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO CactiSRAM estimated 1.4109500000000001e-11 with accuracy 80%. Messages: +2025-07-05 16:30:45 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for ['SRAM', 'sram'].__init__. Arguments used: (width, depth, technology) +2025-07-05 16:30:45 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ['SRAM', 'sram'].write. Arguments used: () +2025-07-05 16:30:45 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2025-07-05 16:30:45 INFO | Calling CACTI with input path /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpt836md61 +2025-07-05 16:30:45 INFO | CACTI output will be written to /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp1ehosoth +2025-07-05 16:30:45 INFO | CACTI executable not found at /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2025-07-05 16:30:45 INFO | Calling: cd /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpt836md61 >> /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp1ehosoth 2>&1 +2025-07-05 16:30:45 INFO | Cache bandwidth: 8.0 bytes/cycle +2025-07-05 16:30:45 INFO | Cache bandwidth: 49177808513.908104 bits/second +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.028429009999999998p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.write. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO | Building a crossbar with cell file /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2025-07-05 16:30:45 INFO | Neurosim Plugin parsing cell file... +2025-07-05 16:30:45 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -WriteVoltage (V): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -SetCurrent (uA): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -SetPower (uW): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -ReadCurrent (uA): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -ReadEnergy (pJ): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2025-07-05 16:30:45 INFO | Running /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_73089.cfg +2025-07-05 16:30:45 INFO | Crossbar minimum latency is 2.344 ns to read 8.0 columns at once. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.007508019281553714p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.read. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.009, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.leak. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x leak', 'aladdin_register leak has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x leak +2025-07-05 16:30:45 INFO | aladdin_register leak has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 2.0939031551888693e-05p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.leak. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=2.51e-05, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x leak', 'aladdin_comparator leak has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x leak +2025-07-05 16:30:45 INFO | aladdin_comparator leak has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 8.925909999999997e-07p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.write. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.write. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.016304029999999997p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO | Building a crossbar with cell file /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2025-07-05 16:30:45 INFO | Neurosim Plugin parsing cell file... +2025-07-05 16:30:45 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -WriteVoltage (V): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -SetCurrent (uA): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -SetPower (uW): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -ReadCurrent (uA): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -ReadEnergy (pJ): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2025-07-05 16:30:45 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2025-07-05 16:30:45 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2025-07-05 16:30:45 INFO | Running /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_73089.cfg +2025-07-05 16:30:45 INFO | Crossbar minimum latency is 2.344 ns to read 8.0 columns at once. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.007508019281553714p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.read. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.009, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.016304029999999997p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.leak. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x leak', 'aladdin_register leak has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x leak +2025-07-05 16:30:45 INFO | aladdin_register leak has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 2.0939031551888693e-05p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.leak. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=2.51e-05, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x leak', 'aladdin_comparator leak has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x leak +2025-07-05 16:30:45 INFO | aladdin_comparator leak has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 1.7851820000000002e-06p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.write. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.016304029999999997p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.write. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.007508019281553714p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.read. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.009, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.leak. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x leak', 'aladdin_register leak has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x leak +2025-07-05 16:30:45 INFO | aladdin_register leak has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 2.0939031551888693e-05p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.leak. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=2.51e-05, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x leak', 'aladdin_comparator leak has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x leak +2025-07-05 16:30:45 INFO | aladdin_comparator leak has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 8.925909999999997e-07p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_register.write. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_register energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_register energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.02458459202526533p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_comparator.compare. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_comparator energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_comparator energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2025-07-05 16:30:45 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.08759355828479333p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_adder.read. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.21, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_adder energy has been scaled 0.4171121823085397x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling width from 32 to 16 +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_adder energy has been scaled 0.4171121823085397x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.17518711656958666p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_adder.read. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.21, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.8342243646170794x energy', 'aladdin_adder energy has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.technology from 40.0 to 32.0: 0.8342243646170794x energy +2025-07-05 16:30:45 INFO | aladdin_adder energy has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0010010692375404951p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_adder.leak. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0024, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.8342243646170794x leak', 'aladdin_adder leak has been scaled 0.4171121823085397x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling width from 32 to 16 +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.technology from 40.0 to 32.0: 0.8342243646170794x leak +2025-07-05 16:30:45 INFO | aladdin_adder leak has been scaled 0.4171121823085397x +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:45 INFO Library estimated 0.0020021384750809903p with accuracy 90%. Messages: +2025-07-05 16:30:45 INFO | Found 1 entries for aladdin_adder.leak. +2025-07-05 16:30:45 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:45 INFO | value=0.0024, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.8342243646170794x leak', 'aladdin_adder leak has been scaled 0.8342243646170794x'] +2025-07-05 16:30:45 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:45 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:45 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2025-07-05 16:30:45 INFO | Scaled aladdin_adder.technology from 40.0 to 32.0: 0.8342243646170794x leak +2025-07-05 16:30:45 INFO | aladdin_adder leak has been scaled 0.8342243646170794x +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 WARNING No action counts are specified as yaml input +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, depth=1048576, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=32nm, global_cycle_seconds=1e-09, version=0.4, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2025-07-05 16:30:45 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2025-07-05 16:30:45 INFO | Unused arguments (datawidth, depth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, global_cycle_seconds, version, action_latency_cycles, cycle_seconds, n_instances) provided for ['DRAM', 'dram'].__init__. Arguments used: (type, width) +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, global_cycle_seconds=1e-09, version=0.4, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2025-07-05 16:30:45 INFO dummy estimated 1u^2 with accuracy 100%. Messages: +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=14, meshY=1, global_cycle_seconds=1e-09, version=0.4, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2025-07-05 16:30:45 INFO dummy estimated 1u^2 with accuracy 100%. Messages: +2025-07-05 16:30:45 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:45 INFO +2025-07-05 16:30:45 INFO AREA ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO CactiSRAM estimated 2.17281e-07 with accuracy 80%. Messages: +2025-07-05 16:30:46 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for ['SRAM', 'sram'].__init__. Arguments used: (width, depth, technology) +2025-07-05 16:30:46 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2025-07-05 16:30:46 INFO | Calling CACTI with input path /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpn1elhm0n +2025-07-05 16:30:46 INFO | CACTI output will be written to /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpqyrw_dbu +2025-07-05 16:30:46 INFO | CACTI executable not found at /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2025-07-05 16:30:46 INFO | Calling: cd /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpn1elhm0n >> /home/arch/miniconda3/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpqyrw_dbu 2>&1 +2025-07-05 16:30:46 INFO | Cache bandwidth: 8.0 bytes/cycle +2025-07-05 16:30:46 INFO | Cache bandwidth: 49177808513.908104 bits/second +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Neurosim Plug-In estimated 41.18446u^2 with accuracy 70%. Messages: +2025-07-05 16:30:46 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Library estimated 4.738u^2 with accuracy 90%. Messages: +2025-07-05 16:30:46 INFO | Found 4 entries for aladdin_register. +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:46 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:46 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2025-07-05 16:30:46 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area +2025-07-05 16:30:46 INFO | aladdin_register area has been scaled 0.7923076923076924x +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Library estimated 56.25384615384616u^2 with accuracy 90%. Messages: +2025-07-05 16:30:46 INFO | Found 5 entries for aladdin_comparator. +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:46 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:46 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2025-07-05 16:30:46 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area +2025-07-05 16:30:46 INFO | aladdin_comparator area has been scaled 0.7923076923076924x +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Neurosim Plug-In estimated 11.766989999999998u^2 with accuracy 70%. Messages: +2025-07-05 16:30:46 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Library estimated 4.738u^2 with accuracy 90%. Messages: +2025-07-05 16:30:46 INFO | Found 4 entries for aladdin_register. +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:46 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:46 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2025-07-05 16:30:46 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area +2025-07-05 16:30:46 INFO | aladdin_register area has been scaled 0.7923076923076924x +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Library estimated 56.25384615384616u^2 with accuracy 90%. Messages: +2025-07-05 16:30:46 INFO | Found 5 entries for aladdin_comparator. +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:46 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:46 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2025-07-05 16:30:46 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area +2025-07-05 16:30:46 INFO | aladdin_comparator area has been scaled 0.7923076923076924x +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Neurosim Plug-In estimated 23.533979999999996u^2 with accuracy 70%. Messages: +2025-07-05 16:30:46 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Library estimated 4.738u^2 with accuracy 90%. Messages: +2025-07-05 16:30:46 INFO | Found 4 entries for aladdin_register. +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_register area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'n_instances': 1} +2025-07-05 16:30:46 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:46 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:46 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2025-07-05 16:30:46 INFO | Scaled aladdin_register.technology from 40.0 to 32.0: 0.7923076923076924x area +2025-07-05 16:30:46 INFO | aladdin_register area has been scaled 0.7923076923076924x +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Library estimated 56.25384615384616u^2 with accuracy 90%. Messages: +2025-07-05 16:30:46 INFO | Found 5 entries for aladdin_comparator. +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_comparator area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'n_instances': 1} +2025-07-05 16:30:46 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:46 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:46 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2025-07-05 16:30:46 INFO | Scaled aladdin_comparator.technology from 40.0 to 32.0: 0.7923076923076924x area +2025-07-05 16:30:46 INFO | aladdin_comparator area has been scaled 0.7923076923076924x +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Neurosim Plug-In estimated 11.766989999999998u^2 with accuracy 70%. Messages: +2025-07-05 16:30:46 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Library estimated 110.13076923076925u^2 with accuracy 90%. Messages: +2025-07-05 16:30:46 INFO | Found 5 entries for aladdin_adder. +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.3961538461538462x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.3961538461538462x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.3961538461538462x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.3961538461538462x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.3961538461538462x'] +2025-07-05 16:30:46 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | Scaling width from 32 to 16 +2025-07-05 16:30:46 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:46 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:46 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2025-07-05 16:30:46 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2025-07-05 16:30:46 INFO | Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area +2025-07-05 16:30:46 INFO | aladdin_adder area has been scaled 0.3961538461538462x +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO +2025-07-05 16:30:46 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2025-07-05 16:30:46 INFO Library estimated 220.2615384615385u^2 with accuracy 90%. Messages: +2025-07-05 16:30:46 INFO | Found 5 entries for aladdin_adder. +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Checking entry "{'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 40nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area', 'aladdin_adder area has been scaled 0.7923076923076924x'] +2025-07-05 16:30:46 INFO | Best-matching entry: {'technology': '40nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'n_instances': 1} +2025-07-05 16:30:46 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2025-07-05 16:30:46 INFO | Scaling technology from 40nm to 32nm +2025-07-05 16:30:46 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2025-07-05 16:30:46 INFO | Scaled aladdin_adder.technology from 40.0 to 32.0: 0.7923076923076924x area +2025-07-05 16:30:46 INFO | aladdin_adder area has been scaled 0.7923076923076924x +2025-07-05 16:30:46 INFO | Multiplying by n_instances 1 +2025-07-05 16:30:46 INFO flattened architecture is saved to: +2025-07-05 16:30:46 INFO ./timeloop-mapper.flattened_architecture.yaml +2025-07-05 16:30:46 INFO energy reference table is saved to: +2025-07-05 16:30:46 INFO ./timeloop-mapper.ERT.yaml +2025-07-05 16:30:46 INFO energy reference table summary is saved to: +2025-07-05 16:30:46 INFO ./timeloop-mapper.ERT_summary.yaml +2025-07-05 16:30:46 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2025-07-05 16:30:46 INFO area reference table is saved to: +2025-07-05 16:30:46 INFO ./timeloop-mapper.ART.yaml +2025-07-05 16:30:46 INFO area reference table summary is saved to: +2025-07-05 16:30:46 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/timeloop-mapper.flattened_architecture.yaml b/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..8b3070f8 --- /dev/null +++ b/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,269 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/README.md b/workspace/README.md new file mode 100644 index 00000000..b12a3ecc --- /dev/null +++ b/workspace/README.md @@ -0,0 +1,23 @@ +# Overview +Welcome to `timeloop-accelergy-exercises`! This repository contains tutorials, +exercises, and examples to get you started with Timeloop and Accelergy. In this +directory, you'll find the following. + +#### `tutorial_exercises` +This directory contains exercises and tutorials to teach you how to use +Timeloop. Note that exercises 1 and 2 are prerequisites for the rest of the +exercises, and should be completed first. + +#### `cheatsheets` +This directory contains YAML syntax examples and explanations for YAML syntax +and parsing, as well as some of the Timeloop input files. They're meant to be +used as a quick reference when writing your own input files. + +#### `example_designs` +This directory contains example Timeloop accelerator designs that can be used +and/or adapted to run your own experiments. + +#### `timeloop_spec.yaml` +This file contains a full specification of the Timeloop input file format, +including all allowed fields and their types. Use this as a reference when +writing your own Timeloop input files. diff --git a/workspace/cheatsheets/1_yaml_syntax.yaml b/workspace/cheatsheets/1_yaml_syntax.yaml new file mode 100644 index 00000000..41338c0b --- /dev/null +++ b/workspace/cheatsheets/1_yaml_syntax.yaml @@ -0,0 +1,95 @@ +# YAML Nodes +listNode: +- element1 +- element2 + +dict_node: + key1: value1 + key2: value2 + +# Styles +list_block_style: +- element1 +- element2 +list_flow_style: {element1, element2} + +dict_block_style: + key1: value1 + key2: value2 +dict_flow_style: {key1: value1, key2: value2} + +# Anchors, Aliases, and Merge Keys + +# Anchors +anchored_list_flow_style: &my_anchored_list +- element1 +- element2 +anchored_list_block_style: &my_anchored_list [1, 2, 3, 4, 5] + +anchored_dict_flow_style: &my_anchored_dict + key1: value1 + key2: value2 +anchored_dict_block_style: &my_anchored_dict {key1: value1, key2: value2} + +# Aliases +my_list_alias: *my_anchored_list +result_of_my_list_alias: [1, 2, 3, 4, 5] + +my_dict_alias: *my_anchored_dict +result_of_my_dict_alias: {key1: value1, key2: value2} + +# Merge Keys +anchored_dict_1: &my_anchored_dict + key1: value1_dict1 + key2: value2_dict1 + +anchored_dict_2: &my_anchored_dict2 + key2: value2_dict2 + key3: value3_dict2 + +merged_dict: + <<: [*my_anchored_dict, *my_anchored_dict2] # My_anchored_dict takes precedence + +result_of_merged_dict: + key1: value1_dict1 + key2: value2_dict1 # Earlier anchors take precedence + key3: value3_dict2 + +merged_dict2: + <<: *my_anchored_dict + value2: override_value2 # Override value2 + +result_of_merged_dict2: + key1: value1_dict1 + key2: override_value2 + +# Hierarchical Merge Keys +anchored_dict_hierarchical_1: &my_anchored_dict + key1: value1_dict1 + key2: {subkey1: subvalue1, subkey2: subvalue2} + mylist: [d, e, f] + mylist_nomerge: [4, 5, 6] + +merged_dict_hierarchical: + <<<: *my_anchored_dict + key2: {subkey1: override1} # subkey2: subvalue2 will come from the merge + mylist: [a, b, c] + mylist_nomerge: !nomerge [1, 2, 3] + +result_of_merged_dict_hierarchical: + key1: value1_dict1 + key2: {subkey1: override1, subkey2: subvalue2} + mylist: [a, b, c, d, e, f] + mylist_nomerge: [1, 2, 3] + +merged_dict_non_hierarchical: + <<: *my_anchored_dict + key2: {subkey1: override1} # This will override all of key2 + mylist: [a, b, c] + mylist_nomerge: !nomerge [1, 2, 3] + +result_of_merged_dict_non_hierarchical: + key1: value1_dict1 + key2: {subkey1: override1} + mylist: [a, b, c] + mylist_nomerge: [1, 2, 3] diff --git a/workspace/cheatsheets/2_arithmetic_parsing.yaml b/workspace/cheatsheets/2_arithmetic_parsing.yaml new file mode 100644 index 00000000..31352c3f --- /dev/null +++ b/workspace/cheatsheets/2_arithmetic_parsing.yaml @@ -0,0 +1,102 @@ +## ============================================================================== +# Including Python scripts for more complex arithmetic +# ============================================================================== + +# in math_functions.py +# def func(x): +# return x + 1 +globals: + version: 0.4 + expression_custom_functions: + - math_functions.py + +# Included Python math functions available: +# ceil, comb, copysign, fabs, factorial, floor, fmod, frexp, fsum, gcd, +# isclose, isfinite, isinf, isnan, isqrt, ldexp, modf, perm, prod, remainder, +# trunc, exp, expm1, log, log1p, log2, log10, pow, sqrt, acos, asin, atan, +# atan2, cos, dist, hypot, sin, tan, degrees, radians, acosh, asinh, atanh, +# cosh, sinh, tanh, erf, erfc, gamma, lgamma, pi, e, tau, inf, nan, abs, +# round, pow, sum, range, len, min, max, float, int, str, bool, list, tuple, +# enumerate, getcwd, map + +# ============================================================================= +# Arithmetic in top-level defines +# ============================================================================== +variables: + version: 0.4 + TOP_LEVEL_DEFINE: 3 + TOP_LEVEL_MATH: 3 + 1 # Can use expressions + TOP_LEVEL_USE_IMPORTED: func(1) # Can use imported functions + +# ============================================================================== +# Arithmetic in compound components +# ============================================================================== +compound_components: # REQUIRED top-level key + version: 0.4 # REQUIRED version number + classes: # Compound component classes go below + + # Define a compound component class + - name: component_name_here + attributes: # Attributes listed here can be thought of as the "inputs" to the component + scalar: 123 + array: [1, 2, 3] + dict: {key1: 1, key2: 2} + string: "string" # Quotes are required for strings + reference_top_level: TOP_LEVEL_DEFINE # References to top-level defines are allowed + + # Any Python expression can be used. A limited set of functions are available. + expression: scalar + 1 # Any Python expression can be used + complex_expression: scalar + array[0] + dict["key1"] + pow(len(string), 4) + + # If an expression WOULD otherwise be wrapped in quotes, we can force it + # to be treated as an expression by wrapping it in parentheses + expresssion_with_strings: ("string1" + "string2") + multiline_expression: | + def func(x): + return x + 1 + expression_calling_function: func(1) + + # Subcomponents can reference parent component attributes + subcomponents: + - name: subcomponent_name_1[1..scalar] # Can reference attributes of parent components + class: class_of_subcomponent_1 + area_scale: scalar * 123 + attributes: + subcomponent_attribute_1: scalar * 2 # Can reference attributes of parent components + subcomponent_attribute_2: expression + 1 # + + actions: + - name: read # Read action processes a value + subcomponents: + - name: subcomponent_name_1 + actions: + - name: read + energy_scale: expression # + arguments: {arg1: expression} # Arguments are passed to the action + +# ============================================================================== +# Arithmetic in architecture.yaml +# ============================================================================== +architecture: + nodes: ¯o # TOP MACRO + # ============================================================================ + - !Container # Top-level system + name: system + attributes: + system_val: 123 + + - !Component + name: component1 + subclass: component_name_here + attributes: + value1: TOP_LEVEL_DEFINE # Reference top-level define + scalar: TOP_LEVEL_DEFINE * 123 # Overwrite component default + from_system: system_val # Directly reference parent containers + spatial: {meshX: value1} # Can reference attributes of this component + + - !Component + name: component2 + subclass: component_name_here + attributes: + value1: component1.attributes["value1"] # Reference component1 attribute + scalar: component1.attributes.spatial.meshX diff --git a/workspace/cheatsheets/3_architecture.yaml b/workspace/cheatsheets/3_architecture.yaml new file mode 100644 index 00000000..57f53c3e --- /dev/null +++ b/workspace/cheatsheets/3_architecture.yaml @@ -0,0 +1,161 @@ +{{include_text('defines.yaml')}} # Jija templating is allowed + +architecture: + version: 0.4 + nodes: + # =========================================================================== + - !Container # Top-level system + name: top_container + spatial: {meshX: 12, meshY: 34} # Set to 1, 1 if not specified + attributes: + a: 1 + b: 2 + constraints: + # ======================================================================== + # Spatial factor & constraint directives + # ======================================================================== + spatial: + # One way to express + factors: [A=1, B>2, C<3, D=1, E=1, F=1, G=1 ] # ... + # OR use the following + factors_only: [B>2, C<3] + + permutation: [G, F, E, D, C, B, A] + + # Do not iterate over dimensions in ANY of the following + no_iteration_over_dataspaces: [Inputs, Outputs] + # Must iterate over dimensions in ALL of the following list + must_iterate_over_dataspaces: [Weights] + + - !Component + name: buffer_element_1 + subclass: buffer_element + spatial: {meshX: 12, meshY: 34} # Set to 1, 1 if not specified + + # ========================================================================== + # Element attribute settings + # ========================================================================== + attributes: + depth: 2048 # Number of lines + width: 256 # Bits per line + datawidth: 2 # Bits per entry + + # Bandwidths are set to infinite if not specified + read_bandwidth: 1024 # Bits per cycle + write_bandwidth: 1024 # Bits per cycle + rw_bandwidth: 1024 # Bits per cycle + per_dataspace_bandwidth_consumption_scale: + inputs: 5 # Each input bit transferred consumes 5 bits of bandwidth + outputs: 0.2 # An output bit consumes 0.2 bits of bandwidth + + # ========================================================================== + # Element constraint settings + # ========================================================================== + constraints: + # ======================================================================== + # Bypass directives + # ======================================================================== + dataspace: + # One way to express + keep: [Inputs, Outputs] + bypass: [Weights] + # OR use the following + keep_only: [Inputs, Outputs] + # ======================================================================== + # Temporal factor & constraint directives + # ======================================================================== + temporal: + # One way to express + factors: [A=1, B>2, C<3, D=1, E=1, F=1, G=1 ] # ... + # OR use the following + factors_only: [B>2, C<3] + permutation: [G, F, E, D, C, B, A] + + # Do not iterate over dimensions in ANY of the following + no_iteration_over_dataspaces: [Inputs, Outputs] + # Must iterate over dimensions in ALL of the following list + must_iterate_over_dataspaces: [Weights] + + + - !Component + name: buffer_element_2 + subclass: buffer_element + spatial: {meshX: 12, meshY: 34} # Set to 1, 1 if not specified + # ========================================================================== + # Element attribute arithmetic examples + # ========================================================================== + attributes: + depth: 12 * 34 # Use expressions + width: a # Inherit from parent containers (top-level attribute a) + datawidth: buffer_element_1.attributes["datawidth"] # From other elements + # Other attributes are propagated to Accelergy compound components + other_attribute: depth * width + + # ========================================================================== + # Constraint reuse directives + # ========================================================================== + constraints: + dataspace: + # no_coalesce implies temporal no_reuse, AND also that an element can + # not coalesce multiple accesses of a piece of data into one access to a + # parent or child. For example, when an adder sums several values, it + # coalesces them into one output (i.e., reusing the output for multiple + # additions). On the other hand, some networks may not coalesce; if the + # same piece of data is propagated through multiple times, it must be + # fetched from backing storage multiple times. + no_coalesce: [Weights] + temporal: + # temporal no_reuse means that this buffer is emptied each time a + # higher-level temporal loop iterates. For this buffer, it will be + # cleared each time a loop below top_container iterates. Temporal + # no_reuse does not affect lower-level loops. + no_reuse: [Inputs, Outputs] + spatial: + no_reuse: [Inputs, Outputs] # No multicast/reduction + no_link_transfer: [Inputs, Outputs] + # Normally, the first update is just a write. If this constraint is set, + # the first update is a read & update instead. + rmw_first_update: [Outputs] + + - !Component + name: buffer_element_3 + subclass: buffer_element + spatial: {meshX: 12, meshY: 34} # Set to 1, 1 if not specified + # ========================================================================== + # Maximize dims directives + # ========================================================================== + constraints: + temporal: + # Maximize dims priority: + # 1. Earlier lists before later lists + # 2. Dimension that results in greater reduction in the problem size + # 3. Earlier elements before later elements in a list + maximize_dims: # Maximizes up to the spatial meshX + - [A, B] # Maximize A & B first. Prioritize dim that can be made larger. + - [C, D] # After A & B are maximized, maximize C & D. + - [E, F] # After A, B, C, & D are maximized, maximize E & F. + maximize_dims_capacity: 123 # Maximize up to 123 total loop iterations + + spatial: + # Maximize dims priority: + # 1. Earlier lists before later lists + # 2. Dimension that results in greater reduction in the problem size + # 3. Earlier elements before later elements in a list + maximize_dims: + - [A, B] # Maximize A & B first. Prioritize dim that can be made larger. + - [C, D] # After A & B are maximized, maximize C & D. + - [E, F] # After A, B, C, & D are maximized, maximize E & F. + + # The following is set automatically for spatial maximize_dims + maximize_dims_capacity: | + buffer_element_II.spatial.meshX * buffer_element_II.spatial.meshY + + # ============================================================================ + # Compute element is always the leaf node + # ============================================================================ + - !Component + name: compute_element + class: compute_element_class + attributes: + a: 1 + b: 2 diff --git a/workspace/cheatsheets/4_compound_component.yaml b/workspace/cheatsheets/4_compound_component.yaml new file mode 100644 index 00000000..e4330e8e --- /dev/null +++ b/workspace/cheatsheets/4_compound_component.yaml @@ -0,0 +1,52 @@ +compound_components: # REQUIRED top-level key + version: 0.4 # REQUIRED version number + classes: # Compound component classes go below + + # Define a compound component class + - name: component_name_here + attributes: # Attributes listed here can be thought of as the "inputs" to the component + attribute_name_1: 123 # Default values can be specified here + attribute_name_2: "must_specify" # "must_specify" means that the user must specify a value + + # Each subcomponent is a component that is instantiated inside this component + subcomponents: + - name: subcomponent_name_1 + class: class_of_subcomponent_1 # class must be defined by a plug-in or compound component + area_scale: 1 # Area share scales the area of the subcomponent + attributes: + subcomponent_attribute_1: 123 + subcomponent_attribute_2: 456 + + # Multiple subcomponents can be instantiated with a range + - name: subcomponent_name_2[1..123] + class: class_of_subcomponent_2 + area_scale: 1 # Area share scales the area of the subcomponent + attributes: + subcomponent_attribute_1: 123 + subcomponent_attribute_2: 456 + + # Each component MUST have read, write, update, and leak actions + actions: + - name: read # Read action processes a value + subcomponents: + - name: subcomponent_name_1 + actions: + - name: read + energy_scale: 1 # energy_scale specifies how many times the action is performed + arguments: {arg1: 123, arg2: 456} # Arguments are passed to the action + + - name: subcomponent_name_2[0] # Multiple subcomponents can be called. We use [0] here + # because we only want one subcomponent to be read. + actions: + - name: read + energy_scale: 1 # energy_scale specifies how many times the action is performed + arguments: {arg1: 123, arg2: 456} + + # Specify empty subcomponents to have zero-energy actions + - {name: write, subcomponents: []} + - {name: update, subcomponents: []} + - {name: leak, subcomponents: []} + + # Define more compound component classes + - name: component_name_here_2 + # ... \ No newline at end of file diff --git a/workspace/cheatsheets/5_jinja_parsing.yaml b/workspace/cheatsheets/5_jinja_parsing.yaml new file mode 100644 index 00000000..de352710 --- /dev/null +++ b/workspace/cheatsheets/5_jinja_parsing.yaml @@ -0,0 +1,34 @@ +# Add files to be included in the environment +{{add_to_path('path/to/some/dir')}} +{{add_to_path('path/to/some/other/dir')}} + +variables: + version: 0.4 + var1: 5 + var3: "{{cwd()}}/some_file.yaml" # {{cwd()}} is the directory of this file + var4: "{{find_path('some_file.yaml')}}" # find_path searches all paths added by add_to_path + var5: {{set_by_jinja}} # Sets the value to a "set_by_jinja" variable that must be defined + + {% if path_exists('some_file.yaml') %} # Check if a file exists + var6: "some_file.yaml exists" # Include this line if the file exists + {% else %} + +architecture: + # Include a subset of the file. Index into the structure with + # dot-separated keys. + nodes: {{include('other_arch.yaml', 'architecture.nodes')}} + +# Include the entire file +{{include_text('grab_text_from_file.yaml')}} + +compound_components: + version: 0.4 # REQUIRED version number + # Include the subsets of multiple files. They will be merged into one list. + classes: {{include_all('compound_components/*.yaml', 'compound_components.classes')}} + + +{% if enable_text_flag|default(False) %} +text_included_if_enable_text_flag_is_true: | + This text will be included if enable_text_flag is true. The |default(False) sets + the default value of enable_text_flag to False if it is not set. +{% endif %} \ No newline at end of file diff --git a/workspace/example_designs/README.md b/workspace/example_designs/README.md new file mode 100644 index 00000000..4f3b161d --- /dev/null +++ b/workspace/example_designs/README.md @@ -0,0 +1,72 @@ +Example Designs for Timeloop-Accelergy Evaluation System +------------------------------------------------------------ +This folder contains some baseline implementations of an Eyeriss-like architecture,a simba-like (NVDLA style) architecture, +a simple weight stationary architecture, a processing-in-memory architecture, and an output stationary architecture. +Please find them in the `designs` folder. + +### System requirement +In order to run the example designs, you need to be either inside a docker with installed tools +(e.g., [infrastructure docker](https://github.com/Accelergy-Project/accelergy-timeloop-infrastructure) +or manually install the Accelergy-Timeloop evaluation system. + +### File Structure +- example_designs: + - architecture descriptions, compound component descriptions. + - top.yaml.jinja2: Top-level file gathering + - _components directory: Compound components + - _include directory: Default problem file and mapper description +- layer_shapes: + - Example workloads: AlexNet, VGG01, VGG02 +- scripts + - A set of scripts for generating your own workloads in Timeloop format + - Instructions: + - `cd scripts` + - modify the `cnn_layers.py` file to describe your own workload + - `python3 construct_workloads.py ` + +### Run simulations + +To run a simulation using timeloop-accelergy system you should run the `run_example_designs.py` file. + +Here is an example for running AlexNet Layer1 on the `simple_weight_stationary` architecture: +``` +python3 run_example_designs.py --architecture simple_weight_stationary +``` + +Outputs will be generated in the `example_designs/simple_output_stationary/outputs` directory. + +Run `python3 run_example_designs.py -h` to see available arguments. + +``` +usage: run_example_designs.py [-h] [--clear_outputs] [--architecture ARCHITECTURE] [--generate_ref_outputs] [--problem PROBLEM] [--n_jobs N_JOBS] + +options: + -h, --help show this help message and exit + --clear_outputs Clear all generated outputs + --architecture ARCHITECTURE + Architecture to run in the example_designs directory. If not specified, all architectures will be run. + --generate_ref_outputs + Generate reference outputs instead of outputs + --problem PROBLEM Problem to run in the layer_shapes directory. If a directory is specified, all problems in the directory will be run. If not specified, the default problem will be run. + --n_jobs N_JOBS Number of jobs to run in parallel +``` + +Full DNNs can be run by specifying a directory containing multiple layer files: +``` +python3 run_example_designs.py --clear_outputs --architecture eyeriss_like --problem CONV/VGG02 +``` + +Outputs for each layer will be generated in subdirectories of the `example_designs/eyeriss_like/outputs` directory. + + +** Note that for the provided designs and workloads, your simulation should generally converge within 30 mins. Once you see +the simulations converging, you can press `ctrl + C` to manually stop them. They sometimes will take much longer to +automaticaly stop as we set the converging criteria to be pretty high to avoid early-stop with subooptimal mappings. +Please use you own judgement. ** + + +### Related reading + - [eyeriss-like design](https://people.csail.mit.edu/emer/papers/2017.01.jssc.eyeriss_design.pdf) + - [simba-like architecture](https://people.eecs.berkeley.edu/~ysshao/assets/papers/shao2019-micro.pdf) + - simple weight stationary architecture: you can refer to the related lecture notes + - simple output stationary architecture: you can refer to the related lecture notes diff --git a/workspace/example_designs/example_designs/_components/intmac.yaml b/workspace/example_designs/example_designs/_components/intmac.yaml new file mode 100644 index 00000000..2724fab1 --- /dev/null +++ b/workspace/example_designs/example_designs/_components/intmac.yaml @@ -0,0 +1,32 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + + subcomponents: + - name: intadder + class: aladdin_adder + attributes: {width: adder_width} + + - name: intmultiplier + class: aladdin_multiplier + attributes: {width_a: multiplier_width, width_b: multiplier_width} + + actions: + - name: compute + subcomponents: + - name: intadder + actions: [{name: read}] + - name: intmultiplier + actions: [{name: read}] + - name: leak + subcomponents: + - name: intadder + actions: [{name: leak}] + - name: intmultiplier + actions: [{name: leak}] diff --git a/workspace/example_designs/example_designs/_components/regfile.yaml b/workspace/example_designs/example_designs/_components/regfile.yaml new file mode 100644 index 00000000..006ce976 --- /dev/null +++ b/workspace/example_designs/example_designs/_components/regfile.yaml @@ -0,0 +1,45 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + + + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage[1..width] + actions: [{name: write}] + - name: comparator[1..depth] + actions: [{name: compare}] + - name: read + subcomponents: + - name: storage[1..width] + actions: [{name: read}] + - name: comparator[1..depth] + actions: [{name: compare}] + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}] + - name: comparator[1..depth] + actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/example_designs/example_designs/_components/regfile_metadata.yaml b/workspace/example_designs/example_designs/_components/regfile_metadata.yaml new file mode 100644 index 00000000..8e5557a2 --- /dev/null +++ b/workspace/example_designs/example_designs/_components/regfile_metadata.yaml @@ -0,0 +1,69 @@ +compound_components: + version: 0.4 + classes: + - name: regfile_metadata + attributes: + # attributes that must be specified + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + + - name: metadata_counters[0..1] # one for read, one for write + class: intadder + attributes: + technology: technology + width: metadata_counter_width + + actions: + - name: read + subcomponents: + - {name: storage, actions: [{name: read}]} + - &write_action + name: write + subcomponents: + - {name: storage, actions: [{name: write}]} + - name: update + <<: *write_action + + - name: metadata_read + subcomponents: + - {name: metadata_storage, actions: [{name: read}]} + - &metadata_write + name: metadata_write + subcomponents: + - {name: metadata_storage, actions: [{name: write}]} + - name: metadata_update + <<: *metadata_write + + - name: leak + subcomponents: + - {name: storage, actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}]} + - {name: metadata_storage, actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}]} + + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add diff --git a/workspace/example_designs/example_designs/_components/smartbuffer_RF.yaml b/workspace/example_designs/example_designs/_components/smartbuffer_RF.yaml new file mode 100644 index 00000000..dc0fc9ec --- /dev/null +++ b/workspace/example_designs/example_designs/_components/smartbuffer_RF.yaml @@ -0,0 +1,64 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + # CACTI requires >= 4B wide and >= 64 entries deep + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + + area_scale: widthscale * depthscale + # CACTI scaling: 2x depth --> 1.56x dynamic power + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale # Leakage proportional to area + n_rdwr_ports: 1 # Can be overwridden + global_cycle_seconds: "must_specify" + + + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage + actions: [{name: write, energy_scale: dynamic_energy_scale}] + - name: address_generators[0] + actions: [{name: add}] + - name: read + subcomponents: + - name: storage + actions: [{name: read, energy_scale: dynamic_energy_scale}] + - name: address_generators[1] + actions: [{name: add}] + - name: leak + subcomponents: + - name: storage + actions: [{name: leak, energy_scale: static_energy_scale}] + - name: address_generators[0..1] + actions: [{name: leak}] + - name: update + << : *write_action # Update is the same as write diff --git a/workspace/example_designs/example_designs/_components/smartbuffer_SRAM.yaml b/workspace/example_designs/example_designs/_components/smartbuffer_SRAM.yaml new file mode 100644 index 00000000..382d712a --- /dev/null +++ b/workspace/example_designs/example_designs/_components/smartbuffer_SRAM.yaml @@ -0,0 +1,52 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage + actions: [{name: write}] + - name: address_generators[0] + actions: [{name: add}] + - name: read + subcomponents: + - name: storage + actions: [{name: read}] + - name: address_generators[1] + actions: [{name: add}] + - name: leak + subcomponents: + - name: storage + actions: [{name: leak}] + - name: address_generators[0..1] + actions: [{name: leak}] + - name: update + << : *write_action # Update is the same as write diff --git a/workspace/example_designs/example_designs/_components/smartbuffer_metadata.yaml b/workspace/example_designs/example_designs/_components/smartbuffer_metadata.yaml new file mode 100644 index 00000000..ed182b15 --- /dev/null +++ b/workspace/example_designs/example_designs/_components/smartbuffer_metadata.yaml @@ -0,0 +1,72 @@ +compound_components: + version: 0.4 + classes: + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + + - name: metadata_counters[0..1] # one for read, one for write + class: intadder + attributes: + technology: technology + width: metadata_counter_width + + actions: + - name: read + subcomponents: + - {name: storage, actions: [{name: read}]} + - &write_action + name: write + subcomponents: + - {name: storage, actions: [{name: write}]} + - name: update + <<: *write_action + + - name: metadata_read + subcomponents: + - {name: metadata_storage, actions: [{name: read}]} + - &metadata_write + name: metadata_write + subcomponents: + - {name: metadata_storage, actions: [{name: write}]} + - name: metadata_update + <<: *metadata_write + + - name: leak + subcomponents: + - {name: storage, actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}]} + - {name: metadata_storage, actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}]} + + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add diff --git a/workspace/example_designs/example_designs/_include/default_problem.yaml b/workspace/example_designs/example_designs/_include/default_problem.yaml new file mode 100644 index 00000000..a25d00f5 --- /dev/null +++ b/workspace/example_designs/example_designs/_include/default_problem.yaml @@ -0,0 +1,63 @@ +problem: + version: 0.4 + instance: + C: 3 + H: 224 + Hdilation: 1 + Hpad: 1 + Hstride: 2 + M: 32 + N: 1 + P: 112 + Q: 112 + R: 3 + S: 3 + W: 224 + Wdilation: 1 + Wpad: 1 + Wstride: 2 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: conv2D diff --git a/workspace/example_designs/example_designs/_include/mapper.yaml b/workspace/example_designs/example_designs/_include/mapper.yaml new file mode 100644 index 00000000..2c25f314 --- /dev/null +++ b/workspace/example_designs/example_designs/_include/mapper.yaml @@ -0,0 +1,9 @@ +mapper: + version: 0.4 + optimization_metrics: [ edp ] + live_status: False + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: False \ No newline at end of file diff --git a/workspace/example_designs/example_designs/eyeriss_like/README.md b/workspace/example_designs/example_designs/eyeriss_like/README.md new file mode 100644 index 00000000..677c825e --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/README.md @@ -0,0 +1,33 @@ +Eyeriss-Like Architecture +---------------------------- +This folder contains an architecture based on the Eyeriss design description proposed +[here](https://people.csail.mit.edu/emer/papers/2017.01.jssc.eyeriss_design.pdf). + +Q&As: +---------------------------- +1. What is the usage of the "DummyBuffer"? + + DummyBuffer is placeholder memory block that helps Timeloop to correctly model + the row stationary mappings. With the insertion of the Dummybuffer, we can map + M dimension to both the rows of the PE and cols of PE -- otherwise, Timeloop can + only map the model dimensions to either the rows or columns of the PE array. + +2. Does this design perform exactly as the Eyeriss design in the paper? + + For many cases, it does. However, since Timeloop's mapper is not as flexible as a manually + generated mapping, sometimes it does not produce the exact results as shown in the paper. + The main limitation is that Timeloop considers the factors of a dimension, e.g., 4 is a factor + of 256, when it performs mapping space explorations. Therefore, when using a non-divisible factor + result in better mappings, Timeloop is not able to find it. However, padding the workload dimensions + will solve these types of problems. + +3. How long do the Timeloop simulations take? + + Depending on your workload, the simulation takes various amounts of time to finish. Generally, they should + converge within 30 mins. You can manually stop the exploration when you see things are converging by + pressing `ctrl + C`. They sometimes will take much longer to automatically stop as we set the converging criteria to be pretty high to avoid early-stop with suboptimal mappings. Use you own + judgement. + + + + diff --git a/workspace/example_designs/example_designs/eyeriss_like/arch.yaml b/workspace/example_designs/example_designs/eyeriss_like/arch.yaml new file mode 100644 index 00000000..49f64386 --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/arch.yaml @@ -0,0 +1,107 @@ +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + + - !Container # Eyeriss accelerator + name: eyeriss + attributes: + technology: "65nm" + + - !Component # Global buffer for inputs & outputs + name: shared_glb + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + constraints: + dataspace: {keep: [Inputs, Outputs], bypass: [Weights]} + + - !Container # Each column of PEs produces a different psum row + name: PE_column + spatial: {meshX: 14} + constraints: + spatial: + permutation: [N, C, P, R, S, Q, M] + factors: [N=1, C=1, P=1, R=1, S=1] + split: 999 + + - !Container # Each PE in the column receives a different filter row + name: PE + spatial: {meshY: 12} + constraints: + spatial: + split: 0 + permutation: [N, P, Q, R, S, C, M] + factors: [N=1, P=1, Q=1, R=1] + + - !Parallel # Input/Output/Weight scratchpads in parallel + nodes: + - !Component # Input scratchpad + name: ifmap_spad + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Inputs]} + temporal: + permutation: [N, M, C, P, Q, R, S] + factors: [N=1, M=1, C=1, P=1, Q=1, R=1, S=1] + + - !Component # Weight scratchpad + name: weights_spad + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Weights]} + temporal: + permutation: [N, M, P, Q, S, C, R] + factors: [N=1, M=1, P=1, Q=1, S=1] + + - !Component # Output scratchpad + name: psum_spad + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Outputs]} + temporal: + permutation: [N, C, P, Q, R, S, M] + factors: [N=1, C=1, R=1, S=1, P=1, Q=1] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..d59fce51 --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,735 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "SET ME" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - leak + - write + - read + - update + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + technology: "32nm" + required_actions: + - leak + - write + - read + - update + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + technology: "32nm" + required_actions: + - leak + - write + - read + - update + enabled: true + - name: weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + technology: "32nm" + required_actions: + - leak + - write + - read + - update + enabled: true + - name: psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + technology: "32nm" + required_actions: + - leak + - write + - read + - update + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + power_gated_at: null + technology: "32nm" + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - type: temporal + permutation: N + target: shared_glb + - type: spatial + factors: N=1,C=1,P=1,R=1,S=1 + permutation: NCPRSQM + split: 999 + target: inter_PE_column_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + factors: N=1,P=1,Q=1,R=1 + permutation: NPQRSCM + split: 0 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + bypass: + - Weights + - Outputs + target: ifmap_spad + - permutation: NMCPQRS + factors: N=1,M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + bypass: + - Outputs + - Inputs + target: weights_spad + - permutation: NMPQSCR + factors: N=1,M=1,P=1,Q=1,S=1 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + bypass: + - Weights + - Inputs + target: psum_spad + - permutation: NCPQRSM + factors: N=1,C=1,R=1,S=1,P=1,Q=1 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 3 + H: 224 + Hdilation: 1 + Hpad: 1 + Hstride: 2 + M: 32 + N: 1 + P: 112 + Q: 112 + R: 3 + S: 3 + W: 224 + Wdilation: 1 + Wpad: 1 + Wstride: 2 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: conv2D +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..3abe0818 --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 217363.36892 + - name: system_top_level.ifmap_spad[1..168] + area: 70.091961 + - name: system_top_level.weights_spad[1..168] + area: 5816.44278 + - name: system_top_level.psum_spad[1..168] + area: 123.627348 + - name: system_top_level.mac[1..168] + area: 191.82 diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..4ab3cd6a --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.shared_glb[1..1] + area: 217363.36892 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 70.091961 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 5816.44278 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 123.627348 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 191.82 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..a348bf3f --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 14.137929 + - name: read + arguments: {} + energy: 18.183829 + - name: leak + arguments: {} + energy: 0.005652 + - name: update + arguments: {} + energy: 14.137929 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.176713 + - name: read + arguments: {} + energy: 0.202442 + - name: leak + arguments: {} + energy: 0.000101 + - name: update + arguments: {} + energy: 0.176713 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 1.881657 + - name: read + arguments: {} + energy: 1.976602 + - name: leak + arguments: {} + energy: 0.001592 + - name: update + arguments: {} + energy: 1.881657 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.2191 + - name: read + arguments: {} + energy: 0.2513 + - name: leak + arguments: {} + energy: 0.000134 + - name: update + arguments: {} + energy: 0.2191 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.207692 + - name: leak + arguments: {} + energy: 0.002374 diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..4f10183f --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + energy: 0.0 + - name: write + energy: 512.0 + - name: read + energy: 512.0 + - name: update + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 14.137929 + - name: read + energy: 18.183829 + - name: leak + energy: 0.005652 + - name: update + energy: 14.137929 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.176713 + - name: read + energy: 0.202442 + - name: leak + energy: 0.000101 + - name: update + energy: 0.176713 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 1.881657 + - name: read + energy: 1.976602 + - name: leak + energy: 0.001592 + - name: update + energy: 1.881657 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.2191 + - name: read + energy: 0.2513 + - name: leak + energy: 0.000134 + - name: update + energy: 0.2191 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.207692 + - name: leak + energy: 0.002374 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..cdc2409f --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,954 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Adding required action "leak" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "write" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "read" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "update" to class DRAM +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.1875. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 12. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.09375. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.1354911710963393. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.09375. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 192. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 192. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.5. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.5. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.5. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.25. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 16. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.125. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.16957554093095897. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.125. +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 64. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 16384. +2024-05-29 16:49:56 INFO Calculated storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 32nm. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.area_scale as "area_scale" = 0.09375. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.09375. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "memory_depth" = 192. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.area_scale as "area_scale" = 0.5. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 6144. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:49:56 INFO Calculated storage.storage[1..6144]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.comparator[1..192]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2024-05-29 16:49:56 INFO Calculated storage.comparator[1..192]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.5. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 6144. +2024-05-29 16:49:56 INFO Calculated system_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:49:56 INFO Calculated system_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:49:56 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.area_scale as "area_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=32nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 1.4109500000000001e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdldufwgt +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnipcpoo6 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdldufwgt >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnipcpoo6 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 49.177808513908104 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:57 INFO Neurosim Plug-In estimated 0.028429009999999998p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:57 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:49:57 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:49:57 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:49:57 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:49:57 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:49:57 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_17049.cfg +2024-05-29 16:49:57 INFO | Crossbar minimum latency is 2.344 ns to read 8.0 columns at once. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=32nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 1.81554e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp95tzyj7u +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbyvc6n2r +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp95tzyj7u >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbyvc6n2r 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 49.177808513908104 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:57 INFO Neurosim Plug-In estimated 0.028429009999999998p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=32nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 5.645290000000001e-15 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2cx4ih7r +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpiftd294k +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2cx4ih7r >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpiftd294k 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 49.177808513908104 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.3014 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 3.124068e-06p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=32nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.4109500000000001e-11 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3gpigwsx +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp60e5uaox +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3gpigwsx >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp60e5uaox 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 49.177808513908104 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.028429009999999998p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:49:58 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:49:58 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:49:58 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_17049.cfg +2024-05-29 16:49:58 INFO | Crossbar minimum latency is 2.344 ns to read 8.0 columns at once. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.005934062509018498p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x leak', 'aladdin_register leak has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 1.654944099737381e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x leak', 'aladdin_comparator leak has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 8.925909999999997e-07p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.016304029999999997p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:49:58 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:49:58 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:49:58 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:49:58 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:49:58 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_17049.cfg +2024-05-29 16:49:58 INFO | Crossbar minimum latency is 2.344 ns to read 8.0 columns at once. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.005934062509018498p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.016304029999999997p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x leak', 'aladdin_register leak has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 1.654944099737381e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x leak', 'aladdin_comparator leak has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 1.7851820000000002e-06p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.016304029999999997p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.005934062509018498p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x leak', 'aladdin_register leak has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 1.654944099737381e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x leak', 'aladdin_comparator leak has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 8.925909999999997e-07p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_register energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.019430758015641682p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_comparator energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Neurosim Plug-In estimated 0.008220707p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.06923072927188248p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_adder energy has been scaled 0.32967013938991657x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 0.32967013938991657x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.13846145854376496p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.6593402787798331x energy', 'aladdin_adder energy has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.technology from 45.0 to 32.0: 0.6593402787798331x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0007912083345357997p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.6593402787798331x leak', 'aladdin_adder leak has been scaled 0.32967013938991657x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.technology from 45.0 to 32.0: 0.6593402787798331x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 0.32967013938991657x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0015824166690715995p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.6593402787798331x leak', 'aladdin_adder leak has been scaled 0.6593402787798331x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.technology from 45.0 to 32.0: 0.6593402787798331x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 0.6593402787798331x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 WARNING No action counts are specified as yaml input +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=14, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=32nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 2.17281e-07 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.032 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpuoza6d80 +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwkaaobgf +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpuoza6d80 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwkaaobgf 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 49.177808513908104 bits/second +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Neurosim Plug-In estimated 41.18446u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 2.7508000000000004u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:59 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area +2024-05-29 16:49:59 INFO | aladdin_register area has been scaled 0.46x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 32.660000000000004u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area +2024-05-29 16:49:59 INFO | aladdin_comparator area has been scaled 0.46x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Neurosim Plug-In estimated 11.766989999999998u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 2.7508000000000004u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:59 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area +2024-05-29 16:49:59 INFO | aladdin_register area has been scaled 0.46x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 32.660000000000004u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area +2024-05-29 16:49:59 INFO | aladdin_comparator area has been scaled 0.46x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Neurosim Plug-In estimated 23.533979999999996u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 2.7508000000000004u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area', 'aladdin_register area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:59 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | Scaled aladdin_register.technology from 45.0 to 32.0: 0.46x area +2024-05-29 16:49:59 INFO | aladdin_register area has been scaled 0.46x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 32.660000000000004u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area', 'aladdin_comparator area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.technology from 45.0 to 32.0: 0.46x area +2024-05-29 16:49:59 INFO | aladdin_comparator area has been scaled 0.46x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Neurosim Plug-In estimated 11.766989999999998u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | WARN: Non-numeric 32nm for parameter technology. Using 32 instead. +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 63.940000000000005u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.23x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.23x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.23x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.23x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.23x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area +2024-05-29 16:49:59 INFO | aladdin_adder area has been scaled 0.23x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=32nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 127.88000000000001u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaling technology from 45nm to 32nm', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area', 'aladdin_adder area has been scaled 0.46x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaling technology from 45nm to 32nm +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.technology from 45.0 to 32.0: 0.46x area +2024-05-29 16:49:59 INFO | aladdin_adder area has been scaled 0.46x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO flattened architecture is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:59 INFO energy reference table is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:59 INFO energy reference table summary is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:59 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:59 INFO area reference table is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:59 INFO area reference table summary is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..801fec39 --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,244 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + technology: "SET ME" + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - write + - read + - update + enabled: true + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + technology: "32nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rw_ports: 1 + required_actions: + - leak + - write + - read + - update + enabled: true + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + technology: "32nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - leak + - write + - read + - update + enabled: true + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + technology: "32nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - leak + - write + - read + - update + enabled: true + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + technology: "32nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - leak + - write + - read + - update + enabled: true + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + power_gated_at: null + technology: "32nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..5a49ae07 --- /dev/null +++ b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 1 M 4 R 1 S 1 N 1 P 8 Q 2 +MQP +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 1 M 1 R 1 S 1 N 1 P 14 Q 4 +QP +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 14 +Q +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 3 M 1 R 1 S 3 N 1 P 1 Q 1 +SC +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 1 M 1 R 3 S 1 N 1 P 1 Q 1 +R +t0 +C 1 M 8 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/eyeriss_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/simba_like/README.md b/workspace/example_designs/example_designs/simba_like/README.md new file mode 100644 index 00000000..3aa2e699 --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/README.md @@ -0,0 +1,23 @@ +Simba-Like Architecture +---------------------------- +This folder contains an architecture based on the Simba design description proposed +[here](https://people.csail.mit.edu/emer/papers/2017.01.jssc.eyeriss_design.pdf). This architecture is similar to the +NVDLA architecture as well. + +Q&As: +---------------------------- +1. Why is the technology different? + + Since the open-sourced energy estimation plug-ins have the most flexible support + for the 45nm components, we changed the technology to 45nm. + +2. What are major the differences between this design and the original design? + - Simba is a multi-chip design, but here we only show the architecture description of a single chip. + - We have reduced the number of MACs inside each PE from 64 to 16. + +3. How long do the Timeloop simulations take? + + Depending on your workload, the simulation takes various amount of time to finish. Generally, they should + converge within 30 mins. You can manually stop the exploration when you see things are converging by + pressing `ctrl + C`. They sometimes will take much longer to automaticaly stop as we set the converging cretiria to be pretty high to avoid early-stop with subooptimal mappings. Use you own + judgement. \ No newline at end of file diff --git a/workspace/example_designs/example_designs/simba_like/arch.yaml b/workspace/example_designs/example_designs/simba_like/arch.yaml new file mode 100644 index 00000000..27a12241 --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/arch.yaml @@ -0,0 +1,104 @@ +architecture: + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: System + attributes: + datawidth: 8 + technology: "45nm" + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + + - !Component # Global buffer for inputs & outputs + name: GlobalBuffer + class: smartbuffer_SRAM + attributes: + depth: 2048 + width: 256 + datawidth: 8 + n_banks: 4 + nports: 2 + constraints: + dataspace: {keep: [Inputs, Outputs], bypass: [Weights]} + + - !Container # Each PE works on a different output channel + name: PE + spatial: {meshX: 16} + constraints: + spatial: {factors: R=1 S=1 P=1 Q=1 N=1, permutation: [M, C, R, S, P, Q, N]} + + - !Component # Input buffer + name: PEInputBuffer + class: storage + subclass: smartbuffer_RF + attributes: + depth: 8192 + width: 64 + datawidth: 8 + constraints: + dataspace: {keep: [Inputs], bypass: [Weights, Outputs]} + + - !Container # Weight channels distributed across different buffers + name: distributed_buffers + spatial: {meshY: 4} + constraints: + spatial: {factors: P=1 Q=1 R=1 S=1 C=1 N=1, permutation: [M, C, Q, R, S, P, N]} + + - !Parallel # Weight/accumulator buffers + nodes: + - !Component # Weight buffer + name: PEWeightBuffer + class: storage + subclass: smartbuffer_RF + attributes: + depth: 4096 + width: 64 + datawidth: 8 + n_banks: 8 + constraints: + dataspace: {keep: [Weights], bypass: [Inputs, Outputs]} + + - !Component # Accumulator buffer + name: PEAccuBuffer + class: storage + subclass: smartbuffer_RF + attributes: + depth: 128 + datawidth: 24 + width: 24 + constraints: + dataspace: {keep: [Outputs], bypass: [Inputs, Weights]} + + - !Nothing {constraints: {dataspace: {keep: [Inputs]}}} + + - !Container # Four registers/MAC pairs per distributed buffer + name: reg_mac + spatial: {meshY: 4} + constraints: + spatial: {factors: P=1 Q=1 R=1 S=1 M=1 N=1, permutation: [C, M, Q, R, S, P, N]} + + - !Component # Weight registers + name: PEWeightRegs + class: storage + subclass: smartbuffer_RF + attributes: + depth: 1 + width: 512 + cluster_size: 64 + num_ports: 2 + datawidth: 8 + constraints: + dataspace: {keep: [Weights], bypass: [Inputs, Outputs]} + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..47ed26fa --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,795 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + datawidth: 8 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: GlobalBuffer[1..1] + class: smartbuffer_SRAM + attributes: + depth: 2048 + width: 256 + datawidth: 8 + n_banks: 4 + nports: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: PEInputBuffer[1..16] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 8192 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: inter_distributed_buffers_spatial[1..16] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + power_gated_at: null + enabled: true + - name: PEWeightBuffer[1..64] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 4096 + width: 64 + datawidth: 8 + n_banks: 8 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 4 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: PEAccuBuffer[1..64] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 128 + datawidth: 24 + width: 24 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 4 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: inter_reg_mac_spatial[1..64] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 4 + power_gated_at: null + enabled: true + - name: PEWeightRegs[1..256] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 1 + width: 512 + cluster_size: 64 + num_ports: 2 + datawidth: 8 + has_power_gating: false + n_banks: 2 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: mac[1..256] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 16 + meshY: 16 + datawidth: 8 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: GlobalBuffer + - type: temporal + permutation: N + target: GlobalBuffer + - type: spatial + factors: R=1,S=1,P=1,Q=1,N=1 + permutation: MCRSPQN + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + bypass: + - Weights + - Outputs + type: bypass + target: PEInputBuffer + - type: temporal + permutation: N + target: PEInputBuffer + - type: spatial + factors: P=1,Q=1,R=1,S=1,C=1,N=1 + permutation: MCQRSPN + target: inter_distributed_buffers_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_distributed_buffers_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_distributed_buffers_spatial + - keep: + - Weights + bypass: + - Inputs + - Outputs + type: bypass + target: PEWeightBuffer + - type: temporal + permutation: N + target: PEWeightBuffer + - keep: + - Outputs + bypass: + - Inputs + - Weights + type: bypass + target: PEAccuBuffer + - type: temporal + permutation: N + target: PEAccuBuffer + - type: spatial + factors: P=1,Q=1,R=1,S=1,M=1,N=1 + permutation: CMQRSPN + target: inter_reg_mac_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_reg_mac_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_reg_mac_spatial + - keep: + - Weights + bypass: + - Inputs + - Outputs + type: bypass + target: PEWeightRegs + - type: temporal + permutation: N + target: PEWeightRegs +problem: + version: '0.4' + instance: + C: 3 + H: 224 + Hdilation: 1 + Hpad: 1 + Hstride: 2 + M: 32 + N: 1 + P: 112 + Q: 112 + R: 3 + S: 3 + W: 224 + Wdilation: 1 + Wpad: 1 + Wstride: 2 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: conv2D +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..70377f1e --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,23 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.DRAM[1..1] + area: 0.0 + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: System_top_level.inter_distributed_buffers_spatial[1..16] + area: 1.0 + - name: System_top_level.inter_reg_mac_spatial[1..64] + area: 1.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 199065.0625 + - name: System_top_level.PEInputBuffer[1..16] + area: 3717019.6775 + - name: System_top_level.PEWeightBuffer[1..64] + area: 1858571.37 + - name: System_top_level.PEAccuBuffer[1..64] + area: 18948.654375 + - name: System_top_level.PEWeightRegs[1..256] + area: 49.12418 + - name: System_top_level.mac[1..256] + area: 417.0 diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..ecc3a85e --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,65 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: System_top_level.inter_distributed_buffers_spatial[1..16] + area: 1.0 + primitive_estimations: dummy_table + - name: System_top_level.inter_reg_mac_spatial[1..64] + area: 1.0 + primitive_estimations: dummy_table + - name: System_top_level.GlobalBuffer[1..1] + area: 199065.0625 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.PEInputBuffer[1..16] + area: 3717019.6775 + primitive_estimations: + - name: storage.storage[1..524288] + estimator: Library + - name: storage.comparator[1..8192] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.PEWeightBuffer[1..64] + area: 1858571.37 + primitive_estimations: + - name: storage.storage[1..262144] + estimator: Library + - name: storage.comparator[1..4096] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.PEAccuBuffer[1..64] + area: 18948.654375 + primitive_estimations: + - name: storage.storage[1..4096] + estimator: Library + - name: storage.comparator[1..128] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.PEWeightRegs[1..256] + area: 49.12418 + primitive_estimations: + - name: storage.storage[1..32768] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.mac[1..256] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..e19e44eb --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,103 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.DRAM[1..1] + actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: write + arguments: {} + energy: 66.310888 + - name: read + arguments: {} + energy: 51.870888 + - name: leak + arguments: {} + energy: 0.003241 + - name: update + arguments: {} + energy: 66.310888 + - name: System_top_level.PEInputBuffer[1..16] + actions: + - name: write + arguments: {} + energy: 241.503552 + - name: read + arguments: {} + energy: 242.079552 + - name: leak + arguments: {} + energy: 0.207488 + - name: update + arguments: {} + energy: 241.503552 + - name: System_top_level.PEWeightBuffer[1..64] + actions: + - name: write + arguments: {} + energy: 120.78787 + - name: read + arguments: {} + energy: 121.36387 + - name: leak + arguments: {} + energy: 0.104535 + - name: update + arguments: {} + energy: 120.78787 + - name: System_top_level.PEAccuBuffer[1..64] + actions: + - name: write + arguments: {} + energy: 2.875058 + - name: read + arguments: {} + energy: 3.091057 + - name: leak + arguments: {} + energy: 0.003416 + - name: update + arguments: {} + energy: 2.875058 + - name: System_top_level.PEWeightRegs[1..256] + actions: + - name: write + arguments: {} + energy: 0.080139 + - name: read + arguments: {} + energy: 0.259899 + - name: leak + arguments: {} + energy: 0.000169 + - name: update + arguments: {} + energy: 0.080139 + - name: System_top_level.mac[1..256] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..48638ff2 --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,138 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.DRAM[1..1] + actions: + - name: read + energy: 512.0 + - name: update + energy: 512.0 + - name: leak + energy: 0.0 + - name: write + energy: 512.0 + primitive_estimation(s): + - name: System_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: write + energy: 66.310888 + - name: read + energy: 51.870888 + - name: leak + energy: 0.003241 + - name: update + energy: 66.310888 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.PEInputBuffer[1..16] + actions: + - name: write + energy: 241.503552 + - name: read + energy: 242.079552 + - name: leak + energy: 0.207488 + - name: update + energy: 241.503552 + primitive_estimation(s): + - name: storage.storage[1..64] + estimator: Library + - name: storage.comparator[1..8192] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..524288] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.PEWeightBuffer[1..64] + actions: + - name: write + energy: 120.78787 + - name: read + energy: 121.36387 + - name: leak + energy: 0.104535 + - name: update + energy: 120.78787 + primitive_estimation(s): + - name: storage.storage[1..64] + estimator: Library + - name: storage.comparator[1..4096] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..262144] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.PEAccuBuffer[1..64] + actions: + - name: write + energy: 2.875058 + - name: read + energy: 3.091057 + - name: leak + energy: 0.003416 + - name: update + energy: 2.875058 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..128] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..4096] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.PEWeightRegs[1..256] + actions: + - name: write + energy: 0.080139 + - name: read + energy: 0.259899 + - name: leak + energy: 0.000169 + - name: update + energy: 0.080139 + primitive_estimation(s): + - name: storage.storage[1..512] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..32768] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: System_top_level.mac[1..256] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..77ec1faf --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,953 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:57 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:57 INFO Adding required action "read" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "update" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "leak" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "write" to class DRAM +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 64. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 8192. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 8192. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 64. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 4096. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 4096. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 128. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.75. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 128. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.75. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.75. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.75. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 512. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.015625. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 1. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.015625. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.03901032965317537. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.015625. +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:57 INFO Getting all estimators in module +2024-05-29 16:49:57 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:57 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:57 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:57 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:57 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:57 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:57 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:57 INFO Found estimator plug-in: Library () +2024-05-29 16:49:57 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:57 INFO Calculated storage."width" as "width" = 256. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "depth" = 2048. +2024-05-29 16:49:57 INFO Calculated storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 11. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 11. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 11. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 64. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 8192. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 524288. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 8192. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..524288]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..8192]."n_bits" as "max(1, ceil(log2(depth)))" = 13. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..8192]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 13. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 13. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 13. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 64. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 8192. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 64. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 8192. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 524288. +2024-05-29 16:49:57 INFO Calculated System_top_level.PEInputBuffer[1..16].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 8192. +2024-05-29 16:49:57 INFO Calculated System_top_level.PEInputBuffer[1..16].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 64. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 8192. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 64. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 4096. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 262144. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 4096. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..262144]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..4096]."n_bits" as "max(1, ceil(log2(depth)))" = 12. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..4096]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 12. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 12. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 12. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 64. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 4096. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 64. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 4096. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 262144. +2024-05-29 16:49:57 INFO Calculated System_top_level.PEWeightBuffer[1..64].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 4096. +2024-05-29 16:49:57 INFO Calculated System_top_level.PEWeightBuffer[1..64].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 64. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 4096. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 128. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.75. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..4096]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..128]."n_bits" as "max(1, ceil(log2(depth)))" = 7. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..128]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.75. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.75. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.75. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 16:49:57 INFO Calculated System_top_level.PEAccuBuffer[1..64].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:57 INFO Calculated System_top_level.PEAccuBuffer[1..64].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.75. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 512. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.015625. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 32768. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..32768]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.03901032965317537. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 512. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.03901032965317537. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 512. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.015625. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 32768. +2024-05-29 16:49:57 INFO Calculated System_top_level.PEWeightRegs[1..256].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated System_top_level.PEWeightRegs[1..256].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.03901032965317537. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 512. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:57 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:57 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=256, depth=2048, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.623870000000001e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppg9d7xxk +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpotngg5wd +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppg9d7xxk >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpotngg5wd 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 135.224361513879 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0721875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=256, depth=2048, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 5.1798700000000004e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9g7mnmn9 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6r50cuil +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9g7mnmn9 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6r50cuil 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 135.224361513879 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0721875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=256, depth=2048, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 1.6598900000000002e-15 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpiw6_mp1m +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdytfqo83 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpiw6_mp1m >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdytfqo83 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 135.224361513879 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.89315 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000790625p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=256, depth=2048, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.623870000000001e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpaa8zbb_h +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpukgw2y9t +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpaa8zbb_h >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpukgw2y9t 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 135.224361513879 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0721875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000934375p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.07875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.07875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0008625p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.07875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 7.1875e-05p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 WARNING No action counts are specified as yaml input +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=4, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=256, depth=2048, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.98942e-07 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplu3bqpey +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzh98qi8p +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplu3bqpey >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzh98qi8p 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 135.224361513879 bits/second +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 61.53125u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 72.71875u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 67.125u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 5.59375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO flattened architecture is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:58 INFO energy reference table is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:58 INFO energy reference table summary is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:58 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:58 INFO area reference table is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:58 INFO area reference table summary is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..d207db1e --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,302 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: System_top_level.GlobalBuffer[1..1] + class: smartbuffer_SRAM + attributes: + depth: 2048 + width: 256 + datawidth: 8 + n_banks: 4 + nports: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rw_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: System_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: System_top_level.PEInputBuffer[1..16] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 8192 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 8192 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 8192 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: System_top_level.inter_distributed_buffers_spatial[1..16] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: System_top_level.PEWeightBuffer[1..64] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 4096 + width: 64 + datawidth: 8 + n_banks: 8 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 4 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 4096 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 4096 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: System_top_level.PEAccuBuffer[1..64] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 128 + datawidth: 24 + width: 24 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 4 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 128 + widthscale: 0.75 + depthscale: 1.0 + real_depth: 128 + area_scale: 0.75 + dynamic_energy_scale: 0.75 + static_energy_scale: 0.75 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: System_top_level.inter_reg_mac_spatial[1..64] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 4 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: System_top_level.PEWeightRegs[1..256] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 1 + width: 512 + cluster_size: 64 + num_ports: 2 + datawidth: 8 + has_power_gating: false + n_banks: 2 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 512 + memory_depth: 64 + widthscale: 1.0 + depthscale: 0.015625 + real_depth: 1 + area_scale: 0.015625 + dynamic_energy_scale: 0.03901032965317537 + static_energy_scale: 0.015625 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: System_top_level.mac[1..256] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 16 + meshY: 16 + datawidth: 8 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..075a657d --- /dev/null +++ b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,53 @@ +#error Tenssella does not support bypass. +t8 +C 1 M 1 R 1 S 1 N 1 P 1 Q 28 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t7 +C 1 M 1 R 1 S 1 N 1 P 4 Q 1 +P +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t6 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s6 +C 3 M 4 R 1 S 1 N 1 P 1 Q 1 +MC +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 1 M 1 R 1 S 1 N 1 P 1 Q 4 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 4 R 1 S 1 N 1 P 1 Q 1 +M +6 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 3 S 3 N 1 P 4 Q 1 +SPR +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 2 R 1 S 1 N 1 P 7 Q 1 +PM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +t0 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q diff --git a/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/simba_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/simple_output_stationary/README.md b/workspace/example_designs/example_designs/simple_output_stationary/README.md new file mode 100644 index 00000000..ffe440ed --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/README.md @@ -0,0 +1,13 @@ +Simple Output Stationary Architecture +---------------------------- +This folder contains a simple output stationary architecture. + +Q&As: +---------------------------- +1. How long do the Timeloop simulations take? + + Depending on your workload, the simulation takes various amount of time to finish. Generally, they should + converge within 30 mins. You can manually stop the exploration when you see things are converging by + pressing `ctrl + C`. They sometimes will take much longer to + automaticaly stop as we set the converging cretiria to be pretty high to avoid early-stop with subooptimal mappings. Use you own + judgement. \ No newline at end of file diff --git a/workspace/example_designs/example_designs/simple_output_stationary/arch.yaml b/workspace/example_designs/example_designs/simple_output_stationary/arch.yaml new file mode 100644 index 00000000..e2c54673 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/arch.yaml @@ -0,0 +1,97 @@ +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 16 + + - !Container # OS accelerator + name: simple_ws + attributes: + technology: "45nm" + + - !Component # Shared global buffer + name: shared_glb + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 16 + read_bandwidth: 16 + write_bandwidth: 16 + + - !Container # Array of PEs + name: PE + spatial: {meshX: 16, meshY: 16} + constraints: + spatial: + permutation: [C, M] + split: 1 + factors: [R=1, S=1, P=1, Q=1] + + - !Component # PE Scratchpad + name: pe_spad + class: smartbuffer_SRAM + attributes: + depth: 192 + width: 16 + datawidth: 16 + constraints: + dataspace: {bypass: [Inputs, Weights], keep: [Outputs]} + temporal: {permutation: [R, S, P, Q]} + + - !Parallel # Register for each data type + nodes: + - !Component # Weight register + name: weight_reg + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 # width in bits + datawidth: 16 + constraints: + dataspace: {keep: [Weights]} + temporal: {factors: [R=1, S=1, M=1, C=1]} + + - !Component # Input activation register + name: input_activation_reg + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 # width in bits + datawidth: 16 + constraints: + dataspace: {keep: [Inputs]} + temporal: {factors: [P=1, Q=1, C=1, N=1]} + + - !Component # Output activation register + name: output_activation_reg + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 # width in bits + datawidth: 16 + constraints: + dataspace: {keep: [Outputs]} + temporal: {factors: [P=1, Q=1, M=1, N=1]} + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..4ae25509 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,724 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "SET ME" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 16 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + technology: "45nm" + required_actions: + - update + - read + - write + - leak + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: pe_spad[1..256] + class: smartbuffer_SRAM + attributes: + depth: 192 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - update + - read + - write + - leak + enabled: true + - name: weight_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - update + - read + - write + - leak + enabled: true + - name: input_activation_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - update + - read + - write + - leak + enabled: true + - name: output_activation_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - update + - read + - write + - leak + enabled: true + - name: mac[1..256] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - type: temporal + permutation: N + target: shared_glb + - type: spatial + factors: R=1,S=1,P=1,Q=1 + permutation: NQPSRCM + split: 1 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - bypass: + - Inputs + - Weights + keep: + - Outputs + type: bypass + target: pe_spad + - permutation: NRSPQ + type: temporal + target: pe_spad + - keep: + - Weights + type: bypass + bypass: + - Inputs + - Outputs + target: weight_reg + - factors: R=1,S=1,M=1,C=1 + type: temporal + permutation: NCMSR + target: weight_reg + - keep: + - Inputs + type: bypass + bypass: + - Weights + - Outputs + target: input_activation_reg + - factors: P=1,Q=1,C=1,N=1 + type: temporal + permutation: NCQP + target: input_activation_reg + - keep: + - Outputs + type: bypass + bypass: + - Inputs + - Weights + target: output_activation_reg + - factors: P=1,Q=1,M=1,N=1 + type: temporal + permutation: NMQP + target: output_activation_reg +problem: + version: '0.4' + instance: + C: 3 + H: 224 + Hdilation: 1 + Hpad: 1 + Hstride: 2 + M: 32 + N: 1 + P: 112 + Q: 112 + R: 3 + S: 3 + W: 224 + Wdilation: 1 + Wpad: 1 + Wstride: 2 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: conv2D +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..0c8cd321 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: system_top_level.weight_reg[1..256] + area: 95.68 + - name: system_top_level.input_activation_reg[1..256] + area: 95.68 + - name: system_top_level.output_activation_reg[1..256] + area: 95.68 + - name: system_top_level.shared_glb[1..1] + area: 429745.625 + - name: system_top_level.pe_spad[1..256] + area: 1419.815 + - name: system_top_level.mac[1..256] + area: 417.0 diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..02c511a8 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,39 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.weight_reg[1..256] + area: 95.68 + primitive_estimations: Library + - name: system_top_level.input_activation_reg[1..256] + area: 95.68 + primitive_estimations: Library + - name: system_top_level.output_activation_reg[1..256] + area: 95.68 + primitive_estimations: Library + - name: system_top_level.shared_glb[1..1] + area: 429745.625 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.pe_spad[1..256] + area: 1419.815 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..256] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..8e0283c4 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,127 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: system_top_level.weight_reg[1..256] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.144 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: system_top_level.input_activation_reg[1..256] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.144 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: system_top_level.output_activation_reg[1..256] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.144 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 26.156875 + - name: read + arguments: {} + energy: 32.377775 + - name: leak + arguments: {} + energy: 0.005353 + - name: update + arguments: {} + energy: 26.156875 + - name: system_top_level.pe_spad[1..256] + actions: + - name: write + arguments: {} + energy: 1.582678 + - name: read + arguments: {} + energy: 0.680237 + - name: leak + arguments: {} + energy: 0.001165 + - name: update + arguments: {} + energy: 1.582678 + - name: system_top_level.mac[1..256] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..cbcfbf39 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: update + energy: 512.0 + - name: read + energy: 512.0 + - name: write + energy: 512.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.weight_reg[1..256] + actions: + - name: update + energy: 0.0 + - name: read + energy: 0.144 + - name: write + energy: 0.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: system_top_level.weight_reg[1..256] + estimator: Library + - name: system_top_level.input_activation_reg[1..256] + actions: + - name: update + energy: 0.0 + - name: read + energy: 0.144 + - name: write + energy: 0.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: system_top_level.input_activation_reg[1..256] + estimator: Library + - name: system_top_level.output_activation_reg[1..256] + actions: + - name: update + energy: 0.0 + - name: read + energy: 0.144 + - name: write + energy: 0.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: system_top_level.output_activation_reg[1..256] + estimator: Library + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 26.156875 + - name: read + energy: 32.377775 + - name: leak + energy: 0.005353 + - name: update + energy: 26.156875 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.pe_spad[1..256] + actions: + - name: write + energy: 1.582678 + - name: read + energy: 0.680237 + - name: leak + energy: 0.001165 + - name: update + energy: 1.582678 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..256] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..76926f10 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,557 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Adding required action "update" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "read" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "write" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "leak" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "update" to class aladdin_register +2024-05-29 16:49:56 INFO Adding required action "read" to class aladdin_register +2024-05-29 16:49:56 INFO Adding required action "write" to class aladdin_register +2024-05-29 16:49:56 INFO Adding required action "leak" to class aladdin_register +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 64. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 16384. +2024-05-29 16:49:56 INFO Calculated storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 16. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 192. +2024-05-29 16:49:56 INFO Calculated storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.update. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.144p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 16.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.update. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.144p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 16.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.update. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.144p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 16.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.6065000000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzu3gnd_z +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpyu9086fn +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzu3gnd_z >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpyu9086fn 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 3.2285900000000004e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8hfhgrhq +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7mo7joo5 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8hfhgrhq >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7mo7joo5 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 3.34055e-15 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6ljqtlmq +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbf43hwxh +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6ljqtlmq >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbf43hwxh 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.65095 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.00100625p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.6065000000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnd2534a9 +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp0z5x56nh +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnd2534a9 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp0z5x56nh 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.530178e-12 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr9w203nu +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp059erp0m +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr9w203nu >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp059erp0m 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 6.277368499999999e-13 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpre5yjjty +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsmmv61z6 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpre5yjjty >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsmmv61z6 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.525495e-17 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprmmcau7f +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgx1epiwm +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprmmcau7f >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgx1epiwm 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.604858 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.000575p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.530178e-12 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpv2n3t_v4 +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnrtsxwcg +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpv2n3t_v4 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnrtsxwcg 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 WARNING No action counts are specified as yaml input +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 95.68u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 16.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 95.68u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 16.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 95.68u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 16.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 4.29589e-07 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpqufcqtnm +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdkdu16ip +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpqufcqtnm >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdkdu16ip 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 78.3125u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 1.330315e-09 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5r7_ehh3 +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4rny09qd +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5r7_ehh3 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4rny09qd 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 44.75u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO flattened architecture is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:59 INFO energy reference table is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:59 INFO energy reference table summary is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:59 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:59 INFO area reference table is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:59 INFO area reference table summary is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..4c87ee83 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,219 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + technology: "SET ME" + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 16 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rw_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.pe_spad[1..256] + class: smartbuffer_SRAM + attributes: + depth: 192 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rw_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.weight_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.input_activation_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.output_activation_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.mac[1..256] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..a111aa5f --- /dev/null +++ b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,37 @@ +#error Tenssella does not support bypass. +t6 +C 1 M 2 R 1 S 1 N 1 P 2 Q 8 +MQP +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 1 M 1 R 3 S 1 N 1 P 1 Q 14 +RQ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 16 R 1 S 1 N 1 P 1 Q 1 +M +6 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 3 M 1 R 1 S 3 N 1 P 4 Q 1 +SPC +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 14 Q 1 +P +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +t0 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q diff --git a/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/simple_output_stationary/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/README.md b/workspace/example_designs/example_designs/simple_weight_stationary/README.md new file mode 100644 index 00000000..e0708fe5 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/README.md @@ -0,0 +1,21 @@ +Simple Weight Stationary Architecture +---------------------------- +This folder contains a simple weight stationary architecture. + +Q&As: +---------------------------- +1. How long do the Timeloop simulations take? + + Depending on your workload, the simulation takes various amount of time to finish. Generally, they should + converge within 30 mins. You can manually stop the exploration when you see things are converging by + pressing `ctrl + C`. They sometimes will take much longer to + automaticaly stop as we set the converging cretiria to be pretty high to avoid early-stop with subooptimal mappings. Use you own + judgement. + +2. How to get started on using the architecture skeleton to model architectures with advanced technologies? + + You generally need to modify the definitions of the compound components. If needed, you are also like required to + make updated the architecture description to include the additional setup for your architecture. + + An example design for compute-in-memory architecture using ReRAM can be found + [here](https://github.com/Accelergy-Project/processing-in-memory-design) diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/arch.yaml b/workspace/example_designs/example_designs/simple_weight_stationary/arch.yaml new file mode 100644 index 00000000..78833d07 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/arch.yaml @@ -0,0 +1,97 @@ +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 16 + + - !Container # OS accelerator + name: simple_ws + attributes: + technology: "45nm" + + - !Component # Shared global buffer + name: shared_glb + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 16 + read_bandwidth: 16 + write_bandwidth: 16 + + - !Container # Array of PEs + name: PE + spatial: {meshX: 16, meshY: 16} + constraints: + spatial: + permutation: [C, M] + split: 1 + factors: [R=1, S=1, P=1, Q=1] + + - !Component # PE Scratchpad + name: pe_spad + class: smartbuffer_SRAM + attributes: + depth: 192 + width: 16 + datawidth: 16 + constraints: + dataspace: {bypass: [Inputs, Outputs], keep: [Weights]} + temporal: {permutation: [P, Q, R, S]} + + - !Parallel # Register for each data type + nodes: + - !Component # Weight register + name: weight_reg + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 # width in bits + datawidth: 16 + constraints: + dataspace: {keep: [Weights]} + temporal: {factors: [R=1, S=1, M=1, C=1]} + + - !Component # Input activation register + name: input_activation_reg + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 # width in bits + datawidth: 16 + constraints: + dataspace: {keep: [Inputs]} + temporal: {factors: [P=1, Q=1, C=1, N=1]} + + - !Component # Output activation register + name: output_activation_reg + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 # width in bits + datawidth: 16 + constraints: + dataspace: {keep: [Outputs]} + temporal: {factors: [P=1, Q=1, M=1, N=1]} + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..8684711d --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,724 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "SET ME" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 16 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + technology: "45nm" + required_actions: + - leak + - update + - write + - read + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: pe_spad[1..256] + class: smartbuffer_SRAM + attributes: + depth: 192 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - leak + - update + - write + - read + enabled: true + - name: weight_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - leak + - update + - write + - read + enabled: true + - name: input_activation_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - leak + - update + - write + - read + enabled: true + - name: output_activation_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - leak + - update + - write + - read + enabled: true + - name: mac[1..256] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - type: temporal + permutation: N + target: shared_glb + - type: spatial + factors: R=1,S=1,P=1,Q=1 + permutation: NQPSRCM + split: 1 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - bypass: + - Inputs + - Outputs + keep: + - Weights + type: bypass + target: pe_spad + - permutation: NPQRS + type: temporal + target: pe_spad + - keep: + - Weights + type: bypass + bypass: + - Inputs + - Outputs + target: weight_reg + - factors: R=1,S=1,M=1,C=1 + type: temporal + permutation: NCMSR + target: weight_reg + - keep: + - Inputs + type: bypass + bypass: + - Weights + - Outputs + target: input_activation_reg + - factors: P=1,Q=1,C=1,N=1 + type: temporal + permutation: NCQP + target: input_activation_reg + - keep: + - Outputs + type: bypass + bypass: + - Inputs + - Weights + target: output_activation_reg + - factors: P=1,Q=1,M=1,N=1 + type: temporal + permutation: NMQP + target: output_activation_reg +problem: + version: '0.4' + instance: + C: 3 + H: 224 + Hdilation: 1 + Hpad: 1 + Hstride: 2 + M: 32 + N: 1 + P: 112 + Q: 112 + R: 3 + S: 3 + W: 224 + Wdilation: 1 + Wpad: 1 + Wstride: 2 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: conv2D +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..0c8cd321 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: system_top_level.weight_reg[1..256] + area: 95.68 + - name: system_top_level.input_activation_reg[1..256] + area: 95.68 + - name: system_top_level.output_activation_reg[1..256] + area: 95.68 + - name: system_top_level.shared_glb[1..1] + area: 429745.625 + - name: system_top_level.pe_spad[1..256] + area: 1419.815 + - name: system_top_level.mac[1..256] + area: 417.0 diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..02c511a8 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,39 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.weight_reg[1..256] + area: 95.68 + primitive_estimations: Library + - name: system_top_level.input_activation_reg[1..256] + area: 95.68 + primitive_estimations: Library + - name: system_top_level.output_activation_reg[1..256] + area: 95.68 + primitive_estimations: Library + - name: system_top_level.shared_glb[1..1] + area: 429745.625 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.pe_spad[1..256] + area: 1419.815 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..256] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..a13df243 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,127 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.weight_reg[1..256] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.144 + - name: system_top_level.input_activation_reg[1..256] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.144 + - name: system_top_level.output_activation_reg[1..256] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.144 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 26.156875 + - name: read + arguments: {} + energy: 32.377775 + - name: leak + arguments: {} + energy: 0.005353 + - name: update + arguments: {} + energy: 26.156875 + - name: system_top_level.pe_spad[1..256] + actions: + - name: write + arguments: {} + energy: 1.582678 + - name: read + arguments: {} + energy: 0.680237 + - name: leak + arguments: {} + energy: 0.001165 + - name: update + arguments: {} + energy: 1.582678 + - name: system_top_level.mac[1..256] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..22e1ac08 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + energy: 0.0 + - name: update + energy: 512.0 + - name: write + energy: 512.0 + - name: read + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.weight_reg[1..256] + actions: + - name: leak + energy: 0.0 + - name: update + energy: 0.0 + - name: write + energy: 0.0 + - name: read + energy: 0.144 + primitive_estimation(s): + - name: system_top_level.weight_reg[1..256] + estimator: Library + - name: system_top_level.input_activation_reg[1..256] + actions: + - name: leak + energy: 0.0 + - name: update + energy: 0.0 + - name: write + energy: 0.0 + - name: read + energy: 0.144 + primitive_estimation(s): + - name: system_top_level.input_activation_reg[1..256] + estimator: Library + - name: system_top_level.output_activation_reg[1..256] + actions: + - name: leak + energy: 0.0 + - name: update + energy: 0.0 + - name: write + energy: 0.0 + - name: read + energy: 0.144 + primitive_estimation(s): + - name: system_top_level.output_activation_reg[1..256] + estimator: Library + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 26.156875 + - name: read + energy: 32.377775 + - name: leak + energy: 0.005353 + - name: update + energy: 26.156875 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.pe_spad[1..256] + actions: + - name: write + energy: 1.582678 + - name: read + energy: 0.680237 + - name: leak + energy: 0.001165 + - name: update + energy: 1.582678 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..256] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..08087e5c --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,557 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Adding required action "leak" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "update" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "write" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "read" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "leak" to class aladdin_register +2024-05-29 16:49:56 INFO Adding required action "update" to class aladdin_register +2024-05-29 16:49:56 INFO Adding required action "write" to class aladdin_register +2024-05-29 16:49:56 INFO Adding required action "read" to class aladdin_register +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 64. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 16384. +2024-05-29 16:49:56 INFO Calculated storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 16. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 192. +2024-05-29 16:49:56 INFO Calculated storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 16.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.update. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.144p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 16.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.update. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.144p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 16.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.update. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO Library estimated 0.144p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 16.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 16.0x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.6065000000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgy7m3lr5 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphj0z12x9 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgy7m3lr5 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphj0z12x9 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 3.2285900000000004e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_v742xbo +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpx_786mjg +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_v742xbo >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpx_786mjg 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 3.34055e-15 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpit1qoslu +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo1fb3d57 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpit1qoslu >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo1fb3d57 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.65095 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.00100625p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.6065000000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr_bsm6d_ +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpz0zbhyv4 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr_bsm6d_ >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpz0zbhyv4 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.530178e-12 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpc2sqy1hl +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7ilw23tu +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpc2sqy1hl >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7ilw23tu 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 6.277368499999999e-13 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9u0dch98 +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8dqnvbwe +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9u0dch98 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8dqnvbwe 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.525495e-17 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpntw19wao +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpis6sn0w7 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpntw19wao >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpis6sn0w7 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.604858 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.000575p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.530178e-12 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjlikjc4w +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpab736wnd +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjlikjc4w >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpab736wnd 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 WARNING No action counts are specified as yaml input +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=SET ME, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 95.68u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 16.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 95.68u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 16.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(depth=1, width=16, datawidth=16, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=16, meshY=16, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 95.68u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling width from 1 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 16.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 1 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.width from 1.0 to 16.0: 16.0x area +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 16.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for SRAM(width=64, depth=16384, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 4.29589e-07 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpoye7i1u8 +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpz85kwly0 +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpoye7i1u8 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpz85kwly0 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 78.3125u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for SRAM(width=16, depth=192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 1.330315e-09 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=768 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm2wuiyn7 +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjhwdkvzk +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm2wuiyn7 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjhwdkvzk 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 2.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 26.452489675262623 bits/second +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 44.75u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO flattened architecture is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:59 INFO energy reference table is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:59 INFO energy reference table summary is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:59 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:59 INFO area reference table is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:59 INFO area reference table summary is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..8e2c9f43 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,219 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + technology: "SET ME" + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 16 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rw_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.pe_spad[1..256] + class: smartbuffer_SRAM + attributes: + depth: 192 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rw_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.weight_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.input_activation_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.output_activation_reg[1..256] + class: storage + subclass: aladdin_register + attributes: + depth: 1 + width: 16 + datawidth: 16 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.mac[1..256] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 16 + meshY: 16 + power_gated_at: null + technology: "45nm" + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..f993a3e7 --- /dev/null +++ b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,36 @@ +t6 +C 1 M 1 R 1 S 1 N 1 P 1 Q 14 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 1 M 8 R 1 S 3 N 1 P 2 Q 1 +MPS +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 3 M 4 R 1 S 1 N 1 P 1 Q 1 +CM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 3 S 1 N 1 P 2 Q 2 +PQR +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 28 Q 4 +QP +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +t0 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q diff --git a/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/simple_weight_stationary/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/README.md b/workspace/example_designs/example_designs/sparse_tensor_core_like/README.md new file mode 100644 index 00000000..d2d9fac8 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/README.md @@ -0,0 +1,29 @@ +Sparse Tensor Core Like Architecture +---------------------------- +This folder contains an architecture based on the publicly available information on the sparse tensor core design that supports 2:4 structured sparsity. + + +Q&As +---------------------------- +#### 1. Is this design the exact sparse tensor core design in NVIDIA GPU? + + **No, this design is just an acclerator emulation of the sparse tensor core based on the publicly available information.** Many parameters are adjusted, e.g., the available bandwidth, to model a standalone accelerator design. + +#### 2. Does the provide constraints work for conv kernels? + + No, the sparse tensor core design treats all problems as matrix multiplications, so the constraints are setup based on the **matrix multiplication** problem shape. **Please use example layers under `../layer_shapes/MM` to run the design**. `A` tensor is our 2:4 structured sparse weight tensor in all of the problems specs. We also provide an example problem in this directory: `prob/prob.yaml`. + +#### 3. What does `skipping_spatial` in `sparse-opt/sparse-opt.yaml` mean? + + `skipping_spatial` refers to skipping on spatial instances, i.e., if a specific hardware instance is assigned to tiles with all zeros, use it for other tiles. +By doing that, we allow more processing parallelism. + +#### 4. Where does the 2:4 structure along the channels come into the picture? + + Please note that our mapspace search contraints mandates the that innermost loop is on the channel dimension, i.e., `K`. +As a result, the 50% fixed structured sparsity is always assigned to the channel dimension. If you would like to change the setup, do make sure that +the innermost loop bound is a mutiple of 4 in your problem or mapspace constraint. + +#### 5. More studies? + + Please refer to the case study in our [paper](https://arxiv.org/pdf/2205.05826.pdf) for a more invovled case study that looks at variations of sparse tensor core. diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/arch.yaml b/workspace/example_designs/example_designs/sparse_tensor_core_like/arch.yaml new file mode 100644 index 00000000..936171c8 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/arch.yaml @@ -0,0 +1,90 @@ +architecture: + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + attributes: + technology: "45nm" + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + metadata_storage_width: 64 + datawidth: 8 + cluster_size: 1 + read_bandwidth: 32 + write_bandwidth: 32 + constraints: + temporal: {permutation: [K], factors: K=1} + + - !Component # 256KB data, 32KB metadata + name: SMEM + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 8192 + width: 256 + n_banks: 2 + n_rdwr_ports: 2 + metadata_storage_depth: 8192 + metadata_storage_width: 64 + datawidth: 8 + cluster_size: 1 + read_bandwidth: 42 + write_bandwidth: 42 + constraints: + temporal: {permutation: [K], factors: K=1 M<=8 N<=8} + dataspace: {keep: [A, B], bypass: [Z]} + + - !Container # Subpartition + name: Subpartition + spatial: {meshY: 4} + constraints: + spatial: {permutation: [N, K, M], factors: K=1 N=1 M=4, split: 0} + + - !Component # Register file + name: RF # Register file + class: storage + subclass: smartbuffer_RF + attributes: + # to accommodate for a dense Z with M=16 and N=128 + depth: 2048 + width: 8 + n_banks: 16 + n_rdwr_ports: 2 + datawidth: 8 + cluster_size: 1 + constraints: + temporal: {permutation: [N, K, M], factors: M=1 N=1} + dataspace: {keep: [Z], bypass: [A, B]} + + - !Container # PE + name: PE + spatial: {meshX: 16, meshY: 16} + constraints: + spatial: {permutation: [K, M, N], factors: K=16 M=16 N=1, split: 1} + + - !Component # Local register file + name: LRF + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 1 + width: 8 + metadata_storage_depth: 1 + metadata_storage_width: 8 + datawidth: 8 + cluster_size: 1 + constraints: + temporal: {permutation: [N, K, M], factors: K=1 M=1 N<=128} + dataspace: {keep: [A], bypass: [B, Z]} + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/problem.yaml b/workspace/example_designs/example_designs/sparse_tensor_core_like/problem.yaml new file mode 100644 index 00000000..89b37a53 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/problem.yaml @@ -0,0 +1,32 @@ +problem: + version: 0.4 + instance: + K: 1 + M: 64 + N: 1 + densities: + A: + density: 0.5 + distribution: fixed_structured + shape: + name: gemm_ABZ + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + - name: B + projection: + - - - N + - - - K + - name: Z + projection: + - - - M + - - - N + read_write: true + + diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..75b31258 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,678 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + metadata_storage_width: 64 + datawidth: 8 + cluster_size: 1 + read_bandwidth: 32 + write_bandwidth: 32 + has_power_gating: false + n_banks: 2 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: SMEM[1..1] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 8192 + width: 256 + n_banks: 2 + n_rdwr_ports: 2 + metadata_storage_depth: 8192 + metadata_storage_width: 64 + datawidth: 8 + cluster_size: 1 + read_bandwidth: 42 + write_bandwidth: 42 + has_power_gating: false + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: inter_Subpartition_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: RF[1..4] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 2048 + width: 8 + n_banks: 16 + n_rdwr_ports: 2 + datawidth: 8 + cluster_size: 1 + has_power_gating: false + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 4 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: inter_PE_spatial[1..4] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 4 + power_gated_at: null + enabled: true + - name: LRF[1..1024] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 1 + width: 8 + metadata_storage_depth: 1 + metadata_storage_width: 8 + datawidth: 8 + cluster_size: 1 + has_power_gating: false + n_banks: 2 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 64 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: mac[1..1024] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 16 + meshY: 64 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - permutation: NK + factors: K=1 + type: temporal + target: DRAM + - permutation: NK + factors: K=1,M<=8,N<=8 + type: temporal + target: SMEM + - keep: + - A + - B + bypass: + - Z + type: bypass + target: SMEM + - type: spatial + factors: K=1,N=1,M=4 + permutation: NKM + split: 0 + target: inter_Subpartition_spatial + - factors: M=1,N=1,K=1 + permutation: MNK + type: temporal + target: inter_Subpartition_spatial + - bypass: + - A + - B + - Z + type: bypass + target: inter_Subpartition_spatial + - permutation: NKM + factors: M=1,N=1 + type: temporal + target: RF + - keep: + - Z + bypass: + - A + - B + type: bypass + target: RF + - type: spatial + factors: K=16,M=16,N=1 + permutation: KMN + split: 1 + target: inter_PE_spatial + - factors: M=1,N=1,K=1 + permutation: MNK + type: temporal + target: inter_PE_spatial + - bypass: + - A + - B + - Z + type: bypass + target: inter_PE_spatial + - permutation: NKM + factors: K=1,M=1,N<=128 + type: temporal + target: LRF + - keep: + - A + bypass: + - B + - Z + type: bypass + target: LRF +problem: + version: '0.4' + instance: + K: 1 + M: 64 + N: 1 + densities: + A: + density: 0.5 + distribution: fixed_structured + band_width: 0 + workload_tensor_size: 0 + shape: + name: gemm_ABZ + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + read_write: false + - name: B + projection: + - - - N + - - - K + read_write: false + - name: Z + projection: + - - - M + - - - N + read_write: true + coefficients: [] +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..ba0d61d9 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,17 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_Subpartition_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..4] + area: 1.0 + - name: system_top_level.SMEM[1..1] + area: 1069101.875 + - name: system_top_level.RF[1..4] + area: 33612.845625 + - name: system_top_level.LRF[1..1024] + area: 30.62 + - name: system_top_level.mac[1..1024] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..3a870350 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,54 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_Subpartition_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.inter_PE_spatial[1..4] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.SMEM[1..1] + area: 1069101.875 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.RF[1..4] + area: 33612.845625 + primitive_estimations: + - name: storage.storage[1..65536] + estimator: Library + - name: storage.comparator[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.LRF[1..1024] + area: 30.62 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..1024] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..60065647 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,105 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.SMEM[1..1] + actions: + - name: read + arguments: {} + energy: 124.695312 + - name: write + arguments: {} + energy: 118.118313 + - name: update + arguments: {} + energy: 118.118313 + - name: metadata_read + arguments: {} + energy: 25.954813 + - name: metadata_write + arguments: {} + energy: 19.733913 + - name: metadata_update + arguments: {} + energy: 19.733913 + - name: leak + arguments: {} + energy: 0.01164 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.RF[1..4] + actions: + - name: write + arguments: {} + energy: 15.160827 + - name: read + arguments: {} + energy: 15.232827 + - name: leak + arguments: {} + energy: 0.014432 + - name: update + arguments: {} + energy: 15.160827 + - name: system_top_level.LRF[1..1024] + actions: + - name: read + arguments: {} + energy: 0.019007 + - name: write + arguments: {} + energy: 0.027041 + - name: update + arguments: {} + energy: 0.027041 + - name: metadata_read + arguments: {} + energy: 0.019007 + - name: metadata_write + arguments: {} + energy: 0.027041 + - name: metadata_update + arguments: {} + energy: 0.027041 + - name: leak + arguments: {} + energy: 0.000288 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.mac[1..1024] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..5d2a8012 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,132 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: update + energy: 512.0 + - name: leak + energy: 0.0 + - name: read + energy: 512.0 + - name: write + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.SMEM[1..1] + actions: + - name: read + energy: 124.695312 + - name: write + energy: 118.118313 + - name: update + energy: 118.118313 + - name: metadata_read + energy: 25.954813 + - name: metadata_write + energy: 19.733913 + - name: metadata_update + energy: 19.733913 + - name: leak + energy: 0.01164 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.RF[1..4] + actions: + - name: write + energy: 15.160827 + - name: read + energy: 15.232827 + - name: leak + energy: 0.014432 + - name: update + energy: 15.160827 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..2048] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..65536] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: system_top_level.LRF[1..1024] + actions: + - name: read + energy: 0.019007 + - name: write + energy: 0.027041 + - name: update + energy: 0.027041 + - name: metadata_read + energy: 0.019007 + - name: metadata_write + energy: 0.027041 + - name: metadata_update + energy: 0.027041 + - name: leak + energy: 0.000288 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.mac[1..1024] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..a1ef6f2d --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,744 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Adding required action "update" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "leak" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "read" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "write" to class DRAM +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 2048. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.25. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 2048. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 256. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 8192. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 2. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "width" = 256. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "depth" = 8192. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 13. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 13. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 13. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 8192. +2024-05-29 16:49:56 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 2. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "width" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "depth" = 8192. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 13. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 13. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 13. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated system_top_level.SMEM[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.SMEM[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "memory_depth" = 2048. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 2. +2024-05-29 16:49:56 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.area_scale as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 65536. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 2048. +2024-05-29 16:49:56 INFO Calculated storage.storage[1..65536]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.comparator[1..2048]."n_bits" as "max(1, ceil(log2(depth)))" = 11. +2024-05-29 16:49:56 INFO Calculated storage.comparator[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 11. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 11. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 11. +2024-05-29 16:49:56 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 2048. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 2048. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 65536. +2024-05-29 16:49:56 INFO Calculated system_top_level.RF[1..4].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.RF[1..4].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 2048. +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 1. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "depth" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 8. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "depth" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated system_top_level.LRF[1..1024].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.LRF[1..1024].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, metadata_storage_width=64, datawidth=8, cluster_size=1, read_bandwidth=32, write_bandwidth=32, has_power_gating=False, n_banks=2, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (metadata_storage_width, datawidth, cluster_size, read_bandwidth, write_bandwidth, has_power_gating, n_banks, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, metadata_storage_width=64, datawidth=8, cluster_size=1, read_bandwidth=32, write_bandwidth=32, has_power_gating=False, n_banks=2, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (metadata_storage_width, datawidth, cluster_size, read_bandwidth, write_bandwidth, has_power_gating, n_banks, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, metadata_storage_width=64, datawidth=8, cluster_size=1, read_bandwidth=32, write_bandwidth=32, has_power_gating=False, n_banks=2, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (metadata_storage_width, datawidth, cluster_size, read_bandwidth, write_bandwidth, has_power_gating, n_banks, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, metadata_storage_width=64, datawidth=8, cluster_size=1, read_bandwidth=32, write_bandwidth=32, has_power_gating=False, n_banks=2, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:56 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (metadata_storage_width, datawidth, cluster_size, read_bandwidth, write_bandwidth, has_power_gating, n_banks, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=256, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 1.2461e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=262144 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmps1ze8zi7 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9rqwhifh +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmps1ze8zi7 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9rqwhifh 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 74.20590980503556 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=256, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 1.18033e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=262144 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpooq0tnrf +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxjnfglrs +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpooq0tnrf >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxjnfglrs 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 74.20590980503556 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=256, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.18033e-10 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=262144 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk9pei7t8 +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxalqjppy +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk9pei7t8 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxalqjppy 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 74.20590980503556 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.5869500000000002e-11 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpkodquj8e +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp0_pyvbj6 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpkodquj8e >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp0_pyvbj6 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 1.96486e-11 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4g_mk85r +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplpnyl7zx +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4g_mk85r >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplpnyl7zx 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 1.96486e-11 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5oqqs28c +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmps_at6l4h +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5oqqs28c >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmps_at6l4h 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 0.0853125p with accuracy 70%. +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO ENERGY ESTIMATION for SRAM(width=256, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 6.23184e-15 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=262144 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpungfqvul +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpd_xbpnhw +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpungfqvul >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpd_xbpnhw 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 74.20590980503556 bits/second +2024-05-29 16:49:59 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 3.44986 +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 0.000934375p with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO ENERGY ESTIMATION for SRAM(width=64, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 1.67027e-15 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsql4r6uo +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvftxbqkq +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsql4r6uo >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvftxbqkq 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:50:00 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.65095 +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.000934375p with accuracy 70%. Messages: +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:50:00 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:50:00 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0721875p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:50:00 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:50:00 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0721875p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:50:00 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:50:00 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.000790625p with accuracy 70%. Messages: +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:50:00 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:50:00 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0721875p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 1.2444036715928991e-14 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgo_4fo26 +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3mqf2n_t +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgo_4fo26 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3mqf2n_t 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 2.0478140963632353e-14 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8prg4ait +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpn9xnvudq +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8prg4ait >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpn9xnvudq 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 2.0478140963632353e-14 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp80n65o0a +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpj1spjwq7 +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp80n65o0a >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpj1spjwq7 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 1.2444036715928991e-14 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpa0trxn4a +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbkw7tv6m +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpa0trxn4a >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbkw7tv6m 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 2.0478140963632353e-14 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpcypwp8er +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpkjr39tc2 +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpcypwp8er >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpkjr39tc2 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 2.0478140963632353e-14 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3tivs70r +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm378fs1f +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3tivs70r >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm378fs1f 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 4.5543359375000005e-20 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp94j0jxu0 +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmzi_odg4 +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp94j0jxu0 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmzi_odg4 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:00 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.489138 +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 7.1875e-05p with accuracy 70%. Messages: +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO CactiSRAM estimated 4.5543359375000005e-20 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:00 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:50:00 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:00 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxh25f4dg +2024-05-29 16:50:00 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp32xefthx +2024-05-29 16:50:00 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:00 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxh25f4dg >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp32xefthx 2>&1 +2024-05-29 16:50:00 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:00 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:00 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.489138 +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 7.1875e-05p with accuracy 70%. Messages: +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling width from 32 to 16 +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:50:00 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:50:00 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:50:00 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling width from 32 to 16 +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:50:00 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:50:00 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:00 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:50:00 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:50:00 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:50:00 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:00 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:00 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:50:00 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 WARNING No action counts are specified as yaml input +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, metadata_storage_width=64, datawidth=8, cluster_size=1, read_bandwidth=32, write_bandwidth=32, has_power_gating=False, n_banks=2, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:00 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:50:00 INFO | Unused arguments (metadata_storage_width, datawidth, cluster_size, read_bandwidth, write_bandwidth, has_power_gating, n_banks, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:00 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=4, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:00 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:50:00 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:00 INFO +2024-05-29 16:50:00 INFO AREA ESTIMATION for SRAM(width=256, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:01 INFO CactiSRAM estimated 8.59765e-07 with accuracy 80%. Messages: +2024-05-29 16:50:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:01 INFO | Calling CACTI with cache_size=262144 n_rw_ports=1 block_size=32 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpn0yt0tfs +2024-05-29 16:50:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2bv72sc9 +2024-05-29 16:50:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpn0yt0tfs >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2bv72sc9 2>&1 +2024-05-29 16:50:01 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 16:50:01 INFO | Cache bandwidth: 74.20590980503556 bits/second +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Aladdin_table estimated 72.71875u^2 with accuracy 70%. Messages: +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for SRAM(width=64, depth=8192, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:01 INFO CactiSRAM estimated 2.09046e-07 with accuracy 80%. Messages: +2024-05-29 16:50:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:01 INFO | Calling CACTI with cache_size=65536 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb17oqw8w +2024-05-29 16:50:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphss5jmt7 +2024-05-29 16:50:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb17oqw8w >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphss5jmt7 2>&1 +2024-05-29 16:50:01 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:50:01 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for intadder(n_bits=13, precision=13, width=13, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Aladdin_table estimated 72.71875u^2 with accuracy 70%. Messages: +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:01 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:50:01 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:01 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:50:01 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for aladdin_comparator(n_bits=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:50:01 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:01 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:50:01 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for intadder(n_bits=11, precision=11, width=11, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Aladdin_table estimated 61.53125u^2 with accuracy 70%. Messages: +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:01 INFO CactiSRAM estimated 4.1225e-12 with accuracy 80%. Messages: +2024-05-29 16:50:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:01 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8a5mnr75 +2024-05-29 16:50:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb0mo6exz +2024-05-29 16:50:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8a5mnr75 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb0mo6exz 2>&1 +2024-05-29 16:50:01 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:01 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Aladdin_table estimated 5.59375u^2 with accuracy 70%. Messages: +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for SRAM(width=8, depth=1, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:01 INFO CactiSRAM estimated 4.1225e-12 with accuracy 80%. Messages: +2024-05-29 16:50:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:50:01 INFO | Calling CACTI with cache_size=256 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:50:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpef7f8rka +2024-05-29 16:50:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpahq4mej3 +2024-05-29 16:50:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:50:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpef7f8rka >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpahq4mej3 2>&1 +2024-05-29 16:50:01 INFO | Cache bandwidth: 1.0 bits/cycle +2024-05-29 16:50:01 INFO | Cache bandwidth: 16.35530259354211 bits/second +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Aladdin_table estimated 5.59375u^2 with accuracy 70%. Messages: +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:50:01 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:50:01 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:50:01 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | Scaling width from 32 to 16 +2024-05-29 16:50:01 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:01 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:50:01 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:50:01 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO +2024-05-29 16:50:01 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:50:01 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:50:01 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:50:01 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:50:01 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:50:01 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:50:01 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:50:01 INFO | Multiplying by n_instances 1 +2024-05-29 16:50:01 INFO flattened architecture is saved to: +2024-05-29 16:50:01 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:50:01 INFO energy reference table is saved to: +2024-05-29 16:50:01 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:50:01 INFO energy reference table summary is saved to: +2024-05-29 16:50:01 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:50:01 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:50:01 INFO area reference table is saved to: +2024-05-29 16:50:01 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:50:01 INFO area reference table summary is saved to: +2024-05-29 16:50:01 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..b3281c49 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,204 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + metadata_storage_width: 64 + datawidth: 8 + cluster_size: 1 + read_bandwidth: 32 + write_bandwidth: 32 + has_power_gating: false + n_banks: 2 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: system_top_level.SMEM[1..1] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 8192 + width: 256 + n_banks: 2 + n_rdwr_ports: 2 + metadata_storage_depth: 8192 + metadata_storage_width: 64 + datawidth: 8 + cluster_size: 1 + read_bandwidth: 42 + write_bandwidth: 42 + has_power_gating: false + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: system_top_level.inter_Subpartition_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.RF[1..4] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 2048 + width: 8 + n_banks: 16 + n_rdwr_ports: 2 + datawidth: 8 + cluster_size: 1 + has_power_gating: false + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 4 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 2048 + widthscale: 0.25 + depthscale: 1.0 + real_depth: 2048 + area_scale: 0.25 + dynamic_energy_scale: 0.25 + static_energy_scale: 0.25 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: system_top_level.inter_PE_spatial[1..4] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 4 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.LRF[1..1024] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 1 + width: 8 + metadata_storage_depth: 1 + metadata_storage_width: 8 + datawidth: 8 + cluster_size: 1 + has_power_gating: false + n_banks: 2 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 64 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + metadata_counter_width: 0 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: system_top_level.mac[1..1024] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 16 + meshY: 64 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..ec3a8d54 --- /dev/null +++ b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,37 @@ +#error Tenssella does not support bypass. +t5 +M 1 N 1 K 1 +K +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +M 1 N 1 K 1 +K +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +M 1 N 1 K 1 +K +s3 +M 4 N 1 K 1 +M +2 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +M 1 N 1 K 1 +K +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +M 1 N 1 K 1 +K +s1 +M 16 N 1 K 1 +M +2 +t0 +M 1 N 1 K 1 +K diff --git a/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparse_tensor_core_like/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/arch.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/arch.yaml new file mode 100644 index 00000000..e63fbc3d --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/arch.yaml @@ -0,0 +1,25 @@ +architecture: + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: PE + attributes: # global attributes shared by entire subtree + technology: "45nm" + + - !Component + name: Buffer + class: storage # class is either "storage" or "compute" + subclass: regfile # detailed hardware implementation class + attributes: # attributes associated with the component + depth: 64 # number of entries in storage + width: 8 # number of bits for each entry + datawidth: 8 # number of bits per data + read_bandwidth: 3 + write_bandwidth: 1 + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/mapping.yaml new file mode 100644 index 00000000..9cf41254 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/mapping.yaml @@ -0,0 +1,5 @@ +mapping: + - target: Buffer # storage level in architecture + type: temporal # temporal tiling + factors: K=16 M=1 # loop bounds + permutation: KM # loop order: inner to outer \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/problem.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/problem.yaml new file mode 100644 index 00000000..6603416c --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/problem.yaml @@ -0,0 +1,20 @@ +problem: # problem specification (Einsum based) + version: 0.4 + shape: + name: "dot-product-ABZ" + dimensions: [ K, M ] + data_spaces: # points to a list of "tensors" in this problem + - name: A # name of a tensor + projection: # which dimensions index nto the specific tensor + - [ [ K ] ] + - name: B + projection: + - [ [ K ] ] + - name: Z + projection: + - [ [ M ] ] + read_write: True # result tensor + + instance: # exact instance of the problem + M: 1 # Z only has one element + K: 16 \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..11d2353f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,489 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: PE_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: Buffer[1..1] + class: storage + subclass: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + read_bandwidth: 3 + write_bandwidth: 1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - write + - leak + - read + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: Buffer + type: temporal + factors: K=16,M=1 + permutation: KM +problem: + version: '0.4' + shape: + name: "dot-product-ABZ" + dimensions: + - K + - M + data_spaces: + - name: A + projection: + - - - K + read_write: false + - name: B + projection: + - - - K + read_write: false + - name: Z + projection: + - - - M + read_write: true + coefficients: [] + instance: + M: 1 + K: 16 + densities: {} +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..7e4ba1cd --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,7 @@ +ART: + version: '0.4' + tables: + - name: PE_top_level.Buffer[1..1] + area: 7605.76 + - name: PE_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..e091e17a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,17 @@ +ART_summary: + version: '0.4' + table_summary: + - name: PE_top_level.Buffer[1..1] + area: 7605.76 + primitive_estimations: + - name: storage[1..512] + estimator: Library + - name: comparator[1..64] + estimator: Library + - name: PE_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..4137bd30 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,25 @@ +ERT: + version: '0.4' + tables: + - name: PE_top_level.Buffer[1..1] + actions: + - name: write + arguments: {} + energy: 1.88608 + - name: read + arguments: {} + energy: 1.95808 + - name: leak + arguments: {} + energy: 0.001606 + - name: update + arguments: {} + energy: 1.88608 + - name: PE_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..7cfe4e56 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,31 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: PE_top_level.Buffer[1..1] + actions: + - name: write + energy: 1.88608 + - name: read + energy: 1.95808 + - name: leak + energy: 0.001606 + - name: update + energy: 1.88608 + primitive_estimation(s): + - name: storage[1..8] + estimator: Library + - name: comparator[1..64] + estimator: Library + - name: storage[1..512] + estimator: Library + - name: PE_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..18dab251 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,272 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 512. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage[1..512]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 8. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 8. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 512. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 8. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 WARNING No action counts are specified as yaml input +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO flattened architecture is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:56 INFO energy reference table is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:56 INFO energy reference table summary is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:56 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:56 INFO area reference table is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:56 INFO area reference table summary is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..31546a71 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,52 @@ +architecture: + version: '0.4' + local: + - name: PE_top_level.Buffer[1..1] + class: storage + subclass: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + read_bandwidth: 3 + write_bandwidth: 1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - write + - leak + - read + enabled: true + - name: PE_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..5fc81396 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,3 @@ +t0 +K 16 M 1 +K diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/arch.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/arch.yaml new file mode 100644 index 00000000..9da828ef --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/arch.yaml @@ -0,0 +1,34 @@ +architecture: + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: PE + attributes: # global attributes shared by entire subtree + technology: "45nm" + + - !Component + name: Buffer + class: storage # class is either "storage" or "compute" + subclass: regfile # detailed hardware implementation class + attributes: # attributes associated with the component + depth: 64 # number of entries in storage + width: 8 # number of bits for each entry + datawidth: 8 # number of bits per data + read_bandwidth: 3 + write_bandwidth: 1 + sparse_optimizations: + action_optimization: # keyword for *explicit* storage level optimization + - type: gating # optimization type: either "gating" or "skipping" + options: + - target: B # the tensor to perform gating on + condition_on: [ A ] # the tensor that the optimization is based on + - type: gating + options: + - target: Z + condition_on: [ A ] + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/mapping.yaml new file mode 100644 index 00000000..9cf41254 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/mapping.yaml @@ -0,0 +1,5 @@ +mapping: + - target: Buffer # storage level in architecture + type: temporal # temporal tiling + factors: K=16 M=1 # loop bounds + permutation: KM # loop order: inner to outer \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/problem.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/problem.yaml new file mode 100644 index 00000000..e89c2543 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/problem.yaml @@ -0,0 +1,25 @@ +problem: + version: 0.4 + shape: + name: DotProduct + dimensions: [ K, M ] + data_spaces: + - name: A + projection: + - [ [K] ] + - name: B + projection: + - [ [K] ] + - name: Z + projection: + - [ [M] ] + read_write: True + + instance: + M: 1 + K: 16 + + densities: + A: + distribution: fixed_structured # sparsity distribution name + density: 0.25 \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..9d0a2c5c --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,508 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: PE_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: Buffer[1..1] + class: storage + subclass: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + read_bandwidth: 3 + write_bandwidth: 1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - leak + - read + - update + - write + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: Buffer + type: temporal + factors: K=16,M=1 + permutation: KM +problem: + version: '0.4' + shape: + name: DotProduct + dimensions: + - K + - M + data_spaces: + - name: A + projection: + - - - K + read_write: false + - name: B + projection: + - - - K + read_write: false + - name: Z + projection: + - - - M + read_write: true + coefficients: [] + instance: + M: 1 + K: 16 + densities: + A: + distribution: fixed_structured + density: 0.25 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - action_optimization: + - type: gating + options: + - target: B + condition_on: + - A + - type: gating + options: + - target: Z + condition_on: + - A + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..7e4ba1cd --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,7 @@ +ART: + version: '0.4' + tables: + - name: PE_top_level.Buffer[1..1] + area: 7605.76 + - name: PE_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..e091e17a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,17 @@ +ART_summary: + version: '0.4' + table_summary: + - name: PE_top_level.Buffer[1..1] + area: 7605.76 + primitive_estimations: + - name: storage[1..512] + estimator: Library + - name: comparator[1..64] + estimator: Library + - name: PE_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..4137bd30 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,25 @@ +ERT: + version: '0.4' + tables: + - name: PE_top_level.Buffer[1..1] + actions: + - name: write + arguments: {} + energy: 1.88608 + - name: read + arguments: {} + energy: 1.95808 + - name: leak + arguments: {} + energy: 0.001606 + - name: update + arguments: {} + energy: 1.88608 + - name: PE_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..7cfe4e56 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,31 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: PE_top_level.Buffer[1..1] + actions: + - name: write + energy: 1.88608 + - name: read + energy: 1.95808 + - name: leak + energy: 0.001606 + - name: update + energy: 1.88608 + primitive_estimation(s): + - name: storage[1..8] + estimator: Library + - name: comparator[1..64] + estimator: Library + - name: storage[1..512] + estimator: Library + - name: PE_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..bfb55e4c --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,272 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 512. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage[1..512]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 8. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 8. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 512. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 8. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 WARNING No action counts are specified as yaml input +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO flattened architecture is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:56 INFO energy reference table is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:56 INFO energy reference table summary is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:56 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:56 INFO area reference table is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:56 INFO area reference table summary is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..b0c64e1f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,52 @@ +architecture: + version: '0.4' + local: + - name: PE_top_level.Buffer[1..1] + class: storage + subclass: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + read_bandwidth: 3 + write_bandwidth: 1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - read + - update + - write + enabled: true + - name: PE_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..5fc81396 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,3 @@ +t0 +K 16 M 1 +K diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/arch.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/arch.yaml new file mode 100644 index 00000000..713084c1 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/arch.yaml @@ -0,0 +1,46 @@ + +architecture: + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: PE + attributes: # global attributes shared by entire subtree + technology: "45nm" + + - !Component + name: Buffer + class: storage # class is either "storage" or "compute" + subclass: regfile_metadata # compound component with separate data and metadata storages + # definition found in ../components/refile_metadata.yaml + attributes: + depth: 64 # depth of the data storage only + width: 8 # width of the data storage only + datawidth: 8 # actual data's datawidth + metadata_storage_depth: 32 # depth of the metadata storage only + metadata_storage_width: 4 # width of the metadata storage only + metadata_datawidth: 4 # metadata's datawidth (can be different from datawidth) + read_bandwidth: 4 + write_bandwidth: 3 + sparse_optimizations: + representation_format: # key word for "format" optimization + # causes the empty element accesses to be eliminated + data_spaces: + - name: A # tensor name + ranks: # points to a list of ranks in fibertree representation + - format: CP # coordinate payload representation format + # options: CP, UB, RLE, UOP (i.e., CSR upper rank) + action_optimization: # keyword for *explicit* storage level optimization + - type: skipping # optimization type: either "gating" or "skipping" + options: + - target: B # the tensor to perform optimization on + condition_on: [ A ] # the tensor that the optimization is based on + - type: skipping + options: + - target: Z + condition_on: [ A ] + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/mapping.yaml new file mode 100644 index 00000000..9cf41254 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/mapping.yaml @@ -0,0 +1,5 @@ +mapping: + - target: Buffer # storage level in architecture + type: temporal # temporal tiling + factors: K=16 M=1 # loop bounds + permutation: KM # loop order: inner to outer \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/problem.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/problem.yaml new file mode 100644 index 00000000..e89c2543 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/problem.yaml @@ -0,0 +1,25 @@ +problem: + version: 0.4 + shape: + name: DotProduct + dimensions: [ K, M ] + data_spaces: + - name: A + projection: + - [ [K] ] + - name: B + projection: + - [ [K] ] + - name: Z + projection: + - [ [M] ] + read_write: True + + instance: + M: 1 + K: 16 + + densities: + A: + distribution: fixed_structured # sparsity distribution name + density: 0.25 \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..0c4d3302 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,516 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: PE_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 32 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 4 + write_bandwidth: 3 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - leak + - read + - write + - update + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: Buffer + type: temporal + factors: K=16,M=1 + permutation: KM +problem: + version: '0.4' + shape: + name: DotProduct + dimensions: + - K + - M + data_spaces: + - name: A + projection: + - - - K + read_write: false + - name: B + projection: + - - - K + read_write: false + - name: Z + projection: + - - - M + read_write: true + coefficients: [] + instance: + M: 1 + K: 16 + densities: + A: + distribution: fixed_structured + density: 0.25 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: A + ranks: + - format: CP + action_optimization: + - type: skipping + options: + - target: B + condition_on: + - A + - type: skipping + options: + - target: Z + condition_on: + - A + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..d583fc8b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,7 @@ +ART: + version: '0.4' + tables: + - name: PE_top_level.Buffer[1..1] + area: 5370.2625 + - name: PE_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..6fb42fa8 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,27 @@ +ART_summary: + version: '0.4' + table_summary: + - name: PE_top_level.Buffer[1..1] + area: 5370.2625 + primitive_estimations: + - name: storage.storage.storage[1..2048] + estimator: Library + - name: storage.storage.comparator[1..64] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: PE_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..075f6a7f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,40 @@ +ERT: + version: '0.4' + tables: + - name: PE_top_level.Buffer[1..1] + actions: + - name: read + arguments: {} + energy: 0.582895 + - name: write + arguments: {} + energy: 0.510895 + - name: update + arguments: {} + energy: 0.510895 + - name: metadata_read + arguments: {} + energy: 0.191076 + - name: metadata_write + arguments: {} + energy: 0.170111 + - name: metadata_update + arguments: {} + energy: 0.170111 + - name: leak + arguments: {} + energy: 0.002083 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: PE_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..9f120612 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,63 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: PE_top_level.Buffer[1..1] + actions: + - name: read + energy: 0.582895 + - name: write + energy: 0.510895 + - name: update + energy: 0.510895 + - name: metadata_read + energy: 0.191076 + - name: metadata_write + energy: 0.170111 + - name: metadata_update + energy: 0.170111 + - name: leak + energy: 0.002083 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage.storage[1..32] + estimator: Library + - name: storage.storage.comparator[1..64] + estimator: Library + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..32] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.storage.storage[1..2048] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: PE_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..b68b30c8 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,500 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated storage."widthscale" as "width / memory_width" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated storage."real_depth" as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."static_energy_scale" as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.area_scale as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."widthscale" as "width / memory_width" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depthscale" as "depth / memory_depth" = 0.5. +2024-05-29 16:49:56 INFO Calculated metadata_storage."real_depth" as "depth" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage."area_scale" as "widthscale * depthscale" = 0.0625. +2024-05-29 16:49:56 INFO Calculated metadata_storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.07279584915427849. +2024-05-29 16:49:56 INFO Calculated metadata_storage."static_energy_scale" as "area_scale" = 0.0625. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.area_scale as "area_scale" = 0.0625. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.07279584915427849. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.07279584915427849. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.07279584915427849. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.0625. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated PE_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.00043125p with accuracy 70%. Messages: +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.000359375p with accuracy 70%. Messages: +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:56 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:56 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 WARNING No action counts are specified as yaml input +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 33.5625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 27.96875u^2 with accuracy 70%. Messages: +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:56 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:56 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:56 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:56 INFO flattened architecture is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:56 INFO energy reference table is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:56 INFO energy reference table summary is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:56 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:56 INFO area reference table is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:56 INFO area reference table summary is saved to: +2024-05-29 16:49:56 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..3b7de2a8 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,56 @@ +architecture: + version: '0.4' + local: + - name: PE_top_level.Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 32 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 4 + write_bandwidth: 3 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - leak + - read + - write + - update + enabled: true + - name: PE_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..5fc81396 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,3 @@ +t0 +K 16 M 1 +K diff --git a/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/arch.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/arch.yaml new file mode 100644 index 00000000..1cc9051f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/arch.yaml @@ -0,0 +1,78 @@ +architecture: + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + attributes: + technology: "45nm" + + - !Component + name: BackingStorage # storage component + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + sparse_optimizations: + representation_format: + data_spaces: + - name: A + ranks: + - format: UOP + - format: CP + - name: B + ranks: + - format: UOP + - format: CP + + - !Container + name: PE + + - !Component + name: Buffer # storage component + class: storage + subclass: regfile_metadata + attributes: + depth: 128 + width: 8 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + sparse_optimizations: + representation_format: + data_spaces: + - name: B + ranks: + - format: UOP # uncompressed offset pair + - format: CP # coordinate payload + - name: A + ranks: + - format: UOP # uncompressed offset pair + - format: CP # coordinate payload + + action_optimization: + - type: skipping + options: + - target: A + condition_on: [ B ] + - type: skipping + options: + - target: B + condition_on: [ A ] + - type: skipping + options: + - target: Z + condition_on: [ A, B ] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/mapping.yaml new file mode 100644 index 00000000..be69917a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/mapping.yaml @@ -0,0 +1,10 @@ +mapping: + - target: BackingStorage # storage level in architecture + type: temporal # temporal tiling + factors: K=1 M=1 N=1 # loop bounds + permutation: NKM # loop order: inner to outer->A stationary + + - target: Buffer + type: temporal + factors: K=8 M=8 N=8 + permutation: NKM diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..bb0d7eae --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,578 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - write + - update + - leak + enabled: true + - name: Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 128 + width: 8 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - write + - update + - leak + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: BackingStorage + type: temporal + factors: K=1,M=1,N=1 + permutation: NKM + - target: Buffer + type: temporal + factors: K=8,M=8,N=8 + permutation: NKM +problem: + version: '0.4' + shape: + name: MatrixMultiply + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + read_write: false + - name: B + projection: + - - - N + - - - K + read_write: false + - name: Z + projection: + - - - M + - - - N + read_write: true + coefficients: [] + instance: + M: 8 + K: 8 + N: 8 + densities: + A: + distribution: fixed_structured + density: 0.25 + band_width: 0 + workload_tensor_size: 0 + B: + distribution: fixed_structured + density: 0.5 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: A + ranks: + - format: UOP + - format: CP + - name: B + ranks: + - format: UOP + - format: CP + name: BackingStorage + - representation_format: + data_spaces: + - name: B + ranks: + - format: UOP + - format: CP + - name: A + ranks: + - format: UOP + - format: CP + action_optimization: + - type: skipping + options: + - target: A + condition_on: + - B + - type: skipping + options: + - target: B + condition_on: + - A + - type: skipping + options: + - target: Z + condition_on: + - A + - B + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..3ac2d85d --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + - name: system_top_level.Buffer[1..1] + area: 12749.905 + - name: system_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..4da0a979 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,40 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + area: 12749.905 + primitive_estimations: + - name: storage.storage.storage[1..4096] + estimator: Library + - name: storage.storage.comparator[1..128] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..4096] + estimator: Library + - name: metadata_storage.storage.comparator[1..128] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..4a60a9a4 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,69 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + arguments: {} + energy: 2.290882 + - name: write + arguments: {} + energy: 2.694173 + - name: update + arguments: {} + energy: 2.694173 + - name: metadata_read + arguments: {} + energy: 0.373885 + - name: metadata_write + arguments: {} + energy: 0.726887 + - name: metadata_update + arguments: {} + energy: 0.726887 + - name: leak + arguments: {} + energy: 0.002378 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.Buffer[1..1] + actions: + - name: read + arguments: {} + energy: 1.060977 + - name: write + arguments: {} + energy: 0.988977 + - name: update + arguments: {} + energy: 0.988977 + - name: metadata_read + arguments: {} + energy: 0.553457 + - name: metadata_write + arguments: {} + energy: 0.517458 + - name: metadata_update + arguments: {} + energy: 0.517458 + - name: leak + arguments: {} + energy: 0.003217 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..26ae3a6f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + energy: 2.290882 + - name: write + energy: 2.694173 + - name: update + energy: 2.694173 + - name: metadata_read + energy: 0.373885 + - name: metadata_write + energy: 0.726887 + - name: metadata_update + energy: 0.726887 + - name: leak + energy: 0.002378 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + actions: + - name: read + energy: 1.060977 + - name: write + energy: 0.988977 + - name: update + energy: 0.988977 + - name: metadata_read + energy: 0.553457 + - name: metadata_write + energy: 0.517458 + - name: metadata_update + energy: 0.517458 + - name: leak + energy: 0.003217 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage.storage[1..32] + estimator: Library + - name: storage.storage.comparator[1..128] + estimator: Library + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..32] + estimator: Library + - name: metadata_storage.storage.comparator[1..128] + estimator: Library + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.storage.storage[1..4096] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..4096] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..27541c73 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,698 @@ +2024-05-29 17:03:16 INFO _ _ +2024-05-29 17:03:16 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 17:03:16 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 17:03:16 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 17:03:16 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 17:03:16 INFO |___/ |___/ +2024-05-29 17:03:16 INFO generating outputs according to the following specified output flags... +2024-05-29 17:03:16 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 17:03:16 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 17:03:16 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 17:03:16 INFO config file located: +2024-05-29 17:03:16 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 17:03:16 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 17:03:16 WARNING Please update the file to the latest version. +2024-05-29 17:03:16 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 17:03:16 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 17:03:16 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 17:03:16 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 17:03:16 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 17:03:16 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 17:03:16 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 17:03:16 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 17:03:16 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 17:03:16 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 17:03:17 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 17:03:17 INFO Getting all estimators in module +2024-05-29 17:03:17 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 17:03:17 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 17:03:17 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 17:03:17 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 17:03:17 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 17:03:17 INFO Found estimator plug-in: dummy_table () +2024-05-29 17:03:17 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 17:03:17 INFO Found estimator plug-in: Library () +2024-05-29 17:03:17 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 17:03:17 INFO Found estimator plug-in: CactiCache () +2024-05-29 17:03:17 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 17:03:17 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 17:03:17 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 17:03:17 INFO Calculated storage."width" as "width" = 32. +2024-05-29 17:03:17 INFO Calculated storage."depth" as "depth" = 512. +2024-05-29 17:03:17 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 17:03:17 INFO Calculated storage.storage."width" as "width" = 32. +2024-05-29 17:03:17 INFO Calculated storage.storage."depth" as "depth" = 512. +2024-05-29 17:03:17 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 17:03:17 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 17:03:17 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 17:03:17 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 17:03:17 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 17:03:17 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 17:03:17 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 17:03:17 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 17:03:17 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."width" as "width" = 4. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."depth" as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 17:03:17 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 17:03:17 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated storage."width" as "width" = 8. +2024-05-29 17:03:17 INFO Calculated storage."depth" as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated storage."memory_width" as "max(32, width)" = 32. +2024-05-29 17:03:17 INFO Calculated storage."memory_depth" as "max(64, depth)" = 128. +2024-05-29 17:03:17 INFO Calculated storage."widthscale" as "width / memory_width" = 0.25. +2024-05-29 17:03:17 INFO Calculated storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 17:03:17 INFO Calculated storage."real_depth" as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated storage."area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 17:03:17 INFO Calculated storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 17:03:17 INFO Calculated storage."static_energy_scale" as "area_scale" = 0.25. +2024-05-29 17:03:17 INFO Calculated storage.storage."width" as "memory_width" = 32. +2024-05-29 17:03:17 INFO Calculated storage.storage."depth" as "memory_depth" = 128. +2024-05-29 17:03:17 INFO Calculated storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 17:03:17 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated storage.storage.area_scale as "area_scale" = 0.25. +2024-05-29 17:03:17 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated storage.storage.storage[1..4096]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated storage.storage.comparator[1..128]."n_bits" as "max(1, ceil(log2(depth)))" = 7. +2024-05-29 17:03:17 INFO Calculated storage.storage.comparator[1..128]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 17:03:17 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 17:03:17 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 17:03:17 INFO Calculated metadata_storage."memory_width" as "max(32, width)" = 32. +2024-05-29 17:03:17 INFO Calculated metadata_storage."memory_depth" as "max(64, depth)" = 128. +2024-05-29 17:03:17 INFO Calculated metadata_storage."widthscale" as "width / memory_width" = 0.125. +2024-05-29 17:03:17 INFO Calculated metadata_storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 17:03:17 INFO Calculated metadata_storage."real_depth" as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated metadata_storage."area_scale" as "widthscale * depthscale" = 0.125. +2024-05-29 17:03:17 INFO Calculated metadata_storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.125. +2024-05-29 17:03:17 INFO Calculated metadata_storage."static_energy_scale" as "area_scale" = 0.125. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."width" as "memory_width" = 32. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."depth" as "memory_depth" = 128. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage.area_scale as "area_scale" = 0.125. +2024-05-29 17:03:17 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage.storage[1..4096]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage.comparator[1..128]."n_bits" as "max(1, ceil(log2(depth)))" = 7. +2024-05-29 17:03:17 INFO Calculated metadata_storage.storage.comparator[1..128]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 17:03:17 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 17:03:17 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 17:03:17 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 17:03:17 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 17:03:17 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 17:03:17 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 17:03:17 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 17:03:17 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 17:03:17 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 17:03:17 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 17:03:17 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.125. +2024-05-29 17:03:17 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 17:03:17 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated list index expression as "depth" = 128. +2024-05-29 17:03:17 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:17 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 17:03:17 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 17:03:17 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 2.23182e-12 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp0l866fm5 +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp735r488k +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp0l866fm5 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp735r488k 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpufg9ehwp +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp78qdsr6t +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpufg9ehwp >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp78qdsr6t 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpkal9mkpa +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmwjzks8b +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpkal9mkpa >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmwjzks8b 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 3.2794744999999997e-13 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm9yfzfsv +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpyf8bf544 +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm9yfzfsv >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpyf8bf544 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpi9sks92a +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo8x2z56o +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpi9sks92a >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo8x2z56o 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbnphddsm +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpv1vdn362 +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbnphddsm >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpv1vdn362 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 7.52517e-17 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpx8q3i7z1 +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3ljoeoql +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpx8q3i7z1 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3ljoeoql 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:17 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.666428 +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.000646875p with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 2.7429875e-18 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpp0jrumv8 +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjf3sllwd +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpp0jrumv8 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjf3sllwd 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:17 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.547708 +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:17 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:17 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:17 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:17 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:17 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:17 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:17 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 WARNING No action counts are specified as yaml input +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 7.22007e-09 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppw8hpb8p +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvym53_mb +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppw8hpb8p >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvym53_mb 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:17 INFO CactiSRAM estimated 2.3675e-10 with accuracy 80%. Messages: +2024-05-29 17:03:17 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:17 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:17 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpqv1nkwba +2024-05-29 17:03:17 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp721h7l5a +2024-05-29 17:03:17 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:17 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpqv1nkwba >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp721h7l5a 2>&1 +2024-05-29 17:03:17 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:17 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 4 entries for aladdin_register. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:17 INFO | aladdin_register area has been scaled 1x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:17 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 4 entries for aladdin_register. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:17 INFO | aladdin_register area has been scaled 1x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:17 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:17 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 5 entries for aladdin_adder. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:17 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO +2024-05-29 17:03:17 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:17 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:17 INFO | Found 5 entries for aladdin_adder. +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:17 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:17 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:17 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:17 INFO | aladdin_adder area has been scaled 1x +2024-05-29 17:03:17 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:17 INFO flattened architecture is saved to: +2024-05-29 17:03:17 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 17:03:17 INFO energy reference table is saved to: +2024-05-29 17:03:17 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 17:03:17 INFO energy reference table summary is saved to: +2024-05-29 17:03:17 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 17:03:17 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 17:03:17 INFO area reference table is saved to: +2024-05-29 17:03:17 INFO ./timeloop-mapper.ART.yaml +2024-05-29 17:03:17 INFO area reference table summary is saved to: +2024-05-29 17:03:17 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..1b8e35e7 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,89 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + metadata_counter_width: 0 + required_actions: + - read + - write + - update + - leak + enabled: true + - name: system_top_level.Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 128 + width: 8 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - read + - write + - update + - leak + enabled: true + - name: system_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..bc13fd7b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,7 @@ +#error Tenssella does not support bypass. +t1 +M 1 N 1 K 1 +K +t0 +M 8 N 8 K 8 +MNK diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/problem.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/problem.yaml new file mode 100644 index 00000000..9565e827 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/problem.yaml @@ -0,0 +1,33 @@ +problem: + version: 0.4 + shape: + name: MatrixMultiply + dimensions: [ M, N, K ] + data_spaces: + - name: A + projection: + - [ [ M ] ] + - [ [ K ] ] + + - name: B + projection: + - [ [ N ] ] + - [ [ K ] ] + + - name: Z + projection: + - [ [ M ] ] + - [ [ N ] ] + read_write: True + + instance: + M: 8 + K: 8 + N: 8 + densities: + A: + distribution: fixed_structured + density: 0.25 + B: + distribution: fixed_structured + density: 0.5 \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..d927c83a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,578 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - leak + - update + - read + enabled: true + - name: Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 128 + width: 8 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - leak + - update + - read + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: BackingStorage + type: temporal + factors: K=1,M=1,N=1 + permutation: NKM + - target: Buffer + type: temporal + factors: K=8,M=8,N=8 + permutation: NKM +problem: + version: '0.4' + shape: + name: MatrixMultiply + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + read_write: false + - name: B + projection: + - - - N + - - - K + read_write: false + - name: Z + projection: + - - - M + - - - N + read_write: true + coefficients: [] + instance: + M: 8 + K: 8 + N: 8 + densities: + A: + distribution: fixed_structured + density: 0.25 + band_width: 0 + workload_tensor_size: 0 + B: + distribution: fixed_structured + density: 0.5 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: A + ranks: + - format: UOP + - format: CP + - name: B + ranks: + - format: UOP + - format: CP + name: BackingStorage + - representation_format: + data_spaces: + - name: B + ranks: + - format: UOP + - format: CP + - name: A + ranks: + - format: UOP + - format: CP + action_optimization: + - type: skipping + options: + - target: A + condition_on: + - B + - type: skipping + options: + - target: B + condition_on: + - A + - type: skipping + options: + - target: Z + condition_on: + - A + - B + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..3ac2d85d --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + - name: system_top_level.Buffer[1..1] + area: 12749.905 + - name: system_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..4da0a979 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,40 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + area: 12749.905 + primitive_estimations: + - name: storage.storage.storage[1..4096] + estimator: Library + - name: storage.storage.comparator[1..128] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..4096] + estimator: Library + - name: metadata_storage.storage.comparator[1..128] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..4a60a9a4 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,69 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + arguments: {} + energy: 2.290882 + - name: write + arguments: {} + energy: 2.694173 + - name: update + arguments: {} + energy: 2.694173 + - name: metadata_read + arguments: {} + energy: 0.373885 + - name: metadata_write + arguments: {} + energy: 0.726887 + - name: metadata_update + arguments: {} + energy: 0.726887 + - name: leak + arguments: {} + energy: 0.002378 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.Buffer[1..1] + actions: + - name: read + arguments: {} + energy: 1.060977 + - name: write + arguments: {} + energy: 0.988977 + - name: update + arguments: {} + energy: 0.988977 + - name: metadata_read + arguments: {} + energy: 0.553457 + - name: metadata_write + arguments: {} + energy: 0.517458 + - name: metadata_update + arguments: {} + energy: 0.517458 + - name: leak + arguments: {} + energy: 0.003217 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..26ae3a6f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + energy: 2.290882 + - name: write + energy: 2.694173 + - name: update + energy: 2.694173 + - name: metadata_read + energy: 0.373885 + - name: metadata_write + energy: 0.726887 + - name: metadata_update + energy: 0.726887 + - name: leak + energy: 0.002378 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + actions: + - name: read + energy: 1.060977 + - name: write + energy: 0.988977 + - name: update + energy: 0.988977 + - name: metadata_read + energy: 0.553457 + - name: metadata_write + energy: 0.517458 + - name: metadata_update + energy: 0.517458 + - name: leak + energy: 0.003217 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage.storage[1..32] + estimator: Library + - name: storage.storage.comparator[1..128] + estimator: Library + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..32] + estimator: Library + - name: metadata_storage.storage.comparator[1..128] + estimator: Library + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.storage.storage[1..4096] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..4096] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..549a6dc5 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,698 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated storage."memory_depth" as "max(64, depth)" = 128. +2024-05-29 16:49:56 INFO Calculated storage."widthscale" as "width / memory_width" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated storage."real_depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated storage."area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."static_energy_scale" as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "memory_depth" = 128. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.area_scale as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated storage.storage.storage[1..4096]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..128]."n_bits" as "max(1, ceil(log2(depth)))" = 7. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..128]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_depth" as "max(64, depth)" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage."widthscale" as "width / memory_width" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated metadata_storage."real_depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage."area_scale" as "widthscale * depthscale" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."static_energy_scale" as "area_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "memory_depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.area_scale as "area_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.storage[1..4096]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..128]."n_bits" as "max(1, ceil(log2(depth)))" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..128]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.23182e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpli_1ells +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr10om06v +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpli_1ells >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr10om06v 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5d2t0zk1 +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_rc5eltk +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5d2t0zk1 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_rc5eltk 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8a5o2paj +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpipl_palt +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8a5o2paj >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpipl_palt 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 3.2794744999999997e-13 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb2nf20rm +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpil75tjss +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb2nf20rm >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpil75tjss 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpy_btdhkt +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp577t7k0n +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpy_btdhkt >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp577t7k0n 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwd60kw8i +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpe__0b72l +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwd60kw8i >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpe__0b72l 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.52517e-17 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpv4ivo4g0 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp86t91e7i +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpv4ivo4g0 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp86t91e7i 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.666428 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000646875p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.7429875e-18 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpei1af7db +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppzzm9lhg +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpei1af7db >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppzzm9lhg 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.547708 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 WARNING No action counts are specified as yaml input +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.22007e-09 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl1pub2vy +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm740x5xl +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl1pub2vy >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm740x5xl 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.3675e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvydtimyb +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpiv1y84ib +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvydtimyb >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpiv1y84ib 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO flattened architecture is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:57 INFO energy reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:57 INFO energy reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:57 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:57 INFO area reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:57 INFO area reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..3a3cf7a0 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,89 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + metadata_counter_width: 0 + required_actions: + - write + - leak + - update + - read + enabled: true + - name: system_top_level.Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 128 + width: 8 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - write + - leak + - update + - read + enabled: true + - name: system_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..bc13fd7b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,7 @@ +#error Tenssella does not support bypass. +t1 +M 1 N 1 K 1 +K +t0 +M 8 N 8 K 8 +MNK diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/02.2.1-spMspM/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/arch.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/arch.yaml new file mode 100644 index 00000000..fa9ce5b9 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/arch.yaml @@ -0,0 +1,79 @@ +architecture: + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + attributes: + technology: "45nm" + + - !Component + name: BackingStorage # storage component + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + sparse_optimizations: + representation_format: + data_spaces: + - name: A + ranks: # no tiling on A, so two ranks needed + - format: UOP + - format: CP + - name: B # pretiling is required, so B's is represented with 3 ranks + ranks: + - format: UOP + - format: UOP + - format: CP + + - !Container + name: PE + + - !Component + name: Buffer # storage component + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 64 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + sparse_optimizations: + representation_format: + data_spaces: + - name: B + ranks: + - format: UOP # uncompressed offset pair + - format: CP # coordinate payload + - name: A + ranks: + - format: UOP # uncompressed offset pair + - format: CP # coordinate payload + + action_optimization: + - type: skipping + options: + - target: A + condition_on: [ B ] + - type: skipping + options: + - target: B + condition_on: [ A ] + - type: skipping + options: + - target: Z + condition_on: [ A, B ] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/mapping.yaml new file mode 100644 index 00000000..8d203acc --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/mapping.yaml @@ -0,0 +1,10 @@ +mapping: + - target: BackingStorage + type: temporal + factors: K=1 M=1 N=4 # non-trivial N factor indicate tiling on N dimension + permutation: NKM + + - target: Buffer + type: temporal + factors: K=8 M=8 N=2 + permutation: NKM diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..96cd2c77 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,579 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - leak + - read + - update + enabled: true + - name: Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 64 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - leak + - read + - update + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: BackingStorage + type: temporal + factors: K=1,M=1,N=4 + permutation: NKM + - target: Buffer + type: temporal + factors: K=8,M=8,N=2 + permutation: NKM +problem: + version: '0.4' + shape: + name: MatrixMultiply + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + read_write: false + - name: B + projection: + - - - N + - - - K + read_write: false + - name: Z + projection: + - - - M + - - - N + read_write: true + coefficients: [] + instance: + M: 8 + K: 8 + N: 8 + densities: + A: + distribution: fixed_structured + density: 0.25 + band_width: 0 + workload_tensor_size: 0 + B: + distribution: fixed_structured + density: 0.5 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: A + ranks: + - format: UOP + - format: CP + - name: B + ranks: + - format: UOP + - format: UOP + - format: CP + name: BackingStorage + - representation_format: + data_spaces: + - name: B + ranks: + - format: UOP + - format: CP + - name: A + ranks: + - format: UOP + - format: CP + action_optimization: + - type: skipping + options: + - target: A + condition_on: + - B + - type: skipping + options: + - target: B + condition_on: + - A + - type: skipping + options: + - target: Z + condition_on: + - A + - B + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..119a1336 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + - name: system_top_level.Buffer[1..1] + area: 6430.89 + - name: system_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..92f22929 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,40 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + area: 6430.89 + primitive_estimations: + - name: storage.storage.storage[1..2048] + estimator: Library + - name: storage.storage.comparator[1..64] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..b685ee7b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,69 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + arguments: {} + energy: 2.290882 + - name: write + arguments: {} + energy: 2.694173 + - name: update + arguments: {} + energy: 2.694173 + - name: metadata_read + arguments: {} + energy: 0.373885 + - name: metadata_write + arguments: {} + energy: 0.726887 + - name: metadata_update + arguments: {} + energy: 0.726887 + - name: leak + arguments: {} + energy: 0.002378 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.Buffer[1..1] + actions: + - name: read + arguments: {} + energy: 0.582895 + - name: write + arguments: {} + energy: 0.510895 + - name: update + arguments: {} + energy: 0.510895 + - name: metadata_read + arguments: {} + energy: 0.311135 + - name: metadata_write + arguments: {} + energy: 0.275135 + - name: metadata_update + arguments: {} + energy: 0.275135 + - name: leak + arguments: {} + energy: 0.002327 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..b85b6b41 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + energy: 2.290882 + - name: write + energy: 2.694173 + - name: update + energy: 2.694173 + - name: metadata_read + energy: 0.373885 + - name: metadata_write + energy: 0.726887 + - name: metadata_update + energy: 0.726887 + - name: leak + energy: 0.002378 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + actions: + - name: read + energy: 0.582895 + - name: write + energy: 0.510895 + - name: update + energy: 0.510895 + - name: metadata_read + energy: 0.311135 + - name: metadata_write + energy: 0.275135 + - name: metadata_update + energy: 0.275135 + - name: leak + energy: 0.002327 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage.storage[1..32] + estimator: Library + - name: storage.storage.comparator[1..64] + estimator: Library + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..32] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.storage.storage[1..2048] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..97c45b0a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,698 @@ +2024-05-29 17:03:18 INFO _ _ +2024-05-29 17:03:18 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 17:03:18 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 17:03:18 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 17:03:18 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 17:03:18 INFO |___/ |___/ +2024-05-29 17:03:18 INFO generating outputs according to the following specified output flags... +2024-05-29 17:03:18 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 17:03:18 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 17:03:18 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 17:03:18 INFO config file located: +2024-05-29 17:03:18 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 17:03:18 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 17:03:18 WARNING Please update the file to the latest version. +2024-05-29 17:03:18 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 17:03:18 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 17:03:18 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 17:03:18 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 17:03:18 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 17:03:18 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 17:03:18 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 17:03:18 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 17:03:18 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 17:03:18 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 17:03:18 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 17:03:18 INFO Getting all estimators in module +2024-05-29 17:03:18 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 17:03:18 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 17:03:18 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 17:03:18 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 17:03:18 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 17:03:18 INFO Found estimator plug-in: dummy_table () +2024-05-29 17:03:18 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 17:03:18 INFO Found estimator plug-in: Library () +2024-05-29 17:03:18 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 17:03:18 INFO Found estimator plug-in: CactiCache () +2024-05-29 17:03:18 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 17:03:18 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 17:03:18 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 17:03:18 INFO Calculated storage."width" as "width" = 32. +2024-05-29 17:03:18 INFO Calculated storage."depth" as "depth" = 512. +2024-05-29 17:03:18 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 17:03:18 INFO Calculated storage.storage."width" as "width" = 32. +2024-05-29 17:03:18 INFO Calculated storage.storage."depth" as "depth" = 512. +2024-05-29 17:03:18 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 17:03:18 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 17:03:18 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 17:03:18 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 17:03:18 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 17:03:18 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 17:03:18 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 17:03:18 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 17:03:18 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."width" as "width" = 4. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."depth" as "depth" = 128. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 17:03:18 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 17:03:18 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 17:03:18 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 17:03:18 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 17:03:18 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated storage."width" as "width" = 8. +2024-05-29 17:03:18 INFO Calculated storage."depth" as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated storage."memory_width" as "max(32, width)" = 32. +2024-05-29 17:03:18 INFO Calculated storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 17:03:18 INFO Calculated storage."widthscale" as "width / memory_width" = 0.25. +2024-05-29 17:03:18 INFO Calculated storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 17:03:18 INFO Calculated storage."real_depth" as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated storage."area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 17:03:18 INFO Calculated storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 17:03:18 INFO Calculated storage."static_energy_scale" as "area_scale" = 0.25. +2024-05-29 17:03:18 INFO Calculated storage.storage."width" as "memory_width" = 32. +2024-05-29 17:03:18 INFO Calculated storage.storage."depth" as "memory_depth" = 64. +2024-05-29 17:03:18 INFO Calculated storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 17:03:18 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated storage.storage.area_scale as "area_scale" = 0.25. +2024-05-29 17:03:18 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 17:03:18 INFO Calculated storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 17:03:18 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 17:03:18 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 17:03:18 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 17:03:18 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 17:03:18 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 64. +2024-05-29 17:03:18 INFO Calculated metadata_storage."memory_width" as "max(32, width)" = 32. +2024-05-29 17:03:18 INFO Calculated metadata_storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 17:03:18 INFO Calculated metadata_storage."widthscale" as "width / memory_width" = 0.125. +2024-05-29 17:03:18 INFO Calculated metadata_storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 17:03:18 INFO Calculated metadata_storage."real_depth" as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated metadata_storage."area_scale" as "widthscale * depthscale" = 0.125. +2024-05-29 17:03:18 INFO Calculated metadata_storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.125. +2024-05-29 17:03:18 INFO Calculated metadata_storage."static_energy_scale" as "area_scale" = 0.125. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."width" as "memory_width" = 32. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."depth" as "memory_depth" = 64. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage.area_scale as "area_scale" = 0.125. +2024-05-29 17:03:18 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 17:03:18 INFO Calculated metadata_storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 17:03:18 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 17:03:18 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 17:03:18 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 17:03:18 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 17:03:18 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 17:03:18 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 17:03:18 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 17:03:18 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 17:03:18 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 17:03:18 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 17:03:18 INFO Calculated list index expression as "width" = 32. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 17:03:18 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 17:03:18 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.125. +2024-05-29 17:03:18 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 17:03:18 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated list index expression as "depth" = 64. +2024-05-29 17:03:18 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 17:03:18 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 17:03:18 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 17:03:18 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 2.23182e-12 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp58srdear +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppt1b2qnk +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp58srdear >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppt1b2qnk 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmklmyono +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpq3sldd4q +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmklmyono >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpq3sldd4q 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpq9bii4tt +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmi_uc_jm +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpq9bii4tt >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmi_uc_jm 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 3.2794744999999997e-13 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwf_nnubi +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4pkk4owr +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwf_nnubi >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4pkk4owr 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmph3jxcko4 +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpucoxddq4 +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmph3jxcko4 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpucoxddq4 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpipix02u9 +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpu85efg89 +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpipix02u9 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpu85efg89 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 7.52517e-17 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmptfzclhhc +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplw8wjjuc +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmptfzclhhc >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplw8wjjuc 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:18 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.666428 +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.000646875p with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 2.7429875e-18 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpx2jgqhly +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwxt2auko +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpx2jgqhly >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwxt2auko 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:18 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.547708 +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_register energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:18 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:18 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.00043125p with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:18 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:18 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.00043125p with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:18 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:18 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 17:03:18 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 WARNING No action counts are specified as yaml input +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 7.22007e-09 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppvavur3r +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7pfzj1sw +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppvavur3r >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7pfzj1sw 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:18 INFO CactiSRAM estimated 2.3675e-10 with accuracy 80%. Messages: +2024-05-29 17:03:18 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 17:03:18 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 17:03:18 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprciz1nsv +2024-05-29 17:03:18 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4e0g6bgy +2024-05-29 17:03:18 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:18 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprciz1nsv >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4e0g6bgy 2>&1 +2024-05-29 17:03:18 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 17:03:18 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 4 entries for aladdin_register. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:18 INFO | aladdin_register area has been scaled 1x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:18 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 33.5625u^2 with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 4 entries for aladdin_register. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:18 INFO | aladdin_register area has been scaled 1x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:18 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 33.5625u^2 with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:18 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 5 entries for aladdin_adder. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:18 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO +2024-05-29 17:03:18 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:18 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:18 INFO | Found 5 entries for aladdin_adder. +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 17:03:18 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:18 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:18 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:18 INFO | aladdin_adder area has been scaled 1x +2024-05-29 17:03:18 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:18 INFO flattened architecture is saved to: +2024-05-29 17:03:18 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 17:03:18 INFO energy reference table is saved to: +2024-05-29 17:03:18 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 17:03:18 INFO energy reference table summary is saved to: +2024-05-29 17:03:18 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 17:03:18 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 17:03:18 INFO area reference table is saved to: +2024-05-29 17:03:18 INFO ./timeloop-mapper.ART.yaml +2024-05-29 17:03:18 INFO area reference table summary is saved to: +2024-05-29 17:03:18 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..36f22f07 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,89 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + metadata_counter_width: 0 + required_actions: + - write + - leak + - read + - update + enabled: true + - name: system_top_level.Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 64 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - write + - leak + - read + - update + enabled: true + - name: system_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..941cf7cd --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,7 @@ +#error Tenssella does not support bypass. +t1 +M 1 N 4 K 1 +N +t0 +M 8 N 2 K 8 +MNK diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/problem.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/problem.yaml new file mode 100644 index 00000000..9565e827 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/problem.yaml @@ -0,0 +1,33 @@ +problem: + version: 0.4 + shape: + name: MatrixMultiply + dimensions: [ M, N, K ] + data_spaces: + - name: A + projection: + - [ [ M ] ] + - [ [ K ] ] + + - name: B + projection: + - [ [ N ] ] + - [ [ K ] ] + + - name: Z + projection: + - [ [ M ] ] + - [ [ N ] ] + read_write: True + + instance: + M: 8 + K: 8 + N: 8 + densities: + A: + distribution: fixed_structured + density: 0.25 + B: + distribution: fixed_structured + density: 0.5 \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..079d4f29 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,579 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - update + - read + - leak + enabled: true + - name: Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 64 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - update + - read + - leak + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: BackingStorage + type: temporal + factors: K=1,M=1,N=4 + permutation: NKM + - target: Buffer + type: temporal + factors: K=8,M=8,N=2 + permutation: NKM +problem: + version: '0.4' + shape: + name: MatrixMultiply + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + read_write: false + - name: B + projection: + - - - N + - - - K + read_write: false + - name: Z + projection: + - - - M + - - - N + read_write: true + coefficients: [] + instance: + M: 8 + K: 8 + N: 8 + densities: + A: + distribution: fixed_structured + density: 0.25 + band_width: 0 + workload_tensor_size: 0 + B: + distribution: fixed_structured + density: 0.5 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: A + ranks: + - format: UOP + - format: CP + - name: B + ranks: + - format: UOP + - format: UOP + - format: CP + name: BackingStorage + - representation_format: + data_spaces: + - name: B + ranks: + - format: UOP + - format: CP + - name: A + ranks: + - format: UOP + - format: CP + action_optimization: + - type: skipping + options: + - target: A + condition_on: + - B + - type: skipping + options: + - target: B + condition_on: + - A + - type: skipping + options: + - target: Z + condition_on: + - A + - B + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..119a1336 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + - name: system_top_level.Buffer[1..1] + area: 6430.89 + - name: system_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..92f22929 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,40 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + area: 6430.89 + primitive_estimations: + - name: storage.storage.storage[1..2048] + estimator: Library + - name: storage.storage.comparator[1..64] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..b685ee7b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,69 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + arguments: {} + energy: 2.290882 + - name: write + arguments: {} + energy: 2.694173 + - name: update + arguments: {} + energy: 2.694173 + - name: metadata_read + arguments: {} + energy: 0.373885 + - name: metadata_write + arguments: {} + energy: 0.726887 + - name: metadata_update + arguments: {} + energy: 0.726887 + - name: leak + arguments: {} + energy: 0.002378 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.Buffer[1..1] + actions: + - name: read + arguments: {} + energy: 0.582895 + - name: write + arguments: {} + energy: 0.510895 + - name: update + arguments: {} + energy: 0.510895 + - name: metadata_read + arguments: {} + energy: 0.311135 + - name: metadata_write + arguments: {} + energy: 0.275135 + - name: metadata_update + arguments: {} + energy: 0.275135 + - name: leak + arguments: {} + energy: 0.002327 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..b85b6b41 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + energy: 2.290882 + - name: write + energy: 2.694173 + - name: update + energy: 2.694173 + - name: metadata_read + energy: 0.373885 + - name: metadata_write + energy: 0.726887 + - name: metadata_update + energy: 0.726887 + - name: leak + energy: 0.002378 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + actions: + - name: read + energy: 0.582895 + - name: write + energy: 0.510895 + - name: update + energy: 0.510895 + - name: metadata_read + energy: 0.311135 + - name: metadata_write + energy: 0.275135 + - name: metadata_update + energy: 0.275135 + - name: leak + energy: 0.002327 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage.storage[1..32] + estimator: Library + - name: storage.storage.comparator[1..64] + estimator: Library + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..32] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.storage.storage[1..2048] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..749bb5d1 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,698 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated storage."widthscale" as "width / memory_width" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated storage."real_depth" as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."static_energy_scale" as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.area_scale as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."widthscale" as "width / memory_width" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated metadata_storage."real_depth" as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."area_scale" as "widthscale * depthscale" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."static_energy_scale" as "area_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.area_scale as "area_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.23182e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsxnp9c5s +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsjqfrsdn +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsxnp9c5s >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsjqfrsdn 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp1n48yx0o +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4ni7flkr +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp1n48yx0o >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4ni7flkr 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp88av5jo4 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp66ik_cs7 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp88av5jo4 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp66ik_cs7 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 3.2794744999999997e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpf77xi1im +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpodspldup +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpf77xi1im >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpodspldup 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl67c2qtu +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzzuilgmq +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl67c2qtu >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzzuilgmq 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppr9itn7c +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3auajgs8 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppr9itn7c >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3auajgs8 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.52517e-17 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwgj6mdwn +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9pfszevu +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwgj6mdwn >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9pfszevu 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.666428 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000646875p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.7429875e-18 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr4vh6clt +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9uqs3rrd +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr4vh6clt >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9uqs3rrd 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.547708 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.00043125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.00043125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 WARNING No action counts are specified as yaml input +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.22007e-09 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmptwfyrdat +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplu522htf +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmptwfyrdat >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplu522htf 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.3675e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo448twuc +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6fo_dh1n +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo448twuc >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6fo_dh1n 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 33.5625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 33.5625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO flattened architecture is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:57 INFO energy reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:57 INFO energy reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:57 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:57 INFO area reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:57 INFO area reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..c9bb90e8 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,89 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + metadata_counter_width: 0 + required_actions: + - write + - update + - read + - leak + enabled: true + - name: system_top_level.Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 64 + metadata_storage_width: 4 + metadata_datawidth: 4 + read_bandwidth: 5 + write_bandwidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - write + - update + - read + - leak + enabled: true + - name: system_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..941cf7cd --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,7 @@ +#error Tenssella does not support bypass. +t1 +M 1 N 4 K 1 +N +t0 +M 8 N 2 K 8 +MNK diff --git a/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/arch.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/arch.yaml new file mode 100644 index 00000000..1eac3bc2 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/arch.yaml @@ -0,0 +1,63 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: system + attributes: + technology: "45nm" + + - !Component + name: BackingStorage + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + sparse_optimizations: + representation_format: + data_spaces: + - name: Weights + ranks: + - format: RLE # run length encodin + + + - !Container + name: PE + + - !Component + name: Buffer + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 16 + metadata_storage_width: 4 + metadata_datawidth: 4 + sparse_optimizations: + representation_format: + data_spaces: + - name: Weights + ranks: + - format: RLE # run length encoding + + action_optimization: + - type: skipping + options: + - target: Inputs + condition_on: [ Weights ] + - type: skipping + options: + - target: Outputs + condition_on: [ Weights ] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/mapping.yaml new file mode 100644 index 00000000..d27924c1 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/mapping.yaml @@ -0,0 +1,11 @@ +mapping: + - target: BackingStorage # storage level in architecture + type: temporal # temporal tiling + factors: S=1 Q=1 # loop bounds + permutation: S Q # loop order: inner to outer->output stationary + + - target: Buffer + type: temporal + factors: S=3 Q=9 + permutation: S Q + diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/problem.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/problem.yaml new file mode 100644 index 00000000..b7e58ca5 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/problem.yaml @@ -0,0 +1,24 @@ +problem: + version: 0.4 + shape: + name: Conv1D + dimensions: [ S, Q ] + data_spaces: + - name: Weights + projection: + - [ [S] ] + - name: Inputs + projection: + - [ [S], [Q] ] # sum of product representation. here S*1+Q*1 + - name: Outputs + projection: + - [ [Q] ] + read_write: True + + instance: + S: 3 + Q: 9 + densities: + Weights: + distribution: fixed_structured + density: 0.43 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..5a04b565 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,551 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - read + - update + - leak + enabled: true + - name: Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 16 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - read + - update + - leak + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: BackingStorage + type: temporal + factors: S=1,Q=1 + permutation: SQ + - target: Buffer + type: temporal + factors: S=3,Q=9 + permutation: SQ +problem: + version: '0.4' + shape: + name: Conv1D + dimensions: + - S + - Q + data_spaces: + - name: Weights + projection: + - - - S + read_write: false + - name: Inputs + projection: + - - - S + - - Q + read_write: false + - name: Outputs + projection: + - - - Q + read_write: true + coefficients: [] + instance: + S: 3 + Q: 9 + densities: + Weights: + distribution: fixed_structured + density: 0.43 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: Weights + ranks: + - format: RLE + name: BackingStorage + - representation_format: + data_spaces: + - name: Weights + ranks: + - format: RLE + action_optimization: + - type: skipping + options: + - target: Inputs + condition_on: + - Weights + - type: skipping + options: + - target: Outputs + condition_on: + - Weights + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..98240616 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + - name: system_top_level.Buffer[1..1] + area: 4834.355 + - name: system_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..cdda0bd5 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,40 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + area: 4834.355 + primitive_estimations: + - name: storage.storage.storage[1..2048] + estimator: Library + - name: storage.storage.comparator[1..64] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..a66fea44 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,69 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + arguments: {} + energy: 2.290882 + - name: write + arguments: {} + energy: 2.694173 + - name: update + arguments: {} + energy: 2.694173 + - name: metadata_read + arguments: {} + energy: 0.373885 + - name: metadata_write + arguments: {} + energy: 0.726887 + - name: metadata_update + arguments: {} + energy: 0.726887 + - name: leak + arguments: {} + energy: 0.002378 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.Buffer[1..1] + actions: + - name: read + arguments: {} + energy: 0.582895 + - name: write + arguments: {} + energy: 0.510895 + - name: update + arguments: {} + energy: 0.510895 + - name: metadata_read + arguments: {} + energy: 0.118418 + - name: metadata_write + arguments: {} + energy: 0.106208 + - name: metadata_update + arguments: {} + energy: 0.106208 + - name: leak + arguments: {} + energy: 0.001889 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..8de2ed4d --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + energy: 2.290882 + - name: write + energy: 2.694173 + - name: update + energy: 2.694173 + - name: metadata_read + energy: 0.373885 + - name: metadata_write + energy: 0.726887 + - name: metadata_update + energy: 0.726887 + - name: leak + energy: 0.002378 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + actions: + - name: read + energy: 0.582895 + - name: write + energy: 0.510895 + - name: update + energy: 0.510895 + - name: metadata_read + energy: 0.118418 + - name: metadata_write + energy: 0.106208 + - name: metadata_update + energy: 0.106208 + - name: leak + energy: 0.001889 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage.storage[1..32] + estimator: Library + - name: storage.storage.comparator[1..64] + estimator: Library + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..32] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.storage.storage[1..2048] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..c5f90e6f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,698 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated storage."widthscale" as "width / memory_width" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated storage."real_depth" as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage."area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."static_energy_scale" as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.area_scale as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 16. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."widthscale" as "width / memory_width" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depthscale" as "depth / memory_depth" = 0.25. +2024-05-29 16:49:56 INFO Calculated metadata_storage."real_depth" as "depth" = 16. +2024-05-29 16:49:56 INFO Calculated metadata_storage."area_scale" as "widthscale * depthscale" = 0.03125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.04239388523273974. +2024-05-29 16:49:56 INFO Calculated metadata_storage."static_energy_scale" as "area_scale" = 0.03125. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.area_scale as "area_scale" = 0.03125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.04239388523273974. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.04239388523273974. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.04239388523273974. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.03125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.23182e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppt10mnn6 +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnxo9aogt +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppt10mnn6 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnxo9aogt 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp55avq_os +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphfk23kjf +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp55avq_os >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphfk23kjf 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpj8k_p26_ +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5kjlcz0h +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpj8k_p26_ >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5kjlcz0h 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 3.2794744999999997e-13 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk3z9cirm +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpd3vvxukz +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk3z9cirm >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpd3vvxukz 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8ibnhp2l +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmm1xpf1x +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp8ibnhp2l >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmm1xpf1x 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7tnx8wx6 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzlts74j7 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7tnx8wx6 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzlts74j7 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.52517e-17 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbhzm9o26 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_mt1eh9z +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbhzm9o26 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_mt1eh9z 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.666428 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000646875p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.7429875e-18 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgbs4tqqm +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5wc_pmt7 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgbs4tqqm >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5wc_pmt7 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.547708 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.00043125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0002875p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 WARNING No action counts are specified as yaml input +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.22007e-09 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsaxhyjle +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb44_x4fq +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsaxhyjle >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb44_x4fq 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.3675e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbcn23fe0 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnuiwsbml +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbcn23fe0 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnuiwsbml 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 33.5625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 22.375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO flattened architecture is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:57 INFO energy reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:57 INFO energy reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:57 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:57 INFO area reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:57 INFO area reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..5b4f1120 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,87 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + metadata_counter_width: 0 + required_actions: + - write + - read + - update + - leak + enabled: true + - name: system_top_level.Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 64 + width: 8 + datawidth: 8 + metadata_storage_depth: 16 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - write + - read + - update + - leak + enabled: true + - name: system_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..1087f18a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,6 @@ +t1 +S 1 Q 1 +Q +t0 +S 3 Q 9 +SQ diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/03.2.1-conv1d/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/arch.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/arch.yaml new file mode 100644 index 00000000..bd27d0d2 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/arch.yaml @@ -0,0 +1,63 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: system + attributes: + technology: "45nm" + + - !Component + name: BackingStorage + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + sparse_optimizations: + representation_format: + data_spaces: + - name: Weights + ranks: + - format: UOP # uncompressed offset pair + - format: RLE # run length encoding + + - !Container + name: PE + + - !Component + name: Buffer + class: storage + subclass: regfile_metadata + attributes: + depth: 256 + width: 8 + datawidth: 8 + metadata_storage_depth: 38 + metadata_storage_width: 4 + metadata_datawidth: 4 + sparse_optimizations: + representation_format: + data_spaces: + - name: Weights + ranks: + - format: UOP # uncompressed offset pair + - format: RLE # run length encoding + action_optimization: + - type: skipping + options: + - target: Inputs + condition_on: [ Weights ] + - type: skipping + options: + - target: Outputs + condition_on: [ Weights ] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/mapping.yaml new file mode 100644 index 00000000..da7888eb --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/mapping.yaml @@ -0,0 +1,10 @@ +mapping: + - target: BackingStorage + type: temporal + factors: S=1 Q=1 M=1 + permutation: S Q M + + - target: Buffer + type: temporal + factors: S=3 Q=9 M=16 + permutation: S Q M diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/problem.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/problem.yaml new file mode 100644 index 00000000..68add290 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/problem.yaml @@ -0,0 +1,27 @@ +problem: + version: 0.4 + shape: + name: Conv1D_OC + dimensions: [ M, S, Q ] + data_spaces: + - name: Weights + projection: + - [ [M] ] + - [ [S] ] + - name: Inputs + projection: + - [ [S], [Q] ] + - name: Outputs + projection: + - [ [M] ] + - [ [Q] ] + read_write: True + + instance: + M: 16 + S: 3 + Q: 9 + densities: + Weights: + distribution: fixed_structured + density: 0.4333 \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..f528231d --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,557 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - write + - leak + enabled: true + - name: Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 256 + width: 8 + datawidth: 8 + metadata_storage_depth: 38 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - write + - leak + enabled: true + - name: mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: BackingStorage + type: temporal + factors: S=1,Q=1,M=1 + permutation: SQM + - target: Buffer + type: temporal + factors: S=3,Q=9,M=16 + permutation: SQM +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - M + - S + - Q + data_spaces: + - name: Weights + projection: + - - - M + - - - S + read_write: false + - name: Inputs + projection: + - - - S + - - Q + read_write: false + - name: Outputs + projection: + - - - M + - - - Q + read_write: true + coefficients: [] + instance: + M: 16 + S: 3 + Q: 9 + densities: + Weights: + distribution: fixed_structured + density: 0.4333 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: Weights + ranks: + - format: UOP + - format: RLE + name: BackingStorage + - representation_format: + data_spaces: + - name: Weights + ranks: + - format: UOP + - format: RLE + action_optimization: + - type: skipping + options: + - target: Inputs + condition_on: + - Weights + - type: skipping + options: + - target: Outputs + condition_on: + - Weights + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..65f9ddd2 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + - name: system_top_level.Buffer[1..1] + area: 18193.875 + - name: system_top_level.mac[1..1] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..e94d2971 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,40 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + area: 18193.875 + primitive_estimations: + - name: storage.storage.storage[1..8192] + estimator: Library + - name: storage.storage.comparator[1..256] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..9abfbfc9 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,69 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + arguments: {} + energy: 2.290882 + - name: write + arguments: {} + energy: 2.694173 + - name: update + arguments: {} + energy: 2.694173 + - name: metadata_read + arguments: {} + energy: 0.373885 + - name: metadata_write + arguments: {} + energy: 0.726887 + - name: metadata_update + arguments: {} + energy: 0.726887 + - name: leak + arguments: {} + energy: 0.002378 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.Buffer[1..1] + actions: + - name: read + arguments: {} + energy: 2.01058 + - name: write + arguments: {} + energy: 1.93858 + - name: update + arguments: {} + energy: 1.93858 + - name: metadata_read + arguments: {} + energy: 0.220341 + - name: metadata_write + arguments: {} + energy: 0.196368 + - name: metadata_update + arguments: {} + energy: 0.196368 + - name: leak + arguments: {} + energy: 0.003738 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.mac[1..1] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..4071889f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + energy: 2.290882 + - name: write + energy: 2.694173 + - name: update + energy: 2.694173 + - name: metadata_read + energy: 0.373885 + - name: metadata_write + energy: 0.726887 + - name: metadata_update + energy: 0.726887 + - name: leak + energy: 0.002378 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..1] + actions: + - name: read + energy: 2.01058 + - name: write + energy: 1.93858 + - name: update + energy: 1.93858 + - name: metadata_read + energy: 0.220341 + - name: metadata_write + energy: 0.196368 + - name: metadata_update + energy: 0.196368 + - name: leak + energy: 0.003738 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage.storage[1..32] + estimator: Library + - name: storage.storage.comparator[1..256] + estimator: Library + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..32] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.storage.storage[1..8192] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.mac[1..1] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..70baaae2 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,698 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 256. +2024-05-29 16:49:56 INFO Calculated storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated storage."memory_depth" as "max(64, depth)" = 256. +2024-05-29 16:49:56 INFO Calculated storage."widthscale" as "width / memory_width" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated storage."real_depth" as "depth" = 256. +2024-05-29 16:49:56 INFO Calculated storage."area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."static_energy_scale" as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "memory_depth" = 256. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.area_scale as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 8192. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 256. +2024-05-29 16:49:56 INFO Calculated storage.storage.storage[1..8192]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..256]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..256]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 38. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."widthscale" as "width / memory_width" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depthscale" as "depth / memory_depth" = 0.59375. +2024-05-29 16:49:56 INFO Calculated metadata_storage."real_depth" as "depth" = 38. +2024-05-29 16:49:56 INFO Calculated metadata_storage."area_scale" as "widthscale * depthscale" = 0.07421875. +2024-05-29 16:49:56 INFO Calculated metadata_storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.08323784705378608. +2024-05-29 16:49:56 INFO Calculated metadata_storage."static_energy_scale" as "area_scale" = 0.07421875. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.area_scale as "area_scale" = 0.07421875. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 256. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 256. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 256. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.08323784705378608. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.08323784705378608. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.08323784705378608. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 8192. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 256. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.07421875. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.23182e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl6mauzek +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2lnaa1bk +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl6mauzek >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2lnaa1bk 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppela65c6 +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphv2vf6se +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppela65c6 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphv2vf6se 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpot9uw4tw +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp1iefhw5l +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpot9uw4tw >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp1iefhw5l 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 3.2794744999999997e-13 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpibl8u_ud +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp81j7h477 +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpibl8u_ud >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp81j7h477 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvwfaizhk +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb8u9ddo9 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvwfaizhk >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb8u9ddo9 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7xarylcf +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp56ps75f6 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7xarylcf >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp56ps75f6 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.52517e-17 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpq7d2gfng +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3v0bvvlr +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpq7d2gfng >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3v0bvvlr 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.666428 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000646875p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.7429875e-18 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpw_0rmmar +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpeishfb0s +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpw_0rmmar >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpeishfb0s 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.547708 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000575p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.00043125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 WARNING No action counts are specified as yaml input +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.22007e-09 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr_ccvv54 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpuew4the3 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr_ccvv54 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpuew4the3 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.3675e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpcgv06efo +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2459sj_g +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpcgv06efo >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2459sj_g 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 44.75u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 33.5625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO flattened architecture is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:57 INFO energy reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:57 INFO energy reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:57 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:57 INFO area reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:57 INFO area reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..a7b3ed8b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,87 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + metadata_counter_width: 0 + required_actions: + - read + - update + - write + - leak + enabled: true + - name: system_top_level.Buffer[1..1] + class: storage + subclass: regfile_metadata + attributes: + depth: 256 + width: 8 + datawidth: 8 + metadata_storage_depth: 38 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - read + - update + - write + - leak + enabled: true + - name: system_top_level.mac[1..1] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..61dfd0f2 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,8 @@ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +M 1 S 1 Q 1 +Q +t0 +M 16 S 3 Q 9 +MSQ diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/arch.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/arch.yaml new file mode 100644 index 00000000..450c6235 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/arch.yaml @@ -0,0 +1,64 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: system + attributes: + technology: "45nm" + + - !Component + name: BackingStorage + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + sparse_optimizations: + representation_format: + data_spaces: + - name: Weights + ranks: + - format: UOP # uncompressed offset pair + - format: UOP # uncompressed offset pair + - format: RLE # run length encoding + + - !Container + name: PE # 4 spatial PEs + spatial: {meshX: 4} + + - !Component + name: Buffer + class: storage + subclass: regfile_metadata + attributes: + depth: 128 + width: 8 + datawidth: 8 + metadata_storage_depth: 64 + metadata_storage_width: 4 + metadata_datawidth: 4 + sparse_optimizations: + representation_format: + data_spaces: + - name: Weights + ranks: + - format: RLE # run length encoding + action_optimization: + - type: skipping + options: + - target: Inputs + condition_on: [ Weights ] + - type: skipping + options: + - target: Outputs + condition_on: [ Weights ] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/mapping.yaml new file mode 100644 index 00000000..f7cc6b1b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/mapping.yaml @@ -0,0 +1,17 @@ +mapping: + - target: BackingStorage # storage level in architecture + type: temporal # temporal tiling + factors: [S=1, Q=1, M=4] # loop bounds + permutation: [S, Q, M] # loop order: inner to outer->output stationary + + - target: PE # storage level in architecture + type: spatial # spatial tiling + factors: [S=1, Q=1, M=4] # loop bounds + permutation: [S, Q, M] # loop order + split: 4 # start from which position in list above + # do we start to map the dimensions to hardware Y direction + # (X otherwise). all mapped to X here. + - target: Buffer + type: temporal + factors: [S=3, Q=9, M=1] + permutation: [S, Q, M] diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/problem.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/problem.yaml new file mode 100644 index 00000000..68add290 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/problem.yaml @@ -0,0 +1,27 @@ +problem: + version: 0.4 + shape: + name: Conv1D_OC + dimensions: [ M, S, Q ] + data_spaces: + - name: Weights + projection: + - [ [M] ] + - [ [S] ] + - name: Inputs + projection: + - [ [S], [Q] ] + - name: Outputs + projection: + - [ [M] ] + - [ [Q] ] + read_write: True + + instance: + M: 16 + S: 3 + Q: 9 + densities: + Weights: + distribution: fixed_structured + density: 0.4333 \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..1a671e48 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,590 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: Buffer[1..4] + class: storage + subclass: regfile_metadata + attributes: + depth: 128 + width: 8 + datawidth: 8 + metadata_storage_depth: 64 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 4 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: mac[1..4] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 4 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: BackingStorage + type: temporal + factors: S=1,Q=1,M=4 + permutation: SQM + - type: spatial + target: inter_PE_spatial + factors: S=1,Q=1,M=4 + permutation: SQM + split: 4 + - factors: M=1,S=1,Q=1 + permutation: MSQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - target: Buffer + type: temporal + factors: S=3,Q=9,M=1 + permutation: SQM +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - M + - S + - Q + data_spaces: + - name: Weights + projection: + - - - M + - - - S + read_write: false + - name: Inputs + projection: + - - - S + - - Q + read_write: false + - name: Outputs + projection: + - - - M + - - - Q + read_write: true + coefficients: [] + instance: + M: 16 + S: 3 + Q: 9 + densities: + Weights: + distribution: fixed_structured + density: 0.4333 + band_width: 0 + workload_tensor_size: 0 +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: Weights + ranks: + - format: UOP + - format: UOP + - format: RLE + name: BackingStorage + - representation_format: + data_spaces: + - name: Weights + ranks: + - format: RLE + action_optimization: + - type: skipping + options: + - target: Inputs + condition_on: + - Weights + - type: skipping + options: + - target: Outputs + condition_on: + - Weights + name: Buffer +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..ad41953e --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,11 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + - name: system_top_level.Buffer[1..4] + area: 10639.8375 + - name: system_top_level.mac[1..4] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..5f1f7b92 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,43 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.BackingStorage[1..1] + area: 7635.82 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..4] + area: 10639.8375 + primitive_estimations: + - name: storage.storage.storage[1..4096] + estimator: Library + - name: storage.storage.comparator[1..128] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: system_top_level.mac[1..4] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..8f53eb99 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,69 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + arguments: {} + energy: 2.290882 + - name: write + arguments: {} + energy: 2.694173 + - name: update + arguments: {} + energy: 2.694173 + - name: metadata_read + arguments: {} + energy: 0.373885 + - name: metadata_write + arguments: {} + energy: 0.726887 + - name: metadata_update + arguments: {} + energy: 0.726887 + - name: leak + arguments: {} + energy: 0.002378 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.Buffer[1..4] + actions: + - name: read + arguments: {} + energy: 1.060977 + - name: write + arguments: {} + energy: 0.988977 + - name: update + arguments: {} + energy: 0.988977 + - name: metadata_read + arguments: {} + energy: 0.311135 + - name: metadata_write + arguments: {} + energy: 0.275135 + - name: metadata_update + arguments: {} + energy: 0.275135 + - name: leak + arguments: {} + energy: 0.002873 + - name: decompression_count + arguments: {} + energy: 0.0 + - name: compression_count + arguments: {} + energy: 0.0 + - name: system_top_level.mac[1..4] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..0fa8db81 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,104 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.BackingStorage[1..1] + actions: + - name: read + energy: 2.290882 + - name: write + energy: 2.694173 + - name: update + energy: 2.694173 + - name: metadata_read + energy: 0.373885 + - name: metadata_write + energy: 0.726887 + - name: metadata_update + energy: 0.726887 + - name: leak + energy: 0.002378 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.Buffer[1..4] + actions: + - name: read + energy: 1.060977 + - name: write + energy: 0.988977 + - name: update + energy: 0.988977 + - name: metadata_read + energy: 0.311135 + - name: metadata_write + energy: 0.275135 + - name: metadata_update + energy: 0.275135 + - name: leak + energy: 0.002873 + - name: decompression_count + energy: 0.0 + - name: compression_count + energy: 0.0 + primitive_estimation(s): + - name: storage.storage.storage[1..32] + estimator: Library + - name: storage.storage.comparator[1..128] + estimator: Library + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..32] + estimator: Library + - name: metadata_storage.storage.comparator[1..64] + estimator: Library + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.storage.storage[1..4096] + estimator: Library + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage.storage[1..2048] + estimator: Library + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: system_top_level.mac[1..4] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..e92cb98a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,702 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:56 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:56 INFO Getting all estimators in module +2024-05-29 16:49:56 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:56 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:56 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:56 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:56 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: Library () +2024-05-29 16:49:56 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:56 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:56 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "depth" = 512. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 9. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.BackingStorage[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage."width" as "width" = 8. +2024-05-29 16:49:56 INFO Calculated storage."depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated storage."memory_depth" as "max(64, depth)" = 128. +2024-05-29 16:49:56 INFO Calculated storage."widthscale" as "width / memory_width" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated storage."real_depth" as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated storage."area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage."static_energy_scale" as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated storage.storage."depth" as "memory_depth" = 128. +2024-05-29 16:49:56 INFO Calculated storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.area_scale as "area_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated storage.storage.storage[1..4096]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..128]."n_bits" as "max(1, ceil(log2(depth)))" = 7. +2024-05-29 16:49:56 INFO Calculated storage.storage.comparator[1..128]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 7. +2024-05-29 16:49:56 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 4. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage."memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."widthscale" as "width / memory_width" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:56 INFO Calculated metadata_storage."real_depth" as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage."area_scale" as "widthscale * depthscale" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage."static_energy_scale" as "area_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."width" as "memory_width" = 32. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.area_scale as "area_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 6. +2024-05-29 16:49:56 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:56 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 0. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..4].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 4096. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..4].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 128. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..4].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..4].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.125. +2024-05-29 16:49:56 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..4].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:56 INFO Calculated system_top_level.Buffer[1..4].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:56 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.23182e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp0okex1on +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6e_vilzj +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp0okex1on >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6e_vilzj 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6a5_gb_i +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpeckx84r5 +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6a5_gb_i >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpeckx84r5 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 2.63511e-12 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbga3k1bf +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpp65n2yoe +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbga3k1bf >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpp65n2yoe 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO CactiSRAM estimated 3.2794744999999997e-13 with accuracy 80%. Messages: +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:56 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpcy8md7gu +2024-05-29 16:49:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpg1gnf1u0 +2024-05-29 16:49:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpcy8md7gu >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpg1gnf1u0 2>&1 +2024-05-29 16:49:56 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:56 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:56 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:56 INFO +2024-05-29 16:49:56 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnrg63ksx +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvw2y65li +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnrg63ksx >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvw2y65li 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 6.80949875e-13 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpyarym3ex +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjigwzknl +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpyarym3ex >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjigwzknl 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.52517e-17 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb4fr72c1 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5xhi6sbf +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpb4fr72c1 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5xhi6sbf 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.666428 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000646875p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.7429875e-18 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp1f5sbgm3 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprfb38qnu +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp1f5sbgm3 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprfb38qnu 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.547708 +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0459375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.039375p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.000503125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.00043125p with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:57 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:57 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 WARNING No action counts are specified as yaml input +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=32, depth=512, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 7.22007e-09 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=2048 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3x1o3uo3 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_mc_e2ae +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3x1o3uo3 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_mc_e2ae 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 48.01719015407516 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=9, precision=9, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for SRAM(width=4, depth=128, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.3675e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpt1196t4f +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm5yrzoaw +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpt1196t4f >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm5yrzoaw 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 0.5 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 7.303161538630073 bits/second +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=7, precision=7, width=7, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 39.15625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(n_bits=6, precision=6, width=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 33.5625u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for intadder(technology=45nm, width=0, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:57 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:57 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:57 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:57 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:57 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO flattened architecture is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:57 INFO energy reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:57 INFO energy reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:57 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:57 INFO area reference table is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:57 INFO area reference table summary is saved to: +2024-05-29 16:49:57 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..2b377e8a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,110 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.BackingStorage[1..1] + class: smartbuffer_metadata + attributes: + depth: 512 + width: 32 + datawidth: 8 + metadata_storage_depth: 128 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + metadata_counter_width: 0 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: system_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.Buffer[1..4] + class: storage + subclass: regfile_metadata + attributes: + depth: 128 + width: 8 + datawidth: 8 + metadata_storage_depth: 64 + metadata_storage_width: 4 + metadata_datawidth: 4 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 4 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + metadata_counter_width: 0 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: system_top_level.mac[1..4] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 4 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..bb49f76a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,17 @@ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +M 4 S 1 Q 1 +M +#error Tenssella does not support bypass. +t1 +M 1 S 1 Q 1 +Q +s1 +M 4 S 1 Q 1 +M +3 +t0 +M 1 S 3 Q 9 +SQ diff --git a/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/arch.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/arch.yaml new file mode 100644 index 00000000..3c1d56fb --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/arch.yaml @@ -0,0 +1,153 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: eyeriss_168 + attributes: + technology: "45nm" + + - !Component + name: DRAM + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + sparse_optimizations: + representation_format: + data_spaces: + - name: Inputs + ranks: + - format: UOP + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + - format: RLE + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + + - name: Outputs + ranks: + - format: UOP + flattened_rankIDs: [ [P, M, N, Q] ] + - format: RLE + flattened_rankIDs: [ [P, M, N, Q] ] + + - !Component + name: shared_glb + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 0 + metadata_storage_width: 0 + metadata_datawidth: 0 + metadata_counter_width: 9 + # Note that the two diretives below are describing + # whether this level can compress and decompress data transfers + # from itself to its parent (not child) + decompression_supported: true # from DRAM decompression + compression_supported: true # to DRAM compression + constraints: + dataspace: {keep: [Inputs, Outputs], bypass: [Weights]} + + - !Container # Each column of PEs produces a different psum row + name: PE_column + spatial: {meshX: 14} + constraints: + spatial: + permutation: [N, C, P, R, S, Q, M] + factors: [N=1, C=1, P=1, R=1, S=1] + split: 7 + + - !Container # Each PE in the column receives a different filter row + name: PE + spatial: {meshY: 12} + constraints: + spatial: + split: 4 + permutation: [N, P, Q, R, S, C, M] + factors: [N=1, P=1, Q=1, R=1] + + - !Parallel # Input/Output/Weight scratchpads in parallel + nodes: + - !Component + name: ifmap_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 17 # actual data + 1bit mask + n_banks: 1 + datawidth: 17 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Inputs]} + temporal: + permutation: [N, M, C, P, Q, R, S] + factors: [N=1, M=1, C=1, P=1, Q=1, R=1, S=1] + + - !Component + name: weights_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Weights]} + temporal: + permutation: [N, M, P, Q, S, C, R] + factors: [N=1, M=1, P=1, Q=1, S=1] + sparse_optimizations: + action_optimization: + - type: gating + options: + - target: Weights + condition_on: [ Inputs ] + + + - !Component + name: psum_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 24 + width: 16 + n_banks: 1 + datawidth: 16 + constraints: + dataspace: {keep: [Outputs]} + temporal: + permutation: [N, C, P, Q, R, S, M] + factors: [N=1, C=1, R=1, S=1, P=1, Q=1] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + +constraints: + version: 0.4 + targets: + # intuitive optimization for row stationary + # -> process a row/col of the output before going to the next one + - target: shared_glb + type: temporal + permutation: [Q, R, S, C, P, N, M] + factors: [Q=1, R=1, S=1, P=0] + # intuitive optimization to reduce map space size + - target: DRAM + type: temporal + permutation: [R, S, P, C, M, N, Q] + factors: [R=1, S=1, P=1] diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/mapping.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/mapping.yaml new file mode 100644 index 00000000..1fced428 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/mapping.yaml @@ -0,0 +1,62 @@ + +mapping: + # certain buffer only stores certain datatypes + - target: DRAM + type: temporal + permutation: [R, S, P, C, M, N, Q] + factors: [R=1, S=1, P=1, C=64, M=6, N=1, Q=1] + - target: DRAM + type: dataspace + keep: [Weights, Inputs, Outputs] + + + # only allow fanout of M, Q out from glb + - target: PE_column + type: spatial + split: 7 + permutation: [N, C, P, R, S, Q, M] + factors: [N=1, C=1, P=1, R=1, S=1, Q=0, M=1] + - target: shared_glb + type: temporal + permutation: [Q, R, S, C, P, N, M] + factors: [Q=1, R=1, S=1, P=0, C=1, N=4, M=1] + - target: shared_glb + type: dataspace + bypass: [Weights] + keep: [Inputs, Outputs] + + - target: PE + type: spatial + split: 4 + permutation: [N, P, Q, R, S, C, M] + factors: [N=1, P=1, Q=1, R=1, S=0, C=1, M=4] + + - target: ifmap_spad + type: dataspace + bypass: [Weights, Outputs] + keep: [Inputs] + - target: ifmap_spad + type: temporal + permutation: [N, M, C, P, Q, R, S] + factors: [N=1, M=1, C=1, P=1, Q=1, R=1, S=1] + + + # row stationary -> 1 row at a time + - target: weights_spad + type: temporal + permutation: [N, M, P, Q, S, C, R] + factors: [N=1, M=1, P=1, Q=1, S=1, R=0, C=4] + - target: weights_spad + type: dataspace + bypass: [Inputs, Outputs] + keep: [Weights] + + # one ofmap position but of different output channels + - target: psum_spad + type: temporal + permutation: [N, C, P, Q, R, S, M] + factors: [N=1, C=1, R=1, S=1, P=1, Q=1, M=16] + - target: psum_spad + type: dataspace + bypass: [Inputs, Weights] + keep: [Outputs] \ No newline at end of file diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/problem.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/problem.yaml new file mode 100644 index 00000000..319a4d85 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/problem.yaml @@ -0,0 +1,63 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 384 + N: 4 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: + Inputs: {distribution: fixed_structured, density: 0.275} + Weights: {distribution: fixed_structured, density: 0.446133} + Outputs: {distribution: fixed_structured, density: 0.403} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..1b3ea1c2 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,809 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: eyeriss_168_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - read + - leak + - update + enabled: true + - name: shared_glb[1..1] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 0 + metadata_storage_width: 0 + metadata_datawidth: 0 + metadata_counter_width: 9 + decompression_supported: true + compression_supported: true + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - read + - leak + - update + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 17 + n_banks: 1 + datawidth: 17 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - read + - leak + - update + enabled: true + - name: weights_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - read + - leak + - update + enabled: true + - name: psum_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 24 + width: 16 + n_banks: 1 + datawidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - write + - read + - leak + - update + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: DRAM + type: temporal + permutation: RSPCMNQ + factors: R=1,S=1,P=1,C=64,M=6,N=1,Q=1 + - target: DRAM + type: bypass + keep: + - Weights + - Inputs + - Outputs + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - target: shared_glb + type: temporal + permutation: QRSCPNM + factors: Q=1,R=1,S=1,P=0,C=1,N=4,M=1 + - type: spatial + target: inter_PE_column_spatial + factors: N=1,C=1,P=1,R=1,S=1,Q=0,M=1 + permutation: NCPRSQM + split: 7 + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + target: inter_PE_spatial + factors: N=1,P=1,Q=1,R=1,S=0,C=1,M=4 + permutation: NPQRSCM + split: 4 + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + target: ifmap_spad + bypass: + - Weights + - Outputs + - permutation: NMCPQRS + factors: N=1,M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + target: weights_spad + bypass: + - Inputs + - Outputs + - permutation: NMPQSCR + factors: N=1,M=1,P=1,Q=1,S=1,R=0,C=4 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + target: psum_spad + bypass: + - Inputs + - Weights + - permutation: NCPQRSM + factors: N=1,C=1,R=1,S=1,P=1,Q=1,M=16 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 384 + N: 4 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: + Inputs: + distribution: fixed_structured + density: 0.275 + band_width: 0 + workload_tensor_size: 0 + Weights: + distribution: fixed_structured + density: 0.446133 + band_width: 0 + workload_tensor_size: 0 + Outputs: + distribution: fixed_structured + density: 0.403 + band_width: 0 + workload_tensor_size: 0 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: Inputs + ranks: + - format: UOP + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + - format: RLE + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + - name: Outputs + ranks: + - format: UOP + flattened_rankIDs: + - - P + - M + - N + - Q + - format: RLE + flattened_rankIDs: + - - P + - M + - N + - Q + name: DRAM + - action_optimization: + - type: gating + options: + - target: Weights + condition_on: + - Inputs + name: weights_spad +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..ba9ef5cd --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: eyeriss_168_top_level.DRAM[1..1] + area: 0.0 + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: eyeriss_168_top_level.shared_glb[1..1] + area: 348892.5 + - name: eyeriss_168_top_level.ifmap_spad[1..168] + area: 171.058682 + - name: eyeriss_168_top_level.weights_spad[1..168] + area: 14736.91 + - name: eyeriss_168_top_level.psum_spad[1..168] + area: 600.798281 + - name: eyeriss_168_top_level.mac[1..168] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..ae545e2d --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,59 @@ +ART_summary: + version: '0.4' + table_summary: + - name: eyeriss_168_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy_table + - name: eyeriss_168_top_level.shared_glb[1..1] + area: 348892.5 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.ifmap_spad[1..168] + area: 171.058682 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.weights_spad[1..168] + area: 14736.91 + primitive_estimations: + - name: storage.storage[1..7168] + estimator: Library + - name: storage.comparator[1..224] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.psum_spad[1..168] + area: 600.798281 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.mac[1..168] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..11236a8b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,104 @@ +ERT: + version: '0.4' + tables: + - name: eyeriss_168_top_level.DRAM[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: eyeriss_168_top_level.shared_glb[1..1] + actions: + - name: read + arguments: {} + energy: 28.426775 + - name: write + arguments: {} + energy: 23.503475 + - name: update + arguments: {} + energy: 23.503475 + - name: metadata_read + arguments: {} + energy: 0.006562 + - name: metadata_write + arguments: {} + energy: 0.006562 + - name: metadata_update + arguments: {} + energy: 0.006562 + - name: leak + arguments: {} + energy: 0.004781 + - name: decompression_count + arguments: {} + energy: 0.059062 + - name: compression_count + arguments: {} + energy: 0.059062 + - name: eyeriss_168_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.297769 + - name: read + arguments: {} + energy: 0.339229 + - name: leak + arguments: {} + energy: 0.000735 + - name: update + arguments: {} + energy: 0.297769 + - name: eyeriss_168_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 3.35314 + - name: read + arguments: {} + energy: 3.49714 + - name: leak + arguments: {} + energy: 0.003961 + - name: update + arguments: {} + energy: 3.35314 + - name: eyeriss_168_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.47162 + - name: read + arguments: {} + energy: 0.538625 + - name: leak + arguments: {} + energy: 0.00102 + - name: update + arguments: {} + energy: 0.47162 + - name: eyeriss_168_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..00382880 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,137 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: eyeriss_168_top_level.DRAM[1..1] + actions: + - name: write + energy: 512.0 + - name: read + energy: 512.0 + - name: leak + energy: 0.0 + - name: update + energy: 512.0 + primitive_estimation(s): + - name: eyeriss_168_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: eyeriss_168_top_level.shared_glb[1..1] + actions: + - name: read + energy: 28.426775 + - name: write + energy: 23.503475 + - name: update + energy: 23.503475 + - name: metadata_read + energy: 0.006562 + - name: metadata_write + energy: 0.006562 + - name: metadata_update + energy: 0.006562 + - name: leak + energy: 0.004781 + - name: decompression_count + energy: 0.059062 + - name: compression_count + energy: 0.059062 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: Aladdin_table + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: eyeriss_168_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.297769 + - name: read + energy: 0.339229 + - name: leak + energy: 0.000735 + - name: update + energy: 0.297769 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.weights_spad[1..168] + actions: + - name: write + energy: 3.35314 + - name: read + energy: 3.49714 + - name: leak + energy: 0.003961 + - name: update + energy: 3.35314 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..224] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..7168] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.47162 + - name: read + energy: 0.538625 + - name: leak + energy: 0.00102 + - name: update + energy: 0.47162 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.mac[1..168] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..91e1402f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,853 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:57 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:57 INFO Adding required action "write" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "read" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "leak" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "update" to class DRAM +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.53125. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.1875. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 12. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.099609375. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.1439593692898605. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.099609375. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 224. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.375. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 24. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.1875. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.23265607289158186. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.1875. +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:57 INFO Getting all estimators in module +2024-05-29 16:49:57 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:57 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:57 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:57 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:57 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:57 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:57 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:57 INFO Found estimator plug-in: Library () +2024-05-29 16:49:57 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:57 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated storage."width" as "width" = 64. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "depth" = 12800. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage.storage."width" as "width" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage."depth" as "depth" = 12800. +2024-05-29 16:49:57 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 0. +2024-05-29 16:49:57 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 0. +2024-05-29 16:49:57 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."width" as "width" = 0. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."depth" as "depth" = 0. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 9. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.shared_glb[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.shared_glb[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.099609375. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1439593692898605. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.1439593692898605. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.099609375. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1439593692898605. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 7168. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..7168]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..224]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..224]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 7168. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.1875. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.23265607289158186. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.23265607289158186. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.1875. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.23265607289158186. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:57 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:57 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.8334900000000002e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgljvwmtw +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp538vgr5b +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgljvwmtw >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp538vgr5b 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.3411600000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplaoc4d3p +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdbba00y_ +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplaoc4d3p >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdbba00y_ 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.3411600000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphk191_vp +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpeiqd35rb +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmphk191_vp >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpeiqd35rb 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0p with accuracy 70%. +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0p with accuracy 70%. +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0p with accuracy 70%. +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.62474e-15 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppxejhmdr +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp19sqxy32 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppxejhmdr >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp19sqxy32 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.60037 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.00100625p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 7.1875e-05p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0002875p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.000575p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.000359375p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 WARNING No action counts are specified as yaml input +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=14, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 3.4862399999999996e-07 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprbsp8j9k +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpiokqefzb +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprbsp8j9k >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpiokqefzb 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 78.3125u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 5.59375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 22.375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 44.75u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 27.96875u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO flattened architecture is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:58 INFO energy reference table is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:58 INFO energy reference table summary is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:58 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:58 INFO area reference table is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:58 INFO area reference table summary is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..96fed3be --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,252 @@ +architecture: + version: '0.4' + local: + - name: eyeriss_168_top_level.DRAM[1..1] + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - read + - leak + - update + enabled: true + - name: eyeriss_168_top_level.shared_glb[1..1] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 0 + metadata_storage_width: 0 + metadata_datawidth: 0 + metadata_counter_width: 9 + decompression_supported: true + compression_supported: true + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + required_actions: + - write + - read + - leak + - update + enabled: true + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: eyeriss_168_top_level.ifmap_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 17 + n_banks: 1 + datawidth: 17 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.53125 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.099609375 + dynamic_energy_scale: 0.1439593692898605 + static_energy_scale: 0.099609375 + n_rdwr_ports: 1 + required_actions: + - write + - read + - leak + - update + enabled: true + - name: eyeriss_168_top_level.weights_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 224 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 224 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - write + - read + - leak + - update + enabled: true + - name: eyeriss_168_top_level.psum_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 24 + width: 16 + n_banks: 1 + datawidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.375 + real_depth: 24 + area_scale: 0.1875 + dynamic_energy_scale: 0.23265607289158186 + static_energy_scale: 0.1875 + n_rdwr_ports: 1 + required_actions: + - write + - read + - leak + - update + enabled: true + - name: eyeriss_168_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..8fc3e64e --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 64 M 6 R 1 S 1 N 1 P 1 Q 1 +CM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 1 M 1 R 1 S 1 N 4 P 13 Q 1 +PN +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 13 +Q +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 1 M 4 R 1 S 3 N 1 P 1 Q 1 +SM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 4 M 1 R 3 S 1 N 1 P 1 Q 1 +CR +t0 +C 1 M 16 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/04.2.1-eyeriss-like-gating/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/arch.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/arch.yaml new file mode 100644 index 00000000..6aabe98f --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/arch.yaml @@ -0,0 +1,157 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: eyeriss_168 + attributes: + technology: "45nm" + + - !Component + name: DRAM + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + sparse_optimizations: + representation_format: + data_spaces: + - name: Inputs + ranks: + - format: UOP + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + - format: RLE + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + + - name: Outputs + ranks: + - format: UOP + flattened_rankIDs: [ [P, M, N, Q] ] + - format: RLE + flattened_rankIDs: [ [P, M, N, Q] ] + + - !Component + name: shared_glb + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 0 + metadata_storage_width: 0 + metadata_datawidth: 0 + metadata_counter_width: 9 + # Note that the two diretives below are describing + # whether this level can compress and decompress data transfers + # from itself to its parent (not child) + decompression_supported: true # from DRAM decompression + compression_supported: true # to DRAM compression + constraints: + dataspace: {keep: [Inputs, Outputs], bypass: [Weights]} + + - !Container # Each column of PEs produces a different psum row + name: PE_column + spatial: {meshX: 14} + constraints: + spatial: + permutation: [N, C, P, R, S, Q, M] + factors: [N=1, C=1, P=1, R=1, S=1] + split: 7 + + - !Container # Each PE in the column receives a different filter row + name: PE + spatial: {meshY: 12} + constraints: + spatial: + split: 4 + permutation: [N, P, Q, R, S, C, M] + factors: [N=1, P=1, Q=1, R=1] + + - !Parallel # Input/Output/Weight scratchpads in parallel + nodes: + - !Component + name: ifmap_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 17 # actual data + 1bit mask + n_banks: 1 + datawidth: 17 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Inputs]} + temporal: + permutation: [N, M, C, P, Q, R, S] + factors: [M=1, C=1, P=1, Q=1, R=1, S=1] + + - !Component + name: weights_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Weights]} + temporal: + permutation: [N, M, P, Q, S, C, R] + factors: [M=1, P=1, Q=1, S=1] + sparse_optimizations: + action_optimization: + - type: gating + options: + - target: Weights + condition_on: [ Inputs ] + + - !Component + name: psum_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 24 + width: 16 + n_banks: 1 + datawidth: 16 + constraints: + dataspace: {keep: [Outputs]} + temporal: + permutation: [N, C, P, Q, R, S, M] + factors: [C=1, R=1, S=1, P=1, Q=1] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + +# +# The following constraints are not limitations of the hardware architecture and dataflow, +# but help limit the search space to speed up search +# + +mapspace_constraints: + version: 0.4 + targets: + # intuitive optimization for row stationary + # -> process a row/col of the output before going to the next one + - target: shared_glb + type: temporal + permutation: [Q, R, S, C, P, N, M] + factors: [Q=1, R=1, S=1, P=0] + # intuitive optimization to reduce map space size + - target: DRAM + type: temporal + permutation: [R, S, P, C, M, N, Q] + factors: [R=1, S=1, P=1] diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/problem.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/problem.yaml new file mode 100644 index 00000000..319a4d85 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/problem.yaml @@ -0,0 +1,63 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 384 + N: 4 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: + Inputs: {distribution: fixed_structured, density: 0.275} + Weights: {distribution: fixed_structured, density: 0.446133} + Outputs: {distribution: fixed_structured, density: 0.403} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..c53bfdb2 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,795 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: eyeriss_168_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: shared_glb[1..1] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 0 + metadata_storage_width: 0 + metadata_datawidth: 0 + metadata_counter_width: 9 + decompression_supported: true + compression_supported: true + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 17 + n_banks: 1 + datawidth: 17 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: weights_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: psum_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 24 + width: 16 + n_banks: 1 + datawidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - update + - leak + - read + - write + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - type: spatial + factors: N=1,C=1,P=1,R=1,S=1 + permutation: NCPRSQM + split: 7 + target: inter_PE_column_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + factors: N=1,P=1,Q=1,R=1 + permutation: NPQRSCM + split: 4 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + bypass: + - Outputs + - Weights + target: ifmap_spad + - permutation: NMCPQRS + factors: M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + bypass: + - Inputs + - Outputs + target: weights_spad + - permutation: NMPQSCR + factors: M=1,P=1,Q=1,S=1 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + bypass: + - Inputs + - Weights + target: psum_spad + - permutation: NCPQRSM + factors: C=1,R=1,S=1,P=1,Q=1 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 384 + N: 4 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: + Inputs: + distribution: fixed_structured + density: 0.275 + band_width: 0 + workload_tensor_size: 0 + Weights: + distribution: fixed_structured + density: 0.446133 + band_width: 0 + workload_tensor_size: 0 + Outputs: + distribution: fixed_structured + density: 0.403 + band_width: 0 + workload_tensor_size: 0 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: Inputs + ranks: + - format: UOP + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + - format: RLE + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + - name: Outputs + ranks: + - format: UOP + flattened_rankIDs: + - - P + - M + - N + - Q + - format: RLE + flattened_rankIDs: + - - P + - M + - N + - Q + name: DRAM + - action_optimization: + - type: gating + options: + - target: Weights + condition_on: + - Inputs + name: weights_spad +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..ba9ef5cd --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: eyeriss_168_top_level.DRAM[1..1] + area: 0.0 + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: eyeriss_168_top_level.shared_glb[1..1] + area: 348892.5 + - name: eyeriss_168_top_level.ifmap_spad[1..168] + area: 171.058682 + - name: eyeriss_168_top_level.weights_spad[1..168] + area: 14736.91 + - name: eyeriss_168_top_level.psum_spad[1..168] + area: 600.798281 + - name: eyeriss_168_top_level.mac[1..168] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..ae545e2d --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,59 @@ +ART_summary: + version: '0.4' + table_summary: + - name: eyeriss_168_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy_table + - name: eyeriss_168_top_level.shared_glb[1..1] + area: 348892.5 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.ifmap_spad[1..168] + area: 171.058682 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.weights_spad[1..168] + area: 14736.91 + primitive_estimations: + - name: storage.storage[1..7168] + estimator: Library + - name: storage.comparator[1..224] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.psum_spad[1..168] + area: 600.798281 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.mac[1..168] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..ae6720e3 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,104 @@ +ERT: + version: '0.4' + tables: + - name: eyeriss_168_top_level.DRAM[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: eyeriss_168_top_level.shared_glb[1..1] + actions: + - name: read + arguments: {} + energy: 28.426775 + - name: write + arguments: {} + energy: 23.503475 + - name: update + arguments: {} + energy: 23.503475 + - name: metadata_read + arguments: {} + energy: 0.006562 + - name: metadata_write + arguments: {} + energy: 0.006562 + - name: metadata_update + arguments: {} + energy: 0.006562 + - name: leak + arguments: {} + energy: 0.004781 + - name: decompression_count + arguments: {} + energy: 0.059062 + - name: compression_count + arguments: {} + energy: 0.059062 + - name: eyeriss_168_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.297769 + - name: read + arguments: {} + energy: 0.339229 + - name: leak + arguments: {} + energy: 0.000735 + - name: update + arguments: {} + energy: 0.297769 + - name: eyeriss_168_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 3.35314 + - name: read + arguments: {} + energy: 3.49714 + - name: leak + arguments: {} + energy: 0.003961 + - name: update + arguments: {} + energy: 3.35314 + - name: eyeriss_168_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.47162 + - name: read + arguments: {} + energy: 0.538625 + - name: leak + arguments: {} + energy: 0.00102 + - name: update + arguments: {} + energy: 0.47162 + - name: eyeriss_168_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..e7d57392 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,137 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: eyeriss_168_top_level.DRAM[1..1] + actions: + - name: update + energy: 512.0 + - name: leak + energy: 0.0 + - name: read + energy: 512.0 + - name: write + energy: 512.0 + primitive_estimation(s): + - name: eyeriss_168_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: eyeriss_168_top_level.shared_glb[1..1] + actions: + - name: read + energy: 28.426775 + - name: write + energy: 23.503475 + - name: update + energy: 23.503475 + - name: metadata_read + energy: 0.006562 + - name: metadata_write + energy: 0.006562 + - name: metadata_update + energy: 0.006562 + - name: leak + energy: 0.004781 + - name: decompression_count + energy: 0.059062 + - name: compression_count + energy: 0.059062 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: Aladdin_table + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: eyeriss_168_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.297769 + - name: read + energy: 0.339229 + - name: leak + energy: 0.000735 + - name: update + energy: 0.297769 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.weights_spad[1..168] + actions: + - name: write + energy: 3.35314 + - name: read + energy: 3.49714 + - name: leak + energy: 0.003961 + - name: update + energy: 3.35314 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..224] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..7168] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.47162 + - name: read + energy: 0.538625 + - name: leak + energy: 0.00102 + - name: update + energy: 0.47162 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.mac[1..168] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..13efdcb8 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,853 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Adding required action "update" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "leak" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "read" to class DRAM +2024-05-29 16:49:56 INFO Adding required action "write" to class DRAM +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.53125. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.1875. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 12. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.099609375. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.1439593692898605. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.099609375. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 224. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:56 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.375. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 24. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.1875. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.23265607289158186. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.1875. +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:57 INFO Getting all estimators in module +2024-05-29 16:49:57 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:57 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:57 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:57 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:57 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:57 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:57 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:57 INFO Found estimator plug-in: Library () +2024-05-29 16:49:57 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:57 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated storage."width" as "width" = 64. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "depth" = 12800. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage.storage."width" as "width" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage."depth" as "depth" = 12800. +2024-05-29 16:49:57 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 0. +2024-05-29 16:49:57 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 0. +2024-05-29 16:49:57 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."width" as "width" = 0. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."depth" as "depth" = 0. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 9. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.shared_glb[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.shared_glb[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.099609375. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1439593692898605. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.1439593692898605. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.099609375. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1439593692898605. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 7168. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..7168]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..224]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..224]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 7168. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.1875. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 5. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.23265607289158186. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.23265607289158186. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.1875. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.23265607289158186. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:57 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:57 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.8334900000000002e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnyedwx76 +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7p11di01 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpnyedwx76 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7p11di01 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.3411600000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6cbb96uv +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpv0k_m8ys +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6cbb96uv >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpv0k_m8ys 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.3411600000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_kficf7t +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbwuy5jyx +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_kficf7t >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbwuy5jyx 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0p with accuracy 70%. +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0p with accuracy 70%. +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0p with accuracy 70%. +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0065625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.62474e-15 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppn41yjih +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvkutrs85 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppn41yjih >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpvkutrs85 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.60037 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.00100625p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 7.1875e-05p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0002875p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.000575p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.000359375p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0328125p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 WARNING No action counts are specified as yaml input +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=14, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 3.4862399999999996e-07 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplces1b5y +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5q_tqccp +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmplces1b5y >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5q_tqccp 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 78.3125u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for SRAM(width=0, depth=0, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:49:58 INFO | CactiSRAM with accuracy 80% estimating value: AssertionError: width must be an integer >0. Got 0. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=1, precision=1, width=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 5.59375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 22.375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 44.75u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for intadder(n_bits=5, precision=5, width=5, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 27.96875u^2 with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:58 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO flattened architecture is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:58 INFO energy reference table is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:58 INFO energy reference table summary is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:58 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:58 INFO area reference table is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:58 INFO area reference table summary is saved to: +2024-05-29 16:49:58 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..a78ad382 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,252 @@ +architecture: + version: '0.4' + local: + - name: eyeriss_168_top_level.DRAM[1..1] + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: eyeriss_168_top_level.shared_glb[1..1] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 0 + metadata_storage_width: 0 + metadata_datawidth: 0 + metadata_counter_width: 9 + decompression_supported: true + compression_supported: true + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: eyeriss_168_top_level.ifmap_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 17 + n_banks: 1 + datawidth: 17 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.53125 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.099609375 + dynamic_energy_scale: 0.1439593692898605 + static_energy_scale: 0.099609375 + n_rdwr_ports: 1 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: eyeriss_168_top_level.weights_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 224 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 224 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: eyeriss_168_top_level.psum_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 24 + width: 16 + n_banks: 1 + datawidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.375 + real_depth: 24 + area_scale: 0.1875 + dynamic_energy_scale: 0.23265607289158186 + static_energy_scale: 0.1875 + n_rdwr_ports: 1 + required_actions: + - update + - leak + - read + - write + enabled: true + - name: eyeriss_168_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..b5a69068 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 4 M 3 R 1 S 1 N 1 P 13 Q 1 +CPM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 8 M 2 R 1 S 3 N 4 P 1 Q 13 +NQCSM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 8 R 1 S 1 N 1 P 1 Q 1 +M +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 2 M 4 R 1 S 1 N 1 P 1 Q 1 +CM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 4 M 1 R 3 S 1 N 1 P 1 Q 1 +CR +t0 +C 1 M 2 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/04.2.2-eyeriss-like-gating-mapspace-search/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/arch.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/arch.yaml new file mode 100644 index 00000000..bc28375d --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/arch.yaml @@ -0,0 +1,159 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: eyeriss_168 + attributes: + technology: "45nm" + + - !Component + name: DRAM + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + sparse_optimizations: + representation_format: + data_spaces: + - name: Inputs + ranks: + - format: UOP + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + - format: UOP + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + - format: RLE + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + + - name: Outputs + ranks: + - format: UOP + flattened_rankIDs: [ [P, M, N, Q] ] + - format: RLE + flattened_rankIDs: [ [P, M, N, Q] ] + + + - !Component + name: shared_glb + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 4096 + metadata_storage_width: 32 + metadata_datawidth: 4 + metadata_counter_width: 9 + # Note that the two diretives below are describing + # whether this level can compress and decompress data transfers + # from itself to its parent (not child) + decompression_supported: true # from DRAM decompression + compression_supported: true # to DRAM compression + constraints: + dataspace: {keep: [Inputs, Outputs], bypass: [Weights]} + sparse_optimizations: + representation_format: + data_spaces: + - name: Inputs + ranks: + - format: UOP + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + - format: RLE + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + + - !Container # Each column of PEs produces a different psum row + name: PE_column + spatial: {meshX: 14} + constraints: + spatial: + permutation: [N, C, P, R, S, Q, M] + factors: [N=1, C=1, P=1, R=1, S=1] + split: 7 + + - !Container # Each PE in the column receives a different filter row + name: PE + spatial: {meshY: 12} + constraints: + spatial: + split: 4 + permutation: [N, P, Q, R, S, C, M] + factors: [N=1, P=1, Q=1, R=1] + + - !Parallel # Input/Output/Weight scratchpads in parallel + nodes: + - !Component + name: ifmap_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 16 # the data + n_banks: 1 + datawidth: 16 + metadata_storage_width: 8 + metadata_storage_depth: 4 + metadata_datawidth: 4 # rle metadata + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Inputs]} + temporal: + permutation: [N, M, C, P, Q, R, S] + factors: [N=1, M=1, C=1, P=1, Q=1, R=1, S=1] + sparse_optimizations: + representation_format: + data_spaces: + - name: Inputs + ranks: + - format: RLE + flattened_rankIDs: [ [R, S, P, C, M, N, Q] ] + + - !Component + name: weights_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Weights]} + temporal: + permutation: [N, M, P, Q, S, C, R] + factors: [N=1, M=1, P=1, Q=1, S=1] + sparse_optimizations: + action_optimization: + - type: skipping + options: + - target: Weights + condition_on: [ Inputs ] + + - !Component + name: psum_spad + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + constraints: + dataspace: {keep: [Outputs]} + temporal: + permutation: [N, C, P, Q, R, S, M] + factors: [N=1, C=1, R=1, S=1, P=1, Q=1] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/problem.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/problem.yaml new file mode 100644 index 00000000..319a4d85 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/problem.yaml @@ -0,0 +1,63 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 384 + N: 4 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: + Inputs: {distribution: fixed_structured, density: 0.275} + Weights: {distribution: fixed_structured, density: 0.446133} + Outputs: {distribution: fixed_structured, density: 0.403} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/parsed-processed-input.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/parsed-processed-input.yaml new file mode 100644 index 00000000..020e9b2e --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/parsed-processed-input.yaml @@ -0,0 +1,844 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: eyeriss_168_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: shared_glb[1..1] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 4096 + metadata_storage_width: 32 + metadata_datawidth: 4 + metadata_counter_width: 9 + decompression_supported: true + compression_supported: true + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 16 + n_banks: 1 + datawidth: 16 + metadata_storage_width: 8 + metadata_storage_depth: 4 + metadata_datawidth: 4 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: weights_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: psum_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - read + - update + - leak + - write + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - type: spatial + factors: N=1,C=1,P=1,R=1,S=1 + permutation: NCPRSQM + split: 7 + target: inter_PE_column_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + factors: N=1,P=1,Q=1,R=1 + permutation: NPQRSCM + split: 4 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + bypass: + - Outputs + - Weights + target: ifmap_spad + - permutation: NMCPQRS + factors: N=1,M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + bypass: + - Outputs + - Inputs + target: weights_spad + - permutation: NMPQSCR + factors: N=1,M=1,P=1,Q=1,S=1 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + bypass: + - Weights + - Inputs + target: psum_spad + - permutation: NCPQRSM + factors: N=1,C=1,R=1,S=1,P=1,Q=1 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 384 + N: 4 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: + Inputs: + distribution: fixed_structured + density: 0.275 + band_width: 0 + workload_tensor_size: 0 + Weights: + distribution: fixed_structured + density: 0.446133 + band_width: 0 + workload_tensor_size: 0 + Outputs: + distribution: fixed_structured + density: 0.403 + band_width: 0 + workload_tensor_size: 0 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_RF + attributes: + width: width + depth: depth + - name: metadata_storage + class: smartbuffer_RF + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_metadata + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + metadata_storage_width: "must_specify" + metadata_storage_depth: "must_specify" + n_rdwr_ports: 1 + metadata_counter_width: 0 + subcomponents: + - name: storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: width + depth: depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_storage + class: smartbuffer_SRAM + attributes: + technology: technology + width: metadata_storage_width + depth: metadata_storage_depth + n_rdwr_ports: n_rdwr_ports + - name: metadata_counters[0..1] + class: intadder + attributes: + technology: technology + width: metadata_counter_width + actions: + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: metadata_read + subcomponents: + - name: metadata_storage + actions: + - name: read + - name: metadata_write + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: metadata_update + subcomponents: + - name: metadata_storage + actions: + - name: write + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: metadata_storage + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: decompression_count + subcomponents: + - name: metadata_counters[1] + actions: + - name: add + - name: compression_count + subcomponents: + - name: metadata_counters[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + n_rw_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + attributes: + width: width + depth: depth + n_rw_ports: n_rw_ports + technology: technology + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(depth))) if depth >= 1 else 1 + precision: max(1, ceil(log2(depth))) if depth >= 1 else 1 + width: max(1, ceil(log2(depth))) if depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + width: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +sparse_optimizations: + targets: + - representation_format: + data_spaces: + - name: Inputs + ranks: + - format: UOP + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + - format: UOP + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + - format: RLE + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + - name: Outputs + ranks: + - format: UOP + flattened_rankIDs: + - - P + - M + - N + - Q + - format: RLE + flattened_rankIDs: + - - P + - M + - N + - Q + name: DRAM + - representation_format: + data_spaces: + - name: Inputs + ranks: + - format: UOP + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + - format: RLE + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + name: shared_glb + - representation_format: + data_spaces: + - name: Inputs + ranks: + - format: RLE + flattened_rankIDs: + - - R + - S + - P + - C + - M + - N + - Q + name: ifmap_spad + - action_optimization: + - type: skipping + options: + - target: Weights + condition_on: + - Inputs + name: weights_spad +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + timeout: 10000 + victory_condition: 100 + algorithm: random + diagnostics: false + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ART.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..a6566124 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: eyeriss_168_top_level.DRAM[1..1] + area: 0.0 + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: eyeriss_168_top_level.shared_glb[1..1] + area: 399033.2625 + - name: eyeriss_168_top_level.ifmap_spad[1..168] + area: 151.772812 + - name: eyeriss_168_top_level.weights_spad[1..168] + area: 14736.91 + - name: eyeriss_168_top_level.psum_spad[1..168] + area: 14736.91 + - name: eyeriss_168_top_level.mac[1..168] + area: 417.0 diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..b6365a1a --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,59 @@ +ART_summary: + version: '0.4' + table_summary: + - name: eyeriss_168_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy_table + - name: eyeriss_168_top_level.shared_glb[1..1] + area: 399033.2625 + primitive_estimations: + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.ifmap_spad[1..168] + area: 151.772812 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.weights_spad[1..168] + area: 14736.91 + primitive_estimations: + - name: storage.storage[1..7168] + estimator: Library + - name: storage.comparator[1..224] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.psum_spad[1..168] + area: 14736.91 + primitive_estimations: + - name: storage.storage[1..7168] + estimator: Library + - name: storage.comparator[1..224] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.mac[1..168] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ERT.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..2b5516bf --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ERT.yaml @@ -0,0 +1,104 @@ +ERT: + version: '0.4' + tables: + - name: eyeriss_168_top_level.DRAM[1..1] + actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: eyeriss_168_top_level.shared_glb[1..1] + actions: + - name: read + arguments: {} + energy: 28.426775 + - name: write + arguments: {} + energy: 23.503475 + - name: update + arguments: {} + energy: 23.503475 + - name: metadata_read + arguments: {} + energy: 10.05676 + - name: metadata_write + arguments: {} + energy: 6.94631 + - name: metadata_update + arguments: {} + energy: 6.94631 + - name: leak + arguments: {} + energy: 0.006833 + - name: decompression_count + arguments: {} + energy: 0.059062 + - name: compression_count + arguments: {} + energy: 0.059062 + - name: eyeriss_168_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.281797 + - name: read + arguments: {} + energy: 0.320819 + - name: leak + arguments: {} + energy: 0.000726 + - name: update + arguments: {} + energy: 0.281797 + - name: eyeriss_168_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 3.35314 + - name: read + arguments: {} + energy: 3.49714 + - name: leak + arguments: {} + energy: 0.003961 + - name: update + arguments: {} + energy: 3.35314 + - name: eyeriss_168_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 3.35314 + - name: read + arguments: {} + energy: 3.49714 + - name: leak + arguments: {} + energy: 0.003961 + - name: update + arguments: {} + energy: 3.35314 + - name: eyeriss_168_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..87ca8791 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,137 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: eyeriss_168_top_level.DRAM[1..1] + actions: + - name: read + energy: 512.0 + - name: update + energy: 512.0 + - name: leak + energy: 0.0 + - name: write + energy: 512.0 + primitive_estimation(s): + - name: eyeriss_168_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: eyeriss_168_top_level.shared_glb[1..1] + actions: + - name: read + energy: 28.426775 + - name: write + energy: 23.503475 + - name: update + energy: 23.503475 + - name: metadata_read + energy: 10.05676 + - name: metadata_write + energy: 6.94631 + - name: metadata_update + energy: 6.94631 + - name: leak + energy: 0.006833 + - name: decompression_count + energy: 0.059062 + - name: compression_count + energy: 0.059062 + primitive_estimation(s): + - name: storage.storage + estimator: CactiSRAM + - name: storage.address_generators[1] + estimator: Aladdin_table + - name: storage.address_generators[0] + estimator: Aladdin_table + - name: metadata_storage.storage + estimator: CactiSRAM + - name: metadata_storage.address_generators[1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0] + estimator: Aladdin_table + - name: storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_storage.address_generators[0..1] + estimator: Aladdin_table + - name: metadata_counters[1] + estimator: Aladdin_table + - name: metadata_counters[0] + estimator: Aladdin_table + - name: eyeriss_168_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.281797 + - name: read + energy: 0.320819 + - name: leak + energy: 0.000726 + - name: update + energy: 0.281797 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.weights_spad[1..168] + actions: + - name: write + energy: 3.35314 + - name: read + energy: 3.49714 + - name: leak + energy: 0.003961 + - name: update + energy: 3.35314 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..224] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..7168] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.psum_spad[1..168] + actions: + - name: write + energy: 3.35314 + - name: read + energy: 3.49714 + - name: leak + energy: 0.003961 + - name: update + energy: 3.35314 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..224] + estimator: Library + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: storage.storage[1..7168] + estimator: Library + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_168_top_level.mac[1..168] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.accelergy.log b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..85f45f8e --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.accelergy.log @@ -0,0 +1,888 @@ +2024-05-29 16:49:56 INFO _ _ +2024-05-29 16:49:56 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:49:56 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:49:56 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:49:56 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:49:56 INFO |___/ |___/ +2024-05-29 16:49:56 INFO generating outputs according to the following specified output flags... +2024-05-29 16:49:56 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:49:56 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:49:56 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:49:56 INFO config file located: +2024-05-29 16:49:56 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:49:56 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:49:56 WARNING Please update the file to the latest version. +2024-05-29 16:49:56 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/parsed-processed-input.yaml for architecture info +2024-05-29 16:49:56 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/parsed-processed-input.yaml for compound_components info +2024-05-29 16:49:57 INFO YAML Setting environment variable TIMELOOP_HIDE_INCONSEQUENTIAL_STATS to 1 +2024-05-29 16:49:57 INFO Adding required action "read" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "update" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "leak" to class DRAM +2024-05-29 16:49:57 INFO Adding required action "write" to class DRAM +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.1875. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 12. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.09375. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.1354911710963393. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.09375. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 224. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 224. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.5. +2024-05-29 16:49:57 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.5. +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:49:57 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:49:57 INFO Getting all estimators in module +2024-05-29 16:49:57 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:49:57 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:49:57 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:49:57 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:49:57 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:49:57 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:49:57 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:49:57 INFO Found estimator plug-in: Library () +2024-05-29 16:49:57 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:49:57 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:49:57 INFO Calculated storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated storage."width" as "width" = 64. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "depth" = 12800. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage.storage."width" as "width" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage."depth" as "depth" = 12800. +2024-05-29 16:49:57 INFO Calculated storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 14. +2024-05-29 16:49:57 INFO Calculated storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_storage."width" as "metadata_storage_width" = 32. +2024-05-29 16:49:57 INFO Calculated metadata_storage."depth" as "metadata_storage_depth" = 4096. +2024-05-29 16:49:57 INFO Calculated metadata_storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."width" as "width" = 32. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."depth" as "depth" = 4096. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."n_rw_ports" as "n_rw_ports" = 1. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_storage.storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."n_bits" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 12. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."precision" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 12. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."width" as "max(1, ceil(log2(depth))) if depth >= 1 else 1" = 12. +2024-05-29 16:49:57 INFO Calculated metadata_storage.address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated metadata_counters[0..1]."technology" as "technology" = 45nm. +2024-05-29 16:49:57 INFO Calculated metadata_counters[0..1]."width" as "metadata_counter_width" = 9. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.shared_glb[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.shared_glb[1..1].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.09375. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.09375. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 7168. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..7168]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..224]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..224]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 7168. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:49:57 INFO Calculated storage."depth" as "memory_depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:49:57 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.area_scale as "area_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 7168. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated storage.storage[1..7168]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..224]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2024-05-29 16:49:57 INFO Calculated storage.comparator[1..224]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."width" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:49:57 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width*depth" = 7168. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated eyeriss_168_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:49:57 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:49:57 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:49:57 INFO Calculated list index expression as "depth" = 224. +2024-05-29 16:49:57 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:49:57 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:49:57 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:57 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:49:57 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.8334900000000002e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpn9ma8zfr +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp308vqpms +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpn9ma8zfr >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp308vqpms 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO CactiSRAM estimated 2.3411600000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:57 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:57 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:57 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk6rci1so +2024-05-29 16:49:57 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpc8nr_ba0 +2024-05-29 16:49:57 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:57 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk6rci1so >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpc8nr_ba0 2>&1 +2024-05-29 16:49:57 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:57 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:57 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:57 INFO +2024-05-29 16:49:57 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.3411600000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjz33z3xq +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpfhxupmrz +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjz33z3xq >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpfhxupmrz 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.091875p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=32, depth=4096, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 9.97801e-12 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=16384 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsa2druym +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3hmzokey +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpsa2druym >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3hmzokey 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 29.061847243665426 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.07875p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=32, depth=4096, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 6.867560000000001e-12 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=16384 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpw332t6ha +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjc9ndgb9 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpw332t6ha >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjc9ndgb9 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 29.061847243665426 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.07875p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=32, depth=4096, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 6.867560000000001e-12 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=16384 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpf44o60f1 +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk50fvb83 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpf44o60f1 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk50fvb83 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 29.061847243665426 bits/second +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.07875p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 2.62474e-15 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9krcwybp +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm75wlfy4 +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp9krcwybp >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpm75wlfy4 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.60037 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.00100625p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for SRAM(width=32, depth=4096, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO CactiSRAM estimated 4.71185e-16 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:58 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:49:58 INFO | Calling CACTI with cache_size=16384 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:58 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppe8p6a52 +2024-05-29 16:49:58 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2mhbfrhl +2024-05-29 16:49:58 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:58 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppe8p6a52 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp2mhbfrhl 2>&1 +2024-05-29 16:49:58 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:58 INFO | Cache bandwidth: 29.061847243665426 bits/second +2024-05-29 16:49:58 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.1011 +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0008625p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0590625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0002875p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.02625p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.000575p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.000575p with accuracy 70%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Aladdin_table estimated 0.0525p with accuracy 70%. +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:49:58 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:58 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:49:58 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:49:58 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:49:58 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:58 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:58 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:49:58 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 WARNING No action counts are specified as yaml input +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for DRAM(width=64, datawidth=16, metadata_storage_width=60, metadata_datawidth=5, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, technology=45nm, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:49:58 INFO | Unused arguments (datawidth, metadata_storage_width, metadata_datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, technology, version, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (width) +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=14, meshY=1, version=0.4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:58 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:49:58 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:58 INFO +2024-05-29 16:49:58 INFO AREA ESTIMATION for SRAM(width=64, depth=12800, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 3.4862399999999996e-07 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=102400 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmlx_wjce +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7jz9viij +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpmlx_wjce >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7jz9viij 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 39.990752138567956 bits/second +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, width=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 78.3125u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for SRAM(width=32, depth=4096, n_rw_ports=1, technology=45nm, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:59 INFO CactiSRAM estimated 5.0017699999999995e-08 with accuracy 80%. Messages: +2024-05-29 16:49:59 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, n_rw_ports, technology) +2024-05-29 16:49:59 INFO | Calling CACTI with cache_size=16384 n_rw_ports=1 block_size=4 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:49:59 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp21d07ai0 +2024-05-29 16:49:59 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpkfwa2abx +2024-05-29 16:49:59 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:49:59 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp21d07ai0 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpkfwa2abx 2>&1 +2024-05-29 16:49:59 INFO | Cache bandwidth: 4.0 bits/cycle +2024-05-29 16:49:59 INFO | Cache bandwidth: 29.061847243665426 bits/second +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=12, precision=12, width=12, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 67.125u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(technology=45nm, width=9, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 50.34375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, width=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 22.375u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 44.75u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Aladdin_table estimated 44.75u^2 with accuracy 70%. Messages: +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling width from 32 to 16 +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO +2024-05-29 16:49:59 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:49:59 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:49:59 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:49:59 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:49:59 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:49:59 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:49:59 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:49:59 INFO | Multiplying by n_instances 1 +2024-05-29 16:49:59 INFO flattened architecture is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:49:59 INFO energy reference table is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:49:59 INFO energy reference table summary is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:49:59 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:49:59 INFO area reference table is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:49:59 INFO area reference table summary is saved to: +2024-05-29 16:49:59 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..079f4692 --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,255 @@ +architecture: + version: '0.4' + local: + - name: eyeriss_168_top_level.DRAM[1..1] + class: DRAM + attributes: + width: 64 + datawidth: 16 + metadata_storage_width: 60 + metadata_datawidth: 5 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: eyeriss_168_top_level.shared_glb[1..1] + class: storage + subclass: smartbuffer_metadata + attributes: + depth: 12800 + width: 64 + n_banks: 1 + read_bandwidth: 16 + write_bandwidth: 16 + datawidth: 16 + metadata_storage_depth: 4096 + metadata_storage_width: 32 + metadata_datawidth: 4 + metadata_counter_width: 9 + decompression_supported: true + compression_supported: true + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: eyeriss_168_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: eyeriss_168_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: eyeriss_168_top_level.ifmap_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 12 + width: 16 + n_banks: 1 + datawidth: 16 + metadata_storage_width: 8 + metadata_storage_depth: 4 + metadata_datawidth: 4 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: eyeriss_168_top_level.weights_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 224 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 224 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: eyeriss_168_top_level.psum_spad[1..168] + class: storage + subclass: smartbuffer_RF + attributes: + depth: 224 + width: 16 + n_banks: 1 + datawidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 224 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 224 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + - name: eyeriss_168_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "45nm" + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..d747d41b --- /dev/null +++ b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 16 M 8 R 1 S 3 N 2 P 13 Q 13 +QPSMNC +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 1 M 1 R 1 S 1 N 2 P 1 Q 1 +N +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 12 R 1 S 1 N 1 P 1 Q 1 +M +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 4 M 2 R 1 S 1 N 1 P 1 Q 1 +CM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 4 M 1 R 3 S 1 N 1 P 1 Q 1 +CR +t0 +C 1 M 2 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.oaves.csv b/workspace/example_designs/example_designs/sparseloop/04.2.3-eyeriss-like-onchip-compression/ref_outputs/default_problem/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/example_designs/example_designs/top.yaml.jinja2 b/workspace/example_designs/example_designs/top.yaml.jinja2 new file mode 100644 index 00000000..0f15f2b9 --- /dev/null +++ b/workspace/example_designs/example_designs/top.yaml.jinja2 @@ -0,0 +1,67 @@ +# This file will be converted into a YAML file by Jinja2 templating. +{{add_to_path(cwd())}} + +# ============================================================================== +# GLOBAL VARIABLES FOR TIMELOOP AND ACCELERGY +# ============================================================================== +globals: + version: 0.4 + environment_variables: + # Gets rid of stats for zero-energy components such as networks/buffers that are not + # used in the current architecture + TIMELOOP_HIDE_INCONSEQUENTIAL_STATS: 1 + expression_custom_functions: [] + +# ============================================================================== +# PROBLEM SPECIFICATION +# ============================================================================== +# Some of the architectures have an alternative `problem.yaml` file. If this +# file exists & problem is not set, set problem to the alternative problem +{% set alt_problem = cwd() ~ '/' ~ architecture ~ '/problem.yaml'%} +{% if path_exists(alt_problem) %} + {% set problem = problem | default(alt_problem)%} +{% endif %} + +# Can be overridden with the jinja2_parse_data argument to spec.from_yaml_files() +{%set problem = problem | default('_include/default_problem.yaml')%} + +# Set the problem file +problem: {{include(problem, 'problem')}} + +# ============================================================================== +# MAPPING SPECIFICATION +# ============================================================================== +# If a mapping file exists in the architecture directory, include it. +{% set mapping = cwd() ~ '/' ~ architecture ~ '/mapping.yaml'%} +{% if path_exists(mapping) %} +extra_mapping_constraints: + version: 0.4 + targets: {{include(mapping, 'mapping')}} +{% endif %} + +# ============================================================================== +# ARCHITECTURE SPECIFICATION +# ============================================================================== +architecture: {{include(cwd() ~ '/' ~ architecture ~ '/arch.yaml', 'architecture')}} + +# ============================================================================== +# TOP-LEVEL VARIABLES +# ============================================================================== +variables: # May get overridden by the architecture specification. + version: 0.4 + technology: "SET ME" + global_cycle_seconds: 1e-9 + +# ============================================================================== +# COMPOUND COMPONENT SPECIFICATION +# ============================================================================== +components: + version: 0.4 + classes: {{include_all('_components/*.yaml', 'compound_components.classes')}} + +# ============================================================================== +# MAPPER SPECIFICATION +# ============================================================================== +mapper: {{include(cwd() ~ '/_include/mapper.yaml', 'mapper')}} + + diff --git a/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer1.yaml b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer1.yaml new file mode 100644 index 00000000..32ae1c09 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer1.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 3 + Hdilation: 1 + Hstride: 4 + M: 96 + N: 1 + P: 55 + Q: 55 + R: 11 + S: 11 + Wdilation: 1 + Wstride: 4 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer2.yaml b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer2.yaml new file mode 100644 index 00000000..481ff66f --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer2.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 96 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 27 + Q: 27 + R: 5 + S: 5 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer3.yaml b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer3.yaml new file mode 100644 index 00000000..dcd7bacd --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer3.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 384 + N: 1 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer4.yaml b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer4.yaml new file mode 100644 index 00000000..516dbe10 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer4.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 384 + Hdilation: 1 + Hstride: 1 + M: 384 + N: 1 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer5.yaml b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer5.yaml new file mode 100644 index 00000000..ea406c45 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/AlexNet/AlexNet_layer5.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 384 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 13 + Q: 13 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer1.yaml b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer1.yaml new file mode 100644 index 00000000..83b73c4b --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer1.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 3 + Hdilation: 1 + Hstride: 1 + M: 64 + N: 1 + P: 224 + Q: 224 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer2.yaml b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer2.yaml new file mode 100644 index 00000000..d82b9dfb --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer2.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 64 + Hdilation: 1 + Hstride: 1 + M: 128 + N: 1 + P: 112 + Q: 112 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer3.yaml b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer3.yaml new file mode 100644 index 00000000..ad835e64 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer3.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer4.yaml b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer4.yaml new file mode 100644 index 00000000..d09be9d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer4.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer5.yaml b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer5.yaml new file mode 100644 index 00000000..975aede8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer5.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 28 + Q: 28 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer6.yaml b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer6.yaml new file mode 100644 index 00000000..1daefe8f --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer6.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 512 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 28 + Q: 28 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer7.yaml b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer7.yaml new file mode 100644 index 00000000..d2aac264 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer7.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 512 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 14 + Q: 14 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer8.yaml b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer8.yaml new file mode 100644 index 00000000..d2aac264 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG01/VGG01_layer8.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 512 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 14 + Q: 14 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer1.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer1.yaml new file mode 100644 index 00000000..83b73c4b --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer1.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 3 + Hdilation: 1 + Hstride: 1 + M: 64 + N: 1 + P: 224 + Q: 224 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer10.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer10.yaml new file mode 100644 index 00000000..310e7c3c --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer10.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 512 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 28 + Q: 28 + R: 1 + S: 1 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer11.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer11.yaml new file mode 100644 index 00000000..d2aac264 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer11.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 512 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 14 + Q: 14 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer12.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer12.yaml new file mode 100644 index 00000000..d2aac264 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer12.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 512 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 14 + Q: 14 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer13.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer13.yaml new file mode 100644 index 00000000..797c4791 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer13.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 512 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 16 + Q: 16 + R: 1 + S: 1 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer2.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer2.yaml new file mode 100644 index 00000000..de48e86e --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer2.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 64 + Hdilation: 1 + Hstride: 1 + M: 64 + N: 1 + P: 224 + Q: 224 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer3.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer3.yaml new file mode 100644 index 00000000..d82b9dfb --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer3.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 64 + Hdilation: 1 + Hstride: 1 + M: 128 + N: 1 + P: 112 + Q: 112 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer4.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer4.yaml new file mode 100644 index 00000000..b3d2daf0 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer4.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 128 + N: 1 + P: 112 + Q: 112 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer5.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer5.yaml new file mode 100644 index 00000000..ad835e64 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer5.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer6.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer6.yaml new file mode 100644 index 00000000..d09be9d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer6.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer7.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer7.yaml new file mode 100644 index 00000000..b98042c2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer7.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 1 + S: 1 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer8.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer8.yaml new file mode 100644 index 00000000..975aede8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer8.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 256 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 28 + Q: 28 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer9.yaml b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer9.yaml new file mode 100644 index 00000000..1daefe8f --- /dev/null +++ b/workspace/example_designs/layer_shapes/CONV/VGG02/VGG02_layer9.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 512 + Hdilation: 1 + Hstride: 1 + M: 512 + N: 1 + P: 28 + Q: 28 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M1024-K512-N256.yaml b/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M1024-K512-N256.yaml new file mode 100644 index 00000000..839bc688 --- /dev/null +++ b/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M1024-K512-N256.yaml @@ -0,0 +1,32 @@ +problem: + version: 0.4 + instance: + K: 1024 + M: 512 + N: 256 + densities: + A: + density: 0.5 + distribution: fixed_structured + shape: + name: gemm_ABZ + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + - name: B + projection: + - - - N + - - - K + - name: Z + projection: + - - - M + - - - N + read_write: true + + diff --git a/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M512-K128-N1024.yaml b/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M512-K128-N1024.yaml new file mode 100644 index 00000000..b2523ed1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M512-K128-N1024.yaml @@ -0,0 +1,32 @@ +problem: + version: 0.4 + instance: + K: 512 + M: 256 + N: 1024 + densities: + A: + density: 0.5 + distribution: fixed_structured + shape: + name: gemm_ABZ + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + - name: B + projection: + - - - N + - - - K + - name: Z + projection: + - - - M + - - - N + read_write: true + + diff --git a/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M512-K256-N1024.yaml b/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M512-K256-N1024.yaml new file mode 100644 index 00000000..b2523ed1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/MM/ResNet50_repr/M512-K256-N1024.yaml @@ -0,0 +1,32 @@ +problem: + version: 0.4 + instance: + K: 512 + M: 256 + N: 1024 + densities: + A: + density: 0.5 + distribution: fixed_structured + shape: + name: gemm_ABZ + dimensions: + - M + - N + - K + data_spaces: + - name: A + projection: + - - - M + - - - K + - name: B + projection: + - - - N + - - - K + - name: Z + projection: + - - - M + - - - N + read_write: true + + diff --git a/workspace/example_designs/layer_shapes/alexnet/0.yaml b/workspace/example_designs/layer_shapes/alexnet/0.yaml new file mode 100644 index 00000000..bdc916a5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/alexnet/0.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3, M: 64, P: 55, Q: 55, R: 11, S: 11, HStride: 4, WStride: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/alexnet/1.yaml b/workspace/example_designs/layer_shapes/alexnet/1.yaml new file mode 100644 index 00000000..ebf727b9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/alexnet/1.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 192, P: 27, Q: 27, R: 5, S: 5} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/alexnet/2.yaml b/workspace/example_designs/layer_shapes/alexnet/2.yaml new file mode 100644 index 00000000..fdedd46d --- /dev/null +++ b/workspace/example_designs/layer_shapes/alexnet/2.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 192, M: 384, P: 13, Q: 13, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/alexnet/3.yaml b/workspace/example_designs/layer_shapes/alexnet/3.yaml new file mode 100644 index 00000000..ed847bdb --- /dev/null +++ b/workspace/example_designs/layer_shapes/alexnet/3.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 384, M: 256, P: 13, Q: 13, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/alexnet/4.yaml b/workspace/example_designs/layer_shapes/alexnet/4.yaml new file mode 100644 index 00000000..1db2089c --- /dev/null +++ b/workspace/example_designs/layer_shapes/alexnet/4.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 13, Q: 13, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/alexnet/5.yaml b/workspace/example_designs/layer_shapes/alexnet/5.yaml new file mode 100644 index 00000000..ddc7b852 --- /dev/null +++ b/workspace/example_designs/layer_shapes/alexnet/5.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 9216, M: 4096} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/alexnet/6.yaml b/workspace/example_designs/layer_shapes/alexnet/6.yaml new file mode 100644 index 00000000..143987c9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/alexnet/6.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 4096} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/alexnet/7.yaml b/workspace/example_designs/layer_shapes/alexnet/7.yaml new file mode 100644 index 00000000..bc3c538e --- /dev/null +++ b/workspace/example_designs/layer_shapes/alexnet/7.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1000} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/000.yaml b/workspace/example_designs/layer_shapes/densenet201/000.yaml new file mode 100755 index 00000000..b0800106 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/000.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3, M: 64, P: 112, Q: 112, R: 7, S: 7, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/001.yaml b/workspace/example_designs/layer_shapes/densenet201/001.yaml new file mode 100755 index 00000000..754782d4 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/001.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 128, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/002.yaml b/workspace/example_designs/layer_shapes/densenet201/002.yaml new file mode 100755 index 00000000..0a412933 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/002.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/003.yaml b/workspace/example_designs/layer_shapes/densenet201/003.yaml new file mode 100755 index 00000000..0b333b02 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/003.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 96, M: 128, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/004.yaml b/workspace/example_designs/layer_shapes/densenet201/004.yaml new file mode 100755 index 00000000..0a412933 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/004.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/005.yaml b/workspace/example_designs/layer_shapes/densenet201/005.yaml new file mode 100755 index 00000000..1386f680 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/005.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/006.yaml b/workspace/example_designs/layer_shapes/densenet201/006.yaml new file mode 100755 index 00000000..0a412933 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/006.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/007.yaml b/workspace/example_designs/layer_shapes/densenet201/007.yaml new file mode 100755 index 00000000..2843b35e --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/007.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 160, M: 128, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/008.yaml b/workspace/example_designs/layer_shapes/densenet201/008.yaml new file mode 100755 index 00000000..0a412933 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/008.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/009.yaml b/workspace/example_designs/layer_shapes/densenet201/009.yaml new file mode 100755 index 00000000..dd3be466 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/009.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 192, M: 128, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/010.yaml b/workspace/example_designs/layer_shapes/densenet201/010.yaml new file mode 100755 index 00000000..0a412933 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/010.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/011.yaml b/workspace/example_designs/layer_shapes/densenet201/011.yaml new file mode 100755 index 00000000..2447194f --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/011.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 224, M: 128, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/012.yaml b/workspace/example_designs/layer_shapes/densenet201/012.yaml new file mode 100755 index 00000000..0a412933 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/012.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/013.yaml b/workspace/example_designs/layer_shapes/densenet201/013.yaml new file mode 100755 index 00000000..ad8d77d6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/013.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 128, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/014.yaml b/workspace/example_designs/layer_shapes/densenet201/014.yaml new file mode 100755 index 00000000..a2bf6286 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/014.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/015.yaml b/workspace/example_designs/layer_shapes/densenet201/015.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/015.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/016.yaml b/workspace/example_designs/layer_shapes/densenet201/016.yaml new file mode 100755 index 00000000..5b40531b --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/016.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 160, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/017.yaml b/workspace/example_designs/layer_shapes/densenet201/017.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/017.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/018.yaml b/workspace/example_designs/layer_shapes/densenet201/018.yaml new file mode 100755 index 00000000..31b565c5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/018.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 192, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/019.yaml b/workspace/example_designs/layer_shapes/densenet201/019.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/019.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/020.yaml b/workspace/example_designs/layer_shapes/densenet201/020.yaml new file mode 100755 index 00000000..c6ab29f3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/020.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 224, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/021.yaml b/workspace/example_designs/layer_shapes/densenet201/021.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/021.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/022.yaml b/workspace/example_designs/layer_shapes/densenet201/022.yaml new file mode 100755 index 00000000..794014bb --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/022.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/023.yaml b/workspace/example_designs/layer_shapes/densenet201/023.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/023.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/024.yaml b/workspace/example_designs/layer_shapes/densenet201/024.yaml new file mode 100755 index 00000000..accdba76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/024.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 288, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/025.yaml b/workspace/example_designs/layer_shapes/densenet201/025.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/025.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/026.yaml b/workspace/example_designs/layer_shapes/densenet201/026.yaml new file mode 100755 index 00000000..f0a26f4b --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/026.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 320, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/027.yaml b/workspace/example_designs/layer_shapes/densenet201/027.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/027.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/028.yaml b/workspace/example_designs/layer_shapes/densenet201/028.yaml new file mode 100755 index 00000000..f20700f8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/028.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 352, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/029.yaml b/workspace/example_designs/layer_shapes/densenet201/029.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/029.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/030.yaml b/workspace/example_designs/layer_shapes/densenet201/030.yaml new file mode 100755 index 00000000..ee9270e8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/030.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 384, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/031.yaml b/workspace/example_designs/layer_shapes/densenet201/031.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/031.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/032.yaml b/workspace/example_designs/layer_shapes/densenet201/032.yaml new file mode 100755 index 00000000..ed5632ab --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/032.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 416, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/033.yaml b/workspace/example_designs/layer_shapes/densenet201/033.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/033.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/034.yaml b/workspace/example_designs/layer_shapes/densenet201/034.yaml new file mode 100755 index 00000000..2f3c92ea --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/034.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 448, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/035.yaml b/workspace/example_designs/layer_shapes/densenet201/035.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/035.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/036.yaml b/workspace/example_designs/layer_shapes/densenet201/036.yaml new file mode 100755 index 00000000..05b78849 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/036.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 480, M: 128, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/037.yaml b/workspace/example_designs/layer_shapes/densenet201/037.yaml new file mode 100755 index 00000000..7d8b63d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/037.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/038.yaml b/workspace/example_designs/layer_shapes/densenet201/038.yaml new file mode 100755 index 00000000..5974ce19 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/038.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 256, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/039.yaml b/workspace/example_designs/layer_shapes/densenet201/039.yaml new file mode 100755 index 00000000..e4ad680a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/039.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/040.yaml b/workspace/example_designs/layer_shapes/densenet201/040.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/040.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/041.yaml b/workspace/example_designs/layer_shapes/densenet201/041.yaml new file mode 100755 index 00000000..db6fdee0 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/041.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 288, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/042.yaml b/workspace/example_designs/layer_shapes/densenet201/042.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/042.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/043.yaml b/workspace/example_designs/layer_shapes/densenet201/043.yaml new file mode 100755 index 00000000..5020495b --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/043.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 320, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/044.yaml b/workspace/example_designs/layer_shapes/densenet201/044.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/044.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/045.yaml b/workspace/example_designs/layer_shapes/densenet201/045.yaml new file mode 100755 index 00000000..eae37e26 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/045.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 352, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/046.yaml b/workspace/example_designs/layer_shapes/densenet201/046.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/046.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/047.yaml b/workspace/example_designs/layer_shapes/densenet201/047.yaml new file mode 100755 index 00000000..512ffba4 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/047.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 384, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/048.yaml b/workspace/example_designs/layer_shapes/densenet201/048.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/048.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/049.yaml b/workspace/example_designs/layer_shapes/densenet201/049.yaml new file mode 100755 index 00000000..43f68c0a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/049.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 416, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/050.yaml b/workspace/example_designs/layer_shapes/densenet201/050.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/050.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/051.yaml b/workspace/example_designs/layer_shapes/densenet201/051.yaml new file mode 100755 index 00000000..5a9e7654 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/051.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 448, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/052.yaml b/workspace/example_designs/layer_shapes/densenet201/052.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/052.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/053.yaml b/workspace/example_designs/layer_shapes/densenet201/053.yaml new file mode 100755 index 00000000..5dcb507e --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/053.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 480, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/054.yaml b/workspace/example_designs/layer_shapes/densenet201/054.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/054.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/055.yaml b/workspace/example_designs/layer_shapes/densenet201/055.yaml new file mode 100755 index 00000000..64d82913 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/055.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/056.yaml b/workspace/example_designs/layer_shapes/densenet201/056.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/056.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/057.yaml b/workspace/example_designs/layer_shapes/densenet201/057.yaml new file mode 100755 index 00000000..d0a4fa12 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/057.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 544, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/058.yaml b/workspace/example_designs/layer_shapes/densenet201/058.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/058.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/059.yaml b/workspace/example_designs/layer_shapes/densenet201/059.yaml new file mode 100755 index 00000000..7d6ac89a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/059.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 576, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/060.yaml b/workspace/example_designs/layer_shapes/densenet201/060.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/060.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/061.yaml b/workspace/example_designs/layer_shapes/densenet201/061.yaml new file mode 100755 index 00000000..170dcfee --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/061.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 608, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/062.yaml b/workspace/example_designs/layer_shapes/densenet201/062.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/062.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/063.yaml b/workspace/example_designs/layer_shapes/densenet201/063.yaml new file mode 100755 index 00000000..92da7c2b --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/063.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 640, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/064.yaml b/workspace/example_designs/layer_shapes/densenet201/064.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/064.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/065.yaml b/workspace/example_designs/layer_shapes/densenet201/065.yaml new file mode 100755 index 00000000..f22d8571 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/065.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 672, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/066.yaml b/workspace/example_designs/layer_shapes/densenet201/066.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/066.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/067.yaml b/workspace/example_designs/layer_shapes/densenet201/067.yaml new file mode 100755 index 00000000..c49f4edb --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/067.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 704, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/068.yaml b/workspace/example_designs/layer_shapes/densenet201/068.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/068.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/069.yaml b/workspace/example_designs/layer_shapes/densenet201/069.yaml new file mode 100755 index 00000000..3ce03b15 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/069.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 736, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/070.yaml b/workspace/example_designs/layer_shapes/densenet201/070.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/070.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/071.yaml b/workspace/example_designs/layer_shapes/densenet201/071.yaml new file mode 100755 index 00000000..862939f8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/071.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/072.yaml b/workspace/example_designs/layer_shapes/densenet201/072.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/072.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/073.yaml b/workspace/example_designs/layer_shapes/densenet201/073.yaml new file mode 100755 index 00000000..2956b214 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/073.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 800, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/074.yaml b/workspace/example_designs/layer_shapes/densenet201/074.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/074.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/075.yaml b/workspace/example_designs/layer_shapes/densenet201/075.yaml new file mode 100755 index 00000000..872d45e9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/075.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 832, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/076.yaml b/workspace/example_designs/layer_shapes/densenet201/076.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/076.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/077.yaml b/workspace/example_designs/layer_shapes/densenet201/077.yaml new file mode 100755 index 00000000..1d312581 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/077.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 864, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/078.yaml b/workspace/example_designs/layer_shapes/densenet201/078.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/078.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/079.yaml b/workspace/example_designs/layer_shapes/densenet201/079.yaml new file mode 100755 index 00000000..2b328160 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/079.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 896, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/080.yaml b/workspace/example_designs/layer_shapes/densenet201/080.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/080.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/081.yaml b/workspace/example_designs/layer_shapes/densenet201/081.yaml new file mode 100755 index 00000000..eb75b08b --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/081.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 928, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/082.yaml b/workspace/example_designs/layer_shapes/densenet201/082.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/082.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/083.yaml b/workspace/example_designs/layer_shapes/densenet201/083.yaml new file mode 100755 index 00000000..283c13d6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/083.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 960, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/084.yaml b/workspace/example_designs/layer_shapes/densenet201/084.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/084.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/085.yaml b/workspace/example_designs/layer_shapes/densenet201/085.yaml new file mode 100755 index 00000000..37498494 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/085.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 992, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/086.yaml b/workspace/example_designs/layer_shapes/densenet201/086.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/086.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/087.yaml b/workspace/example_designs/layer_shapes/densenet201/087.yaml new file mode 100755 index 00000000..89fd016e --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/087.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/088.yaml b/workspace/example_designs/layer_shapes/densenet201/088.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/088.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/089.yaml b/workspace/example_designs/layer_shapes/densenet201/089.yaml new file mode 100755 index 00000000..1dbc9cfd --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/089.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1056, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/090.yaml b/workspace/example_designs/layer_shapes/densenet201/090.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/090.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/091.yaml b/workspace/example_designs/layer_shapes/densenet201/091.yaml new file mode 100755 index 00000000..90a183d7 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/091.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1088, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/092.yaml b/workspace/example_designs/layer_shapes/densenet201/092.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/092.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/093.yaml b/workspace/example_designs/layer_shapes/densenet201/093.yaml new file mode 100755 index 00000000..7bc5180b --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/093.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1120, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/094.yaml b/workspace/example_designs/layer_shapes/densenet201/094.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/094.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/095.yaml b/workspace/example_designs/layer_shapes/densenet201/095.yaml new file mode 100755 index 00000000..efac6246 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/095.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1152, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/096.yaml b/workspace/example_designs/layer_shapes/densenet201/096.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/096.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/097.yaml b/workspace/example_designs/layer_shapes/densenet201/097.yaml new file mode 100755 index 00000000..189e7f63 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/097.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1184, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/098.yaml b/workspace/example_designs/layer_shapes/densenet201/098.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/098.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/099.yaml b/workspace/example_designs/layer_shapes/densenet201/099.yaml new file mode 100755 index 00000000..6e062ae5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/099.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1216, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/100.yaml b/workspace/example_designs/layer_shapes/densenet201/100.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/100.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/101.yaml b/workspace/example_designs/layer_shapes/densenet201/101.yaml new file mode 100755 index 00000000..0f5d637e --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/101.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1248, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/102.yaml b/workspace/example_designs/layer_shapes/densenet201/102.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/102.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/103.yaml b/workspace/example_designs/layer_shapes/densenet201/103.yaml new file mode 100755 index 00000000..b80a6ab6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/103.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1280, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/104.yaml b/workspace/example_designs/layer_shapes/densenet201/104.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/104.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/105.yaml b/workspace/example_designs/layer_shapes/densenet201/105.yaml new file mode 100755 index 00000000..9516fe2f --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/105.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1312, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/106.yaml b/workspace/example_designs/layer_shapes/densenet201/106.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/106.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/107.yaml b/workspace/example_designs/layer_shapes/densenet201/107.yaml new file mode 100755 index 00000000..4dde8b32 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/107.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1344, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/108.yaml b/workspace/example_designs/layer_shapes/densenet201/108.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/108.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/109.yaml b/workspace/example_designs/layer_shapes/densenet201/109.yaml new file mode 100755 index 00000000..054a6c2c --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/109.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1376, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/110.yaml b/workspace/example_designs/layer_shapes/densenet201/110.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/110.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/111.yaml b/workspace/example_designs/layer_shapes/densenet201/111.yaml new file mode 100755 index 00000000..02098aef --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/111.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1408, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/112.yaml b/workspace/example_designs/layer_shapes/densenet201/112.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/112.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/113.yaml b/workspace/example_designs/layer_shapes/densenet201/113.yaml new file mode 100755 index 00000000..6bb96d9e --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/113.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1440, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/114.yaml b/workspace/example_designs/layer_shapes/densenet201/114.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/114.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/115.yaml b/workspace/example_designs/layer_shapes/densenet201/115.yaml new file mode 100755 index 00000000..21f2ebe2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/115.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1472, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/116.yaml b/workspace/example_designs/layer_shapes/densenet201/116.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/116.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/117.yaml b/workspace/example_designs/layer_shapes/densenet201/117.yaml new file mode 100755 index 00000000..a68b6e3f --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/117.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1504, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/118.yaml b/workspace/example_designs/layer_shapes/densenet201/118.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/118.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/119.yaml b/workspace/example_designs/layer_shapes/densenet201/119.yaml new file mode 100755 index 00000000..e7d4c625 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/119.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1536, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/120.yaml b/workspace/example_designs/layer_shapes/densenet201/120.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/120.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/121.yaml b/workspace/example_designs/layer_shapes/densenet201/121.yaml new file mode 100755 index 00000000..26af9816 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/121.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1568, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/122.yaml b/workspace/example_designs/layer_shapes/densenet201/122.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/122.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/123.yaml b/workspace/example_designs/layer_shapes/densenet201/123.yaml new file mode 100755 index 00000000..dec1284e --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/123.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1600, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/124.yaml b/workspace/example_designs/layer_shapes/densenet201/124.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/124.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/125.yaml b/workspace/example_designs/layer_shapes/densenet201/125.yaml new file mode 100755 index 00000000..2e583aaa --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/125.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1632, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/126.yaml b/workspace/example_designs/layer_shapes/densenet201/126.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/126.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/127.yaml b/workspace/example_designs/layer_shapes/densenet201/127.yaml new file mode 100755 index 00000000..ed0c520a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/127.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1664, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/128.yaml b/workspace/example_designs/layer_shapes/densenet201/128.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/128.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/129.yaml b/workspace/example_designs/layer_shapes/densenet201/129.yaml new file mode 100755 index 00000000..ba898c59 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/129.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1696, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/130.yaml b/workspace/example_designs/layer_shapes/densenet201/130.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/130.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/131.yaml b/workspace/example_designs/layer_shapes/densenet201/131.yaml new file mode 100755 index 00000000..a43d1447 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/131.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1728, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/132.yaml b/workspace/example_designs/layer_shapes/densenet201/132.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/132.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/133.yaml b/workspace/example_designs/layer_shapes/densenet201/133.yaml new file mode 100755 index 00000000..573b87fe --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/133.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1760, M: 128, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/134.yaml b/workspace/example_designs/layer_shapes/densenet201/134.yaml new file mode 100755 index 00000000..d87f18d2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/134.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/135.yaml b/workspace/example_designs/layer_shapes/densenet201/135.yaml new file mode 100755 index 00000000..b078a69c --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/135.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1792, M: 896, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/136.yaml b/workspace/example_designs/layer_shapes/densenet201/136.yaml new file mode 100755 index 00000000..19817b44 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/136.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 896, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/137.yaml b/workspace/example_designs/layer_shapes/densenet201/137.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/137.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/138.yaml b/workspace/example_designs/layer_shapes/densenet201/138.yaml new file mode 100755 index 00000000..7a84db1b --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/138.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 928, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/139.yaml b/workspace/example_designs/layer_shapes/densenet201/139.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/139.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/140.yaml b/workspace/example_designs/layer_shapes/densenet201/140.yaml new file mode 100755 index 00000000..1531f890 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/140.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 960, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/141.yaml b/workspace/example_designs/layer_shapes/densenet201/141.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/141.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/142.yaml b/workspace/example_designs/layer_shapes/densenet201/142.yaml new file mode 100755 index 00000000..bb8fcc58 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/142.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 992, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/143.yaml b/workspace/example_designs/layer_shapes/densenet201/143.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/143.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/144.yaml b/workspace/example_designs/layer_shapes/densenet201/144.yaml new file mode 100755 index 00000000..11e54d80 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/144.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/145.yaml b/workspace/example_designs/layer_shapes/densenet201/145.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/145.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/146.yaml b/workspace/example_designs/layer_shapes/densenet201/146.yaml new file mode 100755 index 00000000..3097cc0f --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/146.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1056, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/147.yaml b/workspace/example_designs/layer_shapes/densenet201/147.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/147.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/148.yaml b/workspace/example_designs/layer_shapes/densenet201/148.yaml new file mode 100755 index 00000000..eb36be56 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/148.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1088, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/149.yaml b/workspace/example_designs/layer_shapes/densenet201/149.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/149.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/150.yaml b/workspace/example_designs/layer_shapes/densenet201/150.yaml new file mode 100755 index 00000000..b65e7edb --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/150.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1120, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/151.yaml b/workspace/example_designs/layer_shapes/densenet201/151.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/151.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/152.yaml b/workspace/example_designs/layer_shapes/densenet201/152.yaml new file mode 100755 index 00000000..7d83140d --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/152.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1152, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/153.yaml b/workspace/example_designs/layer_shapes/densenet201/153.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/153.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/154.yaml b/workspace/example_designs/layer_shapes/densenet201/154.yaml new file mode 100755 index 00000000..4014dc33 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/154.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1184, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/155.yaml b/workspace/example_designs/layer_shapes/densenet201/155.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/155.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/156.yaml b/workspace/example_designs/layer_shapes/densenet201/156.yaml new file mode 100755 index 00000000..f40d2f01 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/156.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1216, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/157.yaml b/workspace/example_designs/layer_shapes/densenet201/157.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/157.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/158.yaml b/workspace/example_designs/layer_shapes/densenet201/158.yaml new file mode 100755 index 00000000..d2c3335a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/158.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1248, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/159.yaml b/workspace/example_designs/layer_shapes/densenet201/159.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/159.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/160.yaml b/workspace/example_designs/layer_shapes/densenet201/160.yaml new file mode 100755 index 00000000..eff95278 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/160.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1280, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/161.yaml b/workspace/example_designs/layer_shapes/densenet201/161.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/161.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/162.yaml b/workspace/example_designs/layer_shapes/densenet201/162.yaml new file mode 100755 index 00000000..9ba5b9cf --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/162.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1312, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/163.yaml b/workspace/example_designs/layer_shapes/densenet201/163.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/163.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/164.yaml b/workspace/example_designs/layer_shapes/densenet201/164.yaml new file mode 100755 index 00000000..8a4a6a18 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/164.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1344, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/165.yaml b/workspace/example_designs/layer_shapes/densenet201/165.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/165.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/166.yaml b/workspace/example_designs/layer_shapes/densenet201/166.yaml new file mode 100755 index 00000000..e98d3de2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/166.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1376, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/167.yaml b/workspace/example_designs/layer_shapes/densenet201/167.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/167.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/168.yaml b/workspace/example_designs/layer_shapes/densenet201/168.yaml new file mode 100755 index 00000000..0bede030 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/168.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1408, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/169.yaml b/workspace/example_designs/layer_shapes/densenet201/169.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/169.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/170.yaml b/workspace/example_designs/layer_shapes/densenet201/170.yaml new file mode 100755 index 00000000..610db7c7 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/170.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1440, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/171.yaml b/workspace/example_designs/layer_shapes/densenet201/171.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/171.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/172.yaml b/workspace/example_designs/layer_shapes/densenet201/172.yaml new file mode 100755 index 00000000..36e72c0b --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/172.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1472, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/173.yaml b/workspace/example_designs/layer_shapes/densenet201/173.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/173.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/174.yaml b/workspace/example_designs/layer_shapes/densenet201/174.yaml new file mode 100755 index 00000000..0af203f8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/174.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1504, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/175.yaml b/workspace/example_designs/layer_shapes/densenet201/175.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/175.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/176.yaml b/workspace/example_designs/layer_shapes/densenet201/176.yaml new file mode 100755 index 00000000..ecfd8144 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/176.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1536, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/177.yaml b/workspace/example_designs/layer_shapes/densenet201/177.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/177.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/178.yaml b/workspace/example_designs/layer_shapes/densenet201/178.yaml new file mode 100755 index 00000000..153fef73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/178.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1568, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/179.yaml b/workspace/example_designs/layer_shapes/densenet201/179.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/179.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/180.yaml b/workspace/example_designs/layer_shapes/densenet201/180.yaml new file mode 100755 index 00000000..cbcab966 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/180.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1600, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/181.yaml b/workspace/example_designs/layer_shapes/densenet201/181.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/181.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/182.yaml b/workspace/example_designs/layer_shapes/densenet201/182.yaml new file mode 100755 index 00000000..2d00bfdf --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/182.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1632, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/183.yaml b/workspace/example_designs/layer_shapes/densenet201/183.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/183.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/184.yaml b/workspace/example_designs/layer_shapes/densenet201/184.yaml new file mode 100755 index 00000000..1f8ffe82 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/184.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1664, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/185.yaml b/workspace/example_designs/layer_shapes/densenet201/185.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/185.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/186.yaml b/workspace/example_designs/layer_shapes/densenet201/186.yaml new file mode 100755 index 00000000..88f8511a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/186.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1696, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/187.yaml b/workspace/example_designs/layer_shapes/densenet201/187.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/187.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/188.yaml b/workspace/example_designs/layer_shapes/densenet201/188.yaml new file mode 100755 index 00000000..f6acea0c --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/188.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1728, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/189.yaml b/workspace/example_designs/layer_shapes/densenet201/189.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/189.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/190.yaml b/workspace/example_designs/layer_shapes/densenet201/190.yaml new file mode 100755 index 00000000..bc038dfa --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/190.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1760, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/191.yaml b/workspace/example_designs/layer_shapes/densenet201/191.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/191.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/192.yaml b/workspace/example_designs/layer_shapes/densenet201/192.yaml new file mode 100755 index 00000000..4bf6eda3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/192.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1792, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/193.yaml b/workspace/example_designs/layer_shapes/densenet201/193.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/193.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/194.yaml b/workspace/example_designs/layer_shapes/densenet201/194.yaml new file mode 100755 index 00000000..4fd754b0 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/194.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1824, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/195.yaml b/workspace/example_designs/layer_shapes/densenet201/195.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/195.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/196.yaml b/workspace/example_designs/layer_shapes/densenet201/196.yaml new file mode 100755 index 00000000..05edc730 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/196.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1856, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/197.yaml b/workspace/example_designs/layer_shapes/densenet201/197.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/197.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/198.yaml b/workspace/example_designs/layer_shapes/densenet201/198.yaml new file mode 100755 index 00000000..4c359e07 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/198.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1888, M: 128, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/199.yaml b/workspace/example_designs/layer_shapes/densenet201/199.yaml new file mode 100755 index 00000000..2bae482a --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/199.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/densenet201/200.yaml b/workspace/example_designs/layer_shapes/densenet201/200.yaml new file mode 100755 index 00000000..ebd2e602 --- /dev/null +++ b/workspace/example_designs/layer_shapes/densenet201/200.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1920, M: 1000} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/000.yaml b/workspace/example_designs/layer_shapes/dpt_large/000.yaml new file mode 100755 index 00000000..13ca2a7e --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/000.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3, M: 1024, P: 24, Q: 24, R: 16, S: 16, HStride: 16, WStride: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/001.yaml b/workspace/example_designs/layer_shapes/dpt_large/001.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/001.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/002.yaml b/workspace/example_designs/layer_shapes/dpt_large/002.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/002.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/003.yaml b/workspace/example_designs/layer_shapes/dpt_large/003.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/003.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/004.yaml b/workspace/example_designs/layer_shapes/dpt_large/004.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/004.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/005.yaml b/workspace/example_designs/layer_shapes/dpt_large/005.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/005.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/006.yaml b/workspace/example_designs/layer_shapes/dpt_large/006.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/006.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/007.yaml b/workspace/example_designs/layer_shapes/dpt_large/007.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/007.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/008.yaml b/workspace/example_designs/layer_shapes/dpt_large/008.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/008.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/009.yaml b/workspace/example_designs/layer_shapes/dpt_large/009.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/009.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/010.yaml b/workspace/example_designs/layer_shapes/dpt_large/010.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/010.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/011.yaml b/workspace/example_designs/layer_shapes/dpt_large/011.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/011.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/012.yaml b/workspace/example_designs/layer_shapes/dpt_large/012.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/012.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/013.yaml b/workspace/example_designs/layer_shapes/dpt_large/013.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/013.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/014.yaml b/workspace/example_designs/layer_shapes/dpt_large/014.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/014.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/015.yaml b/workspace/example_designs/layer_shapes/dpt_large/015.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/015.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/016.yaml b/workspace/example_designs/layer_shapes/dpt_large/016.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/016.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/017.yaml b/workspace/example_designs/layer_shapes/dpt_large/017.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/017.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/018.yaml b/workspace/example_designs/layer_shapes/dpt_large/018.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/018.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/019.yaml b/workspace/example_designs/layer_shapes/dpt_large/019.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/019.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/020.yaml b/workspace/example_designs/layer_shapes/dpt_large/020.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/020.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/021.yaml b/workspace/example_designs/layer_shapes/dpt_large/021.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/021.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/022.yaml b/workspace/example_designs/layer_shapes/dpt_large/022.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/022.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/023.yaml b/workspace/example_designs/layer_shapes/dpt_large/023.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/023.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/024.yaml b/workspace/example_designs/layer_shapes/dpt_large/024.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/024.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/025.yaml b/workspace/example_designs/layer_shapes/dpt_large/025.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/025.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/026.yaml b/workspace/example_designs/layer_shapes/dpt_large/026.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/026.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/027.yaml b/workspace/example_designs/layer_shapes/dpt_large/027.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/027.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/028.yaml b/workspace/example_designs/layer_shapes/dpt_large/028.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/028.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/029.yaml b/workspace/example_designs/layer_shapes/dpt_large/029.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/029.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/030.yaml b/workspace/example_designs/layer_shapes/dpt_large/030.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/030.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/031.yaml b/workspace/example_designs/layer_shapes/dpt_large/031.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/031.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/032.yaml b/workspace/example_designs/layer_shapes/dpt_large/032.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/032.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/033.yaml b/workspace/example_designs/layer_shapes/dpt_large/033.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/033.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/034.yaml b/workspace/example_designs/layer_shapes/dpt_large/034.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/034.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/035.yaml b/workspace/example_designs/layer_shapes/dpt_large/035.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/035.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/036.yaml b/workspace/example_designs/layer_shapes/dpt_large/036.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/036.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/037.yaml b/workspace/example_designs/layer_shapes/dpt_large/037.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/037.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/038.yaml b/workspace/example_designs/layer_shapes/dpt_large/038.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/038.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/039.yaml b/workspace/example_designs/layer_shapes/dpt_large/039.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/039.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/040.yaml b/workspace/example_designs/layer_shapes/dpt_large/040.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/040.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/041.yaml b/workspace/example_designs/layer_shapes/dpt_large/041.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/041.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/042.yaml b/workspace/example_designs/layer_shapes/dpt_large/042.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/042.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/043.yaml b/workspace/example_designs/layer_shapes/dpt_large/043.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/043.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/044.yaml b/workspace/example_designs/layer_shapes/dpt_large/044.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/044.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/045.yaml b/workspace/example_designs/layer_shapes/dpt_large/045.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/045.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/046.yaml b/workspace/example_designs/layer_shapes/dpt_large/046.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/046.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/047.yaml b/workspace/example_designs/layer_shapes/dpt_large/047.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/047.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/048.yaml b/workspace/example_designs/layer_shapes/dpt_large/048.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/048.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/049.yaml b/workspace/example_designs/layer_shapes/dpt_large/049.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/049.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/050.yaml b/workspace/example_designs/layer_shapes/dpt_large/050.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/050.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/051.yaml b/workspace/example_designs/layer_shapes/dpt_large/051.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/051.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/052.yaml b/workspace/example_designs/layer_shapes/dpt_large/052.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/052.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/053.yaml b/workspace/example_designs/layer_shapes/dpt_large/053.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/053.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/054.yaml b/workspace/example_designs/layer_shapes/dpt_large/054.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/054.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/055.yaml b/workspace/example_designs/layer_shapes/dpt_large/055.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/055.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/056.yaml b/workspace/example_designs/layer_shapes/dpt_large/056.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/056.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/057.yaml b/workspace/example_designs/layer_shapes/dpt_large/057.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/057.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/058.yaml b/workspace/example_designs/layer_shapes/dpt_large/058.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/058.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/059.yaml b/workspace/example_designs/layer_shapes/dpt_large/059.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/059.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/060.yaml b/workspace/example_designs/layer_shapes/dpt_large/060.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/060.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/061.yaml b/workspace/example_designs/layer_shapes/dpt_large/061.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/061.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/062.yaml b/workspace/example_designs/layer_shapes/dpt_large/062.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/062.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/063.yaml b/workspace/example_designs/layer_shapes/dpt_large/063.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/063.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/064.yaml b/workspace/example_designs/layer_shapes/dpt_large/064.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/064.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/065.yaml b/workspace/example_designs/layer_shapes/dpt_large/065.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/065.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/066.yaml b/workspace/example_designs/layer_shapes/dpt_large/066.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/066.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/067.yaml b/workspace/example_designs/layer_shapes/dpt_large/067.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/067.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/068.yaml b/workspace/example_designs/layer_shapes/dpt_large/068.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/068.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/069.yaml b/workspace/example_designs/layer_shapes/dpt_large/069.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/069.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/070.yaml b/workspace/example_designs/layer_shapes/dpt_large/070.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/070.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/071.yaml b/workspace/example_designs/layer_shapes/dpt_large/071.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/071.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/072.yaml b/workspace/example_designs/layer_shapes/dpt_large/072.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/072.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/073.yaml b/workspace/example_designs/layer_shapes/dpt_large/073.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/073.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/074.yaml b/workspace/example_designs/layer_shapes/dpt_large/074.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/074.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/075.yaml b/workspace/example_designs/layer_shapes/dpt_large/075.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/075.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/076.yaml b/workspace/example_designs/layer_shapes/dpt_large/076.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/076.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/077.yaml b/workspace/example_designs/layer_shapes/dpt_large/077.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/077.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/078.yaml b/workspace/example_designs/layer_shapes/dpt_large/078.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/078.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/079.yaml b/workspace/example_designs/layer_shapes/dpt_large/079.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/079.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/080.yaml b/workspace/example_designs/layer_shapes/dpt_large/080.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/080.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/081.yaml b/workspace/example_designs/layer_shapes/dpt_large/081.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/081.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/082.yaml b/workspace/example_designs/layer_shapes/dpt_large/082.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/082.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/083.yaml b/workspace/example_designs/layer_shapes/dpt_large/083.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/083.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/084.yaml b/workspace/example_designs/layer_shapes/dpt_large/084.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/084.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/085.yaml b/workspace/example_designs/layer_shapes/dpt_large/085.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/085.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/086.yaml b/workspace/example_designs/layer_shapes/dpt_large/086.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/086.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/087.yaml b/workspace/example_designs/layer_shapes/dpt_large/087.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/087.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/088.yaml b/workspace/example_designs/layer_shapes/dpt_large/088.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/088.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/089.yaml b/workspace/example_designs/layer_shapes/dpt_large/089.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/089.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/090.yaml b/workspace/example_designs/layer_shapes/dpt_large/090.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/090.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/091.yaml b/workspace/example_designs/layer_shapes/dpt_large/091.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/091.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/092.yaml b/workspace/example_designs/layer_shapes/dpt_large/092.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/092.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/093.yaml b/workspace/example_designs/layer_shapes/dpt_large/093.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/093.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/094.yaml b/workspace/example_designs/layer_shapes/dpt_large/094.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/094.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/095.yaml b/workspace/example_designs/layer_shapes/dpt_large/095.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/095.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/096.yaml b/workspace/example_designs/layer_shapes/dpt_large/096.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/096.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/097.yaml b/workspace/example_designs/layer_shapes/dpt_large/097.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/097.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/098.yaml b/workspace/example_designs/layer_shapes/dpt_large/098.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/098.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/099.yaml b/workspace/example_designs/layer_shapes/dpt_large/099.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/099.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/100.yaml b/workspace/example_designs/layer_shapes/dpt_large/100.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/100.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/101.yaml b/workspace/example_designs/layer_shapes/dpt_large/101.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/101.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/102.yaml b/workspace/example_designs/layer_shapes/dpt_large/102.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/102.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/103.yaml b/workspace/example_designs/layer_shapes/dpt_large/103.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/103.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/104.yaml b/workspace/example_designs/layer_shapes/dpt_large/104.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/104.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/105.yaml b/workspace/example_designs/layer_shapes/dpt_large/105.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/105.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/106.yaml b/workspace/example_designs/layer_shapes/dpt_large/106.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/106.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/107.yaml b/workspace/example_designs/layer_shapes/dpt_large/107.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/107.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/108.yaml b/workspace/example_designs/layer_shapes/dpt_large/108.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/108.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/109.yaml b/workspace/example_designs/layer_shapes/dpt_large/109.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/109.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/110.yaml b/workspace/example_designs/layer_shapes/dpt_large/110.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/110.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/111.yaml b/workspace/example_designs/layer_shapes/dpt_large/111.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/111.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/112.yaml b/workspace/example_designs/layer_shapes/dpt_large/112.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/112.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/113.yaml b/workspace/example_designs/layer_shapes/dpt_large/113.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/113.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/114.yaml b/workspace/example_designs/layer_shapes/dpt_large/114.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/114.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/115.yaml b/workspace/example_designs/layer_shapes/dpt_large/115.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/115.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/116.yaml b/workspace/example_designs/layer_shapes/dpt_large/116.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/116.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/117.yaml b/workspace/example_designs/layer_shapes/dpt_large/117.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/117.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/118.yaml b/workspace/example_designs/layer_shapes/dpt_large/118.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/118.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/119.yaml b/workspace/example_designs/layer_shapes/dpt_large/119.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/119.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/120.yaml b/workspace/example_designs/layer_shapes/dpt_large/120.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/120.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/121.yaml b/workspace/example_designs/layer_shapes/dpt_large/121.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/121.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/122.yaml b/workspace/example_designs/layer_shapes/dpt_large/122.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/122.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/123.yaml b/workspace/example_designs/layer_shapes/dpt_large/123.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/123.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/124.yaml b/workspace/example_designs/layer_shapes/dpt_large/124.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/124.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/125.yaml b/workspace/example_designs/layer_shapes/dpt_large/125.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/125.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/126.yaml b/workspace/example_designs/layer_shapes/dpt_large/126.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/126.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/127.yaml b/workspace/example_designs/layer_shapes/dpt_large/127.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/127.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/128.yaml b/workspace/example_designs/layer_shapes/dpt_large/128.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/128.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/129.yaml b/workspace/example_designs/layer_shapes/dpt_large/129.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/129.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/130.yaml b/workspace/example_designs/layer_shapes/dpt_large/130.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/130.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/131.yaml b/workspace/example_designs/layer_shapes/dpt_large/131.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/131.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/132.yaml b/workspace/example_designs/layer_shapes/dpt_large/132.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/132.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/133.yaml b/workspace/example_designs/layer_shapes/dpt_large/133.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/133.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/134.yaml b/workspace/example_designs/layer_shapes/dpt_large/134.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/134.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/135.yaml b/workspace/example_designs/layer_shapes/dpt_large/135.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/135.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/136.yaml b/workspace/example_designs/layer_shapes/dpt_large/136.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/136.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/137.yaml b/workspace/example_designs/layer_shapes/dpt_large/137.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/137.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/138.yaml b/workspace/example_designs/layer_shapes/dpt_large/138.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/138.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/139.yaml b/workspace/example_designs/layer_shapes/dpt_large/139.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/139.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/140.yaml b/workspace/example_designs/layer_shapes/dpt_large/140.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/140.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/141.yaml b/workspace/example_designs/layer_shapes/dpt_large/141.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/141.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/142.yaml b/workspace/example_designs/layer_shapes/dpt_large/142.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/142.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/143.yaml b/workspace/example_designs/layer_shapes/dpt_large/143.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/143.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/144.yaml b/workspace/example_designs/layer_shapes/dpt_large/144.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/144.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/145.yaml b/workspace/example_designs/layer_shapes/dpt_large/145.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/145.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/146.yaml b/workspace/example_designs/layer_shapes/dpt_large/146.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/146.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/147.yaml b/workspace/example_designs/layer_shapes/dpt_large/147.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/147.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/148.yaml b/workspace/example_designs/layer_shapes/dpt_large/148.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/148.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/149.yaml b/workspace/example_designs/layer_shapes/dpt_large/149.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/149.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/150.yaml b/workspace/example_designs/layer_shapes/dpt_large/150.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/150.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/151.yaml b/workspace/example_designs/layer_shapes/dpt_large/151.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/151.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/152.yaml b/workspace/example_designs/layer_shapes/dpt_large/152.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/152.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/153.yaml b/workspace/example_designs/layer_shapes/dpt_large/153.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/153.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/154.yaml b/workspace/example_designs/layer_shapes/dpt_large/154.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/154.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/155.yaml b/workspace/example_designs/layer_shapes/dpt_large/155.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/155.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/156.yaml b/workspace/example_designs/layer_shapes/dpt_large/156.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/156.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/157.yaml b/workspace/example_designs/layer_shapes/dpt_large/157.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/157.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/158.yaml b/workspace/example_designs/layer_shapes/dpt_large/158.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/158.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/159.yaml b/workspace/example_designs/layer_shapes/dpt_large/159.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/159.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/160.yaml b/workspace/example_designs/layer_shapes/dpt_large/160.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/160.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/161.yaml b/workspace/example_designs/layer_shapes/dpt_large/161.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/161.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/162.yaml b/workspace/example_designs/layer_shapes/dpt_large/162.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/162.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/163.yaml b/workspace/example_designs/layer_shapes/dpt_large/163.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/163.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/164.yaml b/workspace/example_designs/layer_shapes/dpt_large/164.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/164.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/165.yaml b/workspace/example_designs/layer_shapes/dpt_large/165.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/165.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/166.yaml b/workspace/example_designs/layer_shapes/dpt_large/166.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/166.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/167.yaml b/workspace/example_designs/layer_shapes/dpt_large/167.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/167.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/168.yaml b/workspace/example_designs/layer_shapes/dpt_large/168.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/168.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/169.yaml b/workspace/example_designs/layer_shapes/dpt_large/169.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/169.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/170.yaml b/workspace/example_designs/layer_shapes/dpt_large/170.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/170.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/171.yaml b/workspace/example_designs/layer_shapes/dpt_large/171.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/171.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/172.yaml b/workspace/example_designs/layer_shapes/dpt_large/172.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/172.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/173.yaml b/workspace/example_designs/layer_shapes/dpt_large/173.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/173.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/174.yaml b/workspace/example_designs/layer_shapes/dpt_large/174.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/174.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/175.yaml b/workspace/example_designs/layer_shapes/dpt_large/175.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/175.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/176.yaml b/workspace/example_designs/layer_shapes/dpt_large/176.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/176.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/177.yaml b/workspace/example_designs/layer_shapes/dpt_large/177.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/177.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/178.yaml b/workspace/example_designs/layer_shapes/dpt_large/178.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/178.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/179.yaml b/workspace/example_designs/layer_shapes/dpt_large/179.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/179.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/180.yaml b/workspace/example_designs/layer_shapes/dpt_large/180.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/180.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/181.yaml b/workspace/example_designs/layer_shapes/dpt_large/181.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/181.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/182.yaml b/workspace/example_designs/layer_shapes/dpt_large/182.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/182.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/183.yaml b/workspace/example_designs/layer_shapes/dpt_large/183.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/183.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/184.yaml b/workspace/example_designs/layer_shapes/dpt_large/184.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/184.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/185.yaml b/workspace/example_designs/layer_shapes/dpt_large/185.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/185.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/186.yaml b/workspace/example_designs/layer_shapes/dpt_large/186.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/186.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/187.yaml b/workspace/example_designs/layer_shapes/dpt_large/187.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/187.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/188.yaml b/workspace/example_designs/layer_shapes/dpt_large/188.yaml new file mode 100755 index 00000000..0313cb68 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/188.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/189.yaml b/workspace/example_designs/layer_shapes/dpt_large/189.yaml new file mode 100755 index 00000000..f73dcea5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/189.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 577, C: 577, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/190.yaml b/workspace/example_designs/layer_shapes/dpt_large/190.yaml new file mode 100755 index 00000000..268dd32b --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/190.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/191.yaml b/workspace/example_designs/layer_shapes/dpt_large/191.yaml new file mode 100755 index 00000000..27823b8a --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/191.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/192.yaml b/workspace/example_designs/layer_shapes/dpt_large/192.yaml new file mode 100755 index 00000000..560f9609 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/192.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 577} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/193.yaml b/workspace/example_designs/layer_shapes/dpt_large/193.yaml new file mode 100755 index 00000000..247949ec --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/193.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 1024, P: 576} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/194.yaml b/workspace/example_designs/layer_shapes/dpt_large/194.yaml new file mode 100755 index 00000000..f4602f6c --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/194.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 256, P: 24, Q: 24} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/195.yaml b/workspace/example_designs/layer_shapes/dpt_large/195.yaml new file mode 100755 index 00000000..247949ec --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/195.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 1024, P: 576} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/196.yaml b/workspace/example_designs/layer_shapes/dpt_large/196.yaml new file mode 100755 index 00000000..94522471 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/196.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 512, P: 24, Q: 24} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/197.yaml b/workspace/example_designs/layer_shapes/dpt_large/197.yaml new file mode 100755 index 00000000..247949ec --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/197.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 1024, P: 576} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/198.yaml b/workspace/example_designs/layer_shapes/dpt_large/198.yaml new file mode 100755 index 00000000..98655cb7 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/198.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 24, Q: 24} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/199.yaml b/workspace/example_designs/layer_shapes/dpt_large/199.yaml new file mode 100755 index 00000000..247949ec --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/199.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 1024, P: 576} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/200.yaml b/workspace/example_designs/layer_shapes/dpt_large/200.yaml new file mode 100755 index 00000000..98655cb7 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/200.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 24, Q: 24} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/201.yaml b/workspace/example_designs/layer_shapes/dpt_large/201.yaml new file mode 100755 index 00000000..0ecbeae2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/201.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 12, Q: 12, R: 3, S: 3, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/202.yaml b/workspace/example_designs/layer_shapes/dpt_large/202.yaml new file mode 100755 index 00000000..c6256ee9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/202.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 96, Q: 96, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/203.yaml b/workspace/example_designs/layer_shapes/dpt_large/203.yaml new file mode 100755 index 00000000..2f7f9baf --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/203.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 256, P: 48, Q: 48, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/204.yaml b/workspace/example_designs/layer_shapes/dpt_large/204.yaml new file mode 100755 index 00000000..911638fe --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/204.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 256, P: 24, Q: 24, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/205.yaml b/workspace/example_designs/layer_shapes/dpt_large/205.yaml new file mode 100755 index 00000000..a1292967 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/205.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 256, P: 12, Q: 12, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/206.yaml b/workspace/example_designs/layer_shapes/dpt_large/206.yaml new file mode 100755 index 00000000..70d5cebe --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/206.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 12, Q: 12, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/207.yaml b/workspace/example_designs/layer_shapes/dpt_large/207.yaml new file mode 100755 index 00000000..70d5cebe --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/207.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 12, Q: 12, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/208.yaml b/workspace/example_designs/layer_shapes/dpt_large/208.yaml new file mode 100755 index 00000000..16ba0533 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/208.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 24, Q: 24} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/209.yaml b/workspace/example_designs/layer_shapes/dpt_large/209.yaml new file mode 100755 index 00000000..68b10406 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/209.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 24, Q: 24, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/210.yaml b/workspace/example_designs/layer_shapes/dpt_large/210.yaml new file mode 100755 index 00000000..68b10406 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/210.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 24, Q: 24, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/211.yaml b/workspace/example_designs/layer_shapes/dpt_large/211.yaml new file mode 100755 index 00000000..68b10406 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/211.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 24, Q: 24, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/212.yaml b/workspace/example_designs/layer_shapes/dpt_large/212.yaml new file mode 100755 index 00000000..68b10406 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/212.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 24, Q: 24, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/213.yaml b/workspace/example_designs/layer_shapes/dpt_large/213.yaml new file mode 100755 index 00000000..f9b4f250 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/213.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 48, Q: 48} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/214.yaml b/workspace/example_designs/layer_shapes/dpt_large/214.yaml new file mode 100755 index 00000000..16038d93 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/214.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 48, Q: 48, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/215.yaml b/workspace/example_designs/layer_shapes/dpt_large/215.yaml new file mode 100755 index 00000000..16038d93 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/215.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 48, Q: 48, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/216.yaml b/workspace/example_designs/layer_shapes/dpt_large/216.yaml new file mode 100755 index 00000000..16038d93 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/216.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 48, Q: 48, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/217.yaml b/workspace/example_designs/layer_shapes/dpt_large/217.yaml new file mode 100755 index 00000000..16038d93 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/217.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 48, Q: 48, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/218.yaml b/workspace/example_designs/layer_shapes/dpt_large/218.yaml new file mode 100755 index 00000000..ca068cfe --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/218.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 96, Q: 96} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/219.yaml b/workspace/example_designs/layer_shapes/dpt_large/219.yaml new file mode 100755 index 00000000..c6256ee9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/219.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 96, Q: 96, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/220.yaml b/workspace/example_designs/layer_shapes/dpt_large/220.yaml new file mode 100755 index 00000000..c6256ee9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/220.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 96, Q: 96, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/221.yaml b/workspace/example_designs/layer_shapes/dpt_large/221.yaml new file mode 100755 index 00000000..c6256ee9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/221.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 96, Q: 96, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/222.yaml b/workspace/example_designs/layer_shapes/dpt_large/222.yaml new file mode 100755 index 00000000..c6256ee9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/222.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 96, Q: 96, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/223.yaml b/workspace/example_designs/layer_shapes/dpt_large/223.yaml new file mode 100755 index 00000000..f92f42cf --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/223.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 192, Q: 192} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/224.yaml b/workspace/example_designs/layer_shapes/dpt_large/224.yaml new file mode 100755 index 00000000..916552b0 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/224.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 128, P: 192, Q: 192, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/225.yaml b/workspace/example_designs/layer_shapes/dpt_large/225.yaml new file mode 100755 index 00000000..3c05e191 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/225.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 32, P: 384, Q: 384, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/dpt_large/226.yaml b/workspace/example_designs/layer_shapes/dpt_large/226.yaml new file mode 100755 index 00000000..8b02b793 --- /dev/null +++ b/workspace/example_designs/layer_shapes/dpt_large/226.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 32, P: 384, Q: 384} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/000.yaml b/workspace/example_designs/layer_shapes/gpt2/000.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/000.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/001.yaml b/workspace/example_designs/layer_shapes/gpt2/001.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/001.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/002.yaml b/workspace/example_designs/layer_shapes/gpt2/002.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/002.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/003.yaml b/workspace/example_designs/layer_shapes/gpt2/003.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/003.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/004.yaml b/workspace/example_designs/layer_shapes/gpt2/004.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/004.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/005.yaml b/workspace/example_designs/layer_shapes/gpt2/005.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/005.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/006.yaml b/workspace/example_designs/layer_shapes/gpt2/006.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/006.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/007.yaml b/workspace/example_designs/layer_shapes/gpt2/007.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/007.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/008.yaml b/workspace/example_designs/layer_shapes/gpt2/008.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/008.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/009.yaml b/workspace/example_designs/layer_shapes/gpt2/009.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/009.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/010.yaml b/workspace/example_designs/layer_shapes/gpt2/010.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/010.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/011.yaml b/workspace/example_designs/layer_shapes/gpt2/011.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/011.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/012.yaml b/workspace/example_designs/layer_shapes/gpt2/012.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/012.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/013.yaml b/workspace/example_designs/layer_shapes/gpt2/013.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/013.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/014.yaml b/workspace/example_designs/layer_shapes/gpt2/014.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/014.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/015.yaml b/workspace/example_designs/layer_shapes/gpt2/015.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/015.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/016.yaml b/workspace/example_designs/layer_shapes/gpt2/016.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/016.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/017.yaml b/workspace/example_designs/layer_shapes/gpt2/017.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/017.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/018.yaml b/workspace/example_designs/layer_shapes/gpt2/018.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/018.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/019.yaml b/workspace/example_designs/layer_shapes/gpt2/019.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/019.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/020.yaml b/workspace/example_designs/layer_shapes/gpt2/020.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/020.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/021.yaml b/workspace/example_designs/layer_shapes/gpt2/021.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/021.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/022.yaml b/workspace/example_designs/layer_shapes/gpt2/022.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/022.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/023.yaml b/workspace/example_designs/layer_shapes/gpt2/023.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/023.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/024.yaml b/workspace/example_designs/layer_shapes/gpt2/024.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/024.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/025.yaml b/workspace/example_designs/layer_shapes/gpt2/025.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/025.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/026.yaml b/workspace/example_designs/layer_shapes/gpt2/026.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/026.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/027.yaml b/workspace/example_designs/layer_shapes/gpt2/027.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/027.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/028.yaml b/workspace/example_designs/layer_shapes/gpt2/028.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/028.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/029.yaml b/workspace/example_designs/layer_shapes/gpt2/029.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/029.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/030.yaml b/workspace/example_designs/layer_shapes/gpt2/030.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/030.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/031.yaml b/workspace/example_designs/layer_shapes/gpt2/031.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/031.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/032.yaml b/workspace/example_designs/layer_shapes/gpt2/032.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/032.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/033.yaml b/workspace/example_designs/layer_shapes/gpt2/033.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/033.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/034.yaml b/workspace/example_designs/layer_shapes/gpt2/034.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/034.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/035.yaml b/workspace/example_designs/layer_shapes/gpt2/035.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/035.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/036.yaml b/workspace/example_designs/layer_shapes/gpt2/036.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/036.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/037.yaml b/workspace/example_designs/layer_shapes/gpt2/037.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/037.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/038.yaml b/workspace/example_designs/layer_shapes/gpt2/038.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/038.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/039.yaml b/workspace/example_designs/layer_shapes/gpt2/039.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/039.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/040.yaml b/workspace/example_designs/layer_shapes/gpt2/040.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/040.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/041.yaml b/workspace/example_designs/layer_shapes/gpt2/041.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/041.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/042.yaml b/workspace/example_designs/layer_shapes/gpt2/042.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/042.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/043.yaml b/workspace/example_designs/layer_shapes/gpt2/043.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/043.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/044.yaml b/workspace/example_designs/layer_shapes/gpt2/044.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/044.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/045.yaml b/workspace/example_designs/layer_shapes/gpt2/045.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/045.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/046.yaml b/workspace/example_designs/layer_shapes/gpt2/046.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/046.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/047.yaml b/workspace/example_designs/layer_shapes/gpt2/047.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/047.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/048.yaml b/workspace/example_designs/layer_shapes/gpt2/048.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/048.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/049.yaml b/workspace/example_designs/layer_shapes/gpt2/049.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/049.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/050.yaml b/workspace/example_designs/layer_shapes/gpt2/050.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/050.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/051.yaml b/workspace/example_designs/layer_shapes/gpt2/051.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/051.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/052.yaml b/workspace/example_designs/layer_shapes/gpt2/052.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/052.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/053.yaml b/workspace/example_designs/layer_shapes/gpt2/053.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/053.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/054.yaml b/workspace/example_designs/layer_shapes/gpt2/054.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/054.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/055.yaml b/workspace/example_designs/layer_shapes/gpt2/055.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/055.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/056.yaml b/workspace/example_designs/layer_shapes/gpt2/056.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/056.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/057.yaml b/workspace/example_designs/layer_shapes/gpt2/057.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/057.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/058.yaml b/workspace/example_designs/layer_shapes/gpt2/058.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/058.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/059.yaml b/workspace/example_designs/layer_shapes/gpt2/059.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/059.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/060.yaml b/workspace/example_designs/layer_shapes/gpt2/060.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/060.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/061.yaml b/workspace/example_designs/layer_shapes/gpt2/061.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/061.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/062.yaml b/workspace/example_designs/layer_shapes/gpt2/062.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/062.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/063.yaml b/workspace/example_designs/layer_shapes/gpt2/063.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/063.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/064.yaml b/workspace/example_designs/layer_shapes/gpt2/064.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/064.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/065.yaml b/workspace/example_designs/layer_shapes/gpt2/065.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/065.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/066.yaml b/workspace/example_designs/layer_shapes/gpt2/066.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/066.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/067.yaml b/workspace/example_designs/layer_shapes/gpt2/067.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/067.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/068.yaml b/workspace/example_designs/layer_shapes/gpt2/068.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/068.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/069.yaml b/workspace/example_designs/layer_shapes/gpt2/069.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/069.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/070.yaml b/workspace/example_designs/layer_shapes/gpt2/070.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/070.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/071.yaml b/workspace/example_designs/layer_shapes/gpt2/071.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/071.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/072.yaml b/workspace/example_designs/layer_shapes/gpt2/072.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/072.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/073.yaml b/workspace/example_designs/layer_shapes/gpt2/073.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/073.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/074.yaml b/workspace/example_designs/layer_shapes/gpt2/074.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/074.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/075.yaml b/workspace/example_designs/layer_shapes/gpt2/075.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/075.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/076.yaml b/workspace/example_designs/layer_shapes/gpt2/076.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/076.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/077.yaml b/workspace/example_designs/layer_shapes/gpt2/077.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/077.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/078.yaml b/workspace/example_designs/layer_shapes/gpt2/078.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/078.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/079.yaml b/workspace/example_designs/layer_shapes/gpt2/079.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/079.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/080.yaml b/workspace/example_designs/layer_shapes/gpt2/080.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/080.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/081.yaml b/workspace/example_designs/layer_shapes/gpt2/081.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/081.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/082.yaml b/workspace/example_designs/layer_shapes/gpt2/082.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/082.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/083.yaml b/workspace/example_designs/layer_shapes/gpt2/083.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/083.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/084.yaml b/workspace/example_designs/layer_shapes/gpt2/084.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/084.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/085.yaml b/workspace/example_designs/layer_shapes/gpt2/085.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/085.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/086.yaml b/workspace/example_designs/layer_shapes/gpt2/086.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/086.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/087.yaml b/workspace/example_designs/layer_shapes/gpt2/087.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/087.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/088.yaml b/workspace/example_designs/layer_shapes/gpt2/088.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/088.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/089.yaml b/workspace/example_designs/layer_shapes/gpt2/089.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/089.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/090.yaml b/workspace/example_designs/layer_shapes/gpt2/090.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/090.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/091.yaml b/workspace/example_designs/layer_shapes/gpt2/091.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/091.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/092.yaml b/workspace/example_designs/layer_shapes/gpt2/092.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/092.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/093.yaml b/workspace/example_designs/layer_shapes/gpt2/093.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/093.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/094.yaml b/workspace/example_designs/layer_shapes/gpt2/094.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/094.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/095.yaml b/workspace/example_designs/layer_shapes/gpt2/095.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/095.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/096.yaml b/workspace/example_designs/layer_shapes/gpt2/096.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/096.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/097.yaml b/workspace/example_designs/layer_shapes/gpt2/097.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/097.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/098.yaml b/workspace/example_designs/layer_shapes/gpt2/098.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/098.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/099.yaml b/workspace/example_designs/layer_shapes/gpt2/099.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/099.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/100.yaml b/workspace/example_designs/layer_shapes/gpt2/100.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/100.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/101.yaml b/workspace/example_designs/layer_shapes/gpt2/101.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/101.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/102.yaml b/workspace/example_designs/layer_shapes/gpt2/102.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/102.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/103.yaml b/workspace/example_designs/layer_shapes/gpt2/103.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/103.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/104.yaml b/workspace/example_designs/layer_shapes/gpt2/104.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/104.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/105.yaml b/workspace/example_designs/layer_shapes/gpt2/105.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/105.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/106.yaml b/workspace/example_designs/layer_shapes/gpt2/106.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/106.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/107.yaml b/workspace/example_designs/layer_shapes/gpt2/107.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/107.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/108.yaml b/workspace/example_designs/layer_shapes/gpt2/108.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/108.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/109.yaml b/workspace/example_designs/layer_shapes/gpt2/109.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/109.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/110.yaml b/workspace/example_designs/layer_shapes/gpt2/110.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/110.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/111.yaml b/workspace/example_designs/layer_shapes/gpt2/111.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/111.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/112.yaml b/workspace/example_designs/layer_shapes/gpt2/112.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/112.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/113.yaml b/workspace/example_designs/layer_shapes/gpt2/113.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/113.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/114.yaml b/workspace/example_designs/layer_shapes/gpt2/114.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/114.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/115.yaml b/workspace/example_designs/layer_shapes/gpt2/115.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/115.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/116.yaml b/workspace/example_designs/layer_shapes/gpt2/116.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/116.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/117.yaml b/workspace/example_designs/layer_shapes/gpt2/117.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/117.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/118.yaml b/workspace/example_designs/layer_shapes/gpt2/118.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/118.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/119.yaml b/workspace/example_designs/layer_shapes/gpt2/119.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/119.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/120.yaml b/workspace/example_designs/layer_shapes/gpt2/120.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/120.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/121.yaml b/workspace/example_designs/layer_shapes/gpt2/121.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/121.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/122.yaml b/workspace/example_designs/layer_shapes/gpt2/122.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/122.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/123.yaml b/workspace/example_designs/layer_shapes/gpt2/123.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/123.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/124.yaml b/workspace/example_designs/layer_shapes/gpt2/124.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/124.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/125.yaml b/workspace/example_designs/layer_shapes/gpt2/125.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/125.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/126.yaml b/workspace/example_designs/layer_shapes/gpt2/126.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/126.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/127.yaml b/workspace/example_designs/layer_shapes/gpt2/127.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/127.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/128.yaml b/workspace/example_designs/layer_shapes/gpt2/128.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/128.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/129.yaml b/workspace/example_designs/layer_shapes/gpt2/129.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/129.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/130.yaml b/workspace/example_designs/layer_shapes/gpt2/130.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/130.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/131.yaml b/workspace/example_designs/layer_shapes/gpt2/131.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/131.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/132.yaml b/workspace/example_designs/layer_shapes/gpt2/132.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/132.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/133.yaml b/workspace/example_designs/layer_shapes/gpt2/133.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/133.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/134.yaml b/workspace/example_designs/layer_shapes/gpt2/134.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/134.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/135.yaml b/workspace/example_designs/layer_shapes/gpt2/135.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/135.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/136.yaml b/workspace/example_designs/layer_shapes/gpt2/136.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/136.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/137.yaml b/workspace/example_designs/layer_shapes/gpt2/137.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/137.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/138.yaml b/workspace/example_designs/layer_shapes/gpt2/138.yaml new file mode 100755 index 00000000..95bdcf49 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/138.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 3072, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/139.yaml b/workspace/example_designs/layer_shapes/gpt2/139.yaml new file mode 100755 index 00000000..025f6d2a --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/139.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/140.yaml b/workspace/example_designs/layer_shapes/gpt2/140.yaml new file mode 100755 index 00000000..ad1899d1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/140.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/141.yaml b/workspace/example_designs/layer_shapes/gpt2/141.yaml new file mode 100755 index 00000000..73a22234 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/141.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 256, C: 256, P: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/142.yaml b/workspace/example_designs/layer_shapes/gpt2/142.yaml new file mode 100755 index 00000000..10278e97 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/142.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 4096, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/143.yaml b/workspace/example_designs/layer_shapes/gpt2/143.yaml new file mode 100755 index 00000000..4f343605 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/143.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1024, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/gpt2/144.yaml b/workspace/example_designs/layer_shapes/gpt2/144.yaml new file mode 100755 index 00000000..d41bcc03 --- /dev/null +++ b/workspace/example_designs/layer_shapes/gpt2/144.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1024, M: 50257, P: 256} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/000.yaml b/workspace/example_designs/layer_shapes/mobilebert/000.yaml new file mode 100644 index 00000000..88cf5efc --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/000.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 384, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/001.yaml b/workspace/example_designs/layer_shapes/mobilebert/001.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/001.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/002.yaml b/workspace/example_designs/layer_shapes/mobilebert/002.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/002.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/003.yaml b/workspace/example_designs/layer_shapes/mobilebert/003.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/003.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/004.yaml b/workspace/example_designs/layer_shapes/mobilebert/004.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/004.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/005.yaml b/workspace/example_designs/layer_shapes/mobilebert/005.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/005.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/006.yaml b/workspace/example_designs/layer_shapes/mobilebert/006.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/006.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/007.yaml b/workspace/example_designs/layer_shapes/mobilebert/007.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/007.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/008.yaml b/workspace/example_designs/layer_shapes/mobilebert/008.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/008.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/009.yaml b/workspace/example_designs/layer_shapes/mobilebert/009.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/009.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/010.yaml b/workspace/example_designs/layer_shapes/mobilebert/010.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/010.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/011.yaml b/workspace/example_designs/layer_shapes/mobilebert/011.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/011.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/012.yaml b/workspace/example_designs/layer_shapes/mobilebert/012.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/012.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/013.yaml b/workspace/example_designs/layer_shapes/mobilebert/013.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/013.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/014.yaml b/workspace/example_designs/layer_shapes/mobilebert/014.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/014.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/015.yaml b/workspace/example_designs/layer_shapes/mobilebert/015.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/015.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/016.yaml b/workspace/example_designs/layer_shapes/mobilebert/016.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/016.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/017.yaml b/workspace/example_designs/layer_shapes/mobilebert/017.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/017.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/018.yaml b/workspace/example_designs/layer_shapes/mobilebert/018.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/018.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/019.yaml b/workspace/example_designs/layer_shapes/mobilebert/019.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/019.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/020.yaml b/workspace/example_designs/layer_shapes/mobilebert/020.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/020.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/021.yaml b/workspace/example_designs/layer_shapes/mobilebert/021.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/021.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/022.yaml b/workspace/example_designs/layer_shapes/mobilebert/022.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/022.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/023.yaml b/workspace/example_designs/layer_shapes/mobilebert/023.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/023.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/024.yaml b/workspace/example_designs/layer_shapes/mobilebert/024.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/024.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/025.yaml b/workspace/example_designs/layer_shapes/mobilebert/025.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/025.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/026.yaml b/workspace/example_designs/layer_shapes/mobilebert/026.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/026.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/027.yaml b/workspace/example_designs/layer_shapes/mobilebert/027.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/027.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/028.yaml b/workspace/example_designs/layer_shapes/mobilebert/028.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/028.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/029.yaml b/workspace/example_designs/layer_shapes/mobilebert/029.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/029.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/030.yaml b/workspace/example_designs/layer_shapes/mobilebert/030.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/030.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/031.yaml b/workspace/example_designs/layer_shapes/mobilebert/031.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/031.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/032.yaml b/workspace/example_designs/layer_shapes/mobilebert/032.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/032.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/033.yaml b/workspace/example_designs/layer_shapes/mobilebert/033.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/033.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/034.yaml b/workspace/example_designs/layer_shapes/mobilebert/034.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/034.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/035.yaml b/workspace/example_designs/layer_shapes/mobilebert/035.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/035.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/036.yaml b/workspace/example_designs/layer_shapes/mobilebert/036.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/036.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/037.yaml b/workspace/example_designs/layer_shapes/mobilebert/037.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/037.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/038.yaml b/workspace/example_designs/layer_shapes/mobilebert/038.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/038.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/039.yaml b/workspace/example_designs/layer_shapes/mobilebert/039.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/039.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/040.yaml b/workspace/example_designs/layer_shapes/mobilebert/040.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/040.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/041.yaml b/workspace/example_designs/layer_shapes/mobilebert/041.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/041.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/042.yaml b/workspace/example_designs/layer_shapes/mobilebert/042.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/042.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/043.yaml b/workspace/example_designs/layer_shapes/mobilebert/043.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/043.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/044.yaml b/workspace/example_designs/layer_shapes/mobilebert/044.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/044.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/045.yaml b/workspace/example_designs/layer_shapes/mobilebert/045.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/045.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/046.yaml b/workspace/example_designs/layer_shapes/mobilebert/046.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/046.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/047.yaml b/workspace/example_designs/layer_shapes/mobilebert/047.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/047.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/048.yaml b/workspace/example_designs/layer_shapes/mobilebert/048.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/048.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/049.yaml b/workspace/example_designs/layer_shapes/mobilebert/049.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/049.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/050.yaml b/workspace/example_designs/layer_shapes/mobilebert/050.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/050.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/051.yaml b/workspace/example_designs/layer_shapes/mobilebert/051.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/051.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/052.yaml b/workspace/example_designs/layer_shapes/mobilebert/052.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/052.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/053.yaml b/workspace/example_designs/layer_shapes/mobilebert/053.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/053.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/054.yaml b/workspace/example_designs/layer_shapes/mobilebert/054.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/054.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/055.yaml b/workspace/example_designs/layer_shapes/mobilebert/055.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/055.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/056.yaml b/workspace/example_designs/layer_shapes/mobilebert/056.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/056.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/057.yaml b/workspace/example_designs/layer_shapes/mobilebert/057.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/057.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/058.yaml b/workspace/example_designs/layer_shapes/mobilebert/058.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/058.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/059.yaml b/workspace/example_designs/layer_shapes/mobilebert/059.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/059.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/060.yaml b/workspace/example_designs/layer_shapes/mobilebert/060.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/060.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/061.yaml b/workspace/example_designs/layer_shapes/mobilebert/061.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/061.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/062.yaml b/workspace/example_designs/layer_shapes/mobilebert/062.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/062.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/063.yaml b/workspace/example_designs/layer_shapes/mobilebert/063.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/063.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/064.yaml b/workspace/example_designs/layer_shapes/mobilebert/064.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/064.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/065.yaml b/workspace/example_designs/layer_shapes/mobilebert/065.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/065.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/066.yaml b/workspace/example_designs/layer_shapes/mobilebert/066.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/066.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/067.yaml b/workspace/example_designs/layer_shapes/mobilebert/067.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/067.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/068.yaml b/workspace/example_designs/layer_shapes/mobilebert/068.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/068.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/069.yaml b/workspace/example_designs/layer_shapes/mobilebert/069.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/069.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/070.yaml b/workspace/example_designs/layer_shapes/mobilebert/070.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/070.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/071.yaml b/workspace/example_designs/layer_shapes/mobilebert/071.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/071.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/072.yaml b/workspace/example_designs/layer_shapes/mobilebert/072.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/072.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/073.yaml b/workspace/example_designs/layer_shapes/mobilebert/073.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/073.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/074.yaml b/workspace/example_designs/layer_shapes/mobilebert/074.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/074.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/075.yaml b/workspace/example_designs/layer_shapes/mobilebert/075.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/075.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/076.yaml b/workspace/example_designs/layer_shapes/mobilebert/076.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/076.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/077.yaml b/workspace/example_designs/layer_shapes/mobilebert/077.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/077.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/078.yaml b/workspace/example_designs/layer_shapes/mobilebert/078.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/078.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/079.yaml b/workspace/example_designs/layer_shapes/mobilebert/079.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/079.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/080.yaml b/workspace/example_designs/layer_shapes/mobilebert/080.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/080.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/081.yaml b/workspace/example_designs/layer_shapes/mobilebert/081.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/081.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/082.yaml b/workspace/example_designs/layer_shapes/mobilebert/082.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/082.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/083.yaml b/workspace/example_designs/layer_shapes/mobilebert/083.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/083.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/084.yaml b/workspace/example_designs/layer_shapes/mobilebert/084.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/084.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/085.yaml b/workspace/example_designs/layer_shapes/mobilebert/085.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/085.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/086.yaml b/workspace/example_designs/layer_shapes/mobilebert/086.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/086.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/087.yaml b/workspace/example_designs/layer_shapes/mobilebert/087.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/087.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/088.yaml b/workspace/example_designs/layer_shapes/mobilebert/088.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/088.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/089.yaml b/workspace/example_designs/layer_shapes/mobilebert/089.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/089.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/090.yaml b/workspace/example_designs/layer_shapes/mobilebert/090.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/090.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/091.yaml b/workspace/example_designs/layer_shapes/mobilebert/091.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/091.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/092.yaml b/workspace/example_designs/layer_shapes/mobilebert/092.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/092.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/093.yaml b/workspace/example_designs/layer_shapes/mobilebert/093.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/093.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/094.yaml b/workspace/example_designs/layer_shapes/mobilebert/094.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/094.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/095.yaml b/workspace/example_designs/layer_shapes/mobilebert/095.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/095.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/096.yaml b/workspace/example_designs/layer_shapes/mobilebert/096.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/096.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/097.yaml b/workspace/example_designs/layer_shapes/mobilebert/097.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/097.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/098.yaml b/workspace/example_designs/layer_shapes/mobilebert/098.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/098.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/099.yaml b/workspace/example_designs/layer_shapes/mobilebert/099.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/099.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/100.yaml b/workspace/example_designs/layer_shapes/mobilebert/100.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/100.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/101.yaml b/workspace/example_designs/layer_shapes/mobilebert/101.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/101.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/102.yaml b/workspace/example_designs/layer_shapes/mobilebert/102.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/102.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/103.yaml b/workspace/example_designs/layer_shapes/mobilebert/103.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/103.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/104.yaml b/workspace/example_designs/layer_shapes/mobilebert/104.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/104.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/105.yaml b/workspace/example_designs/layer_shapes/mobilebert/105.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/105.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/106.yaml b/workspace/example_designs/layer_shapes/mobilebert/106.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/106.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/107.yaml b/workspace/example_designs/layer_shapes/mobilebert/107.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/107.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/108.yaml b/workspace/example_designs/layer_shapes/mobilebert/108.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/108.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/109.yaml b/workspace/example_designs/layer_shapes/mobilebert/109.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/109.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/110.yaml b/workspace/example_designs/layer_shapes/mobilebert/110.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/110.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/111.yaml b/workspace/example_designs/layer_shapes/mobilebert/111.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/111.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/112.yaml b/workspace/example_designs/layer_shapes/mobilebert/112.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/112.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/113.yaml b/workspace/example_designs/layer_shapes/mobilebert/113.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/113.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/114.yaml b/workspace/example_designs/layer_shapes/mobilebert/114.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/114.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/115.yaml b/workspace/example_designs/layer_shapes/mobilebert/115.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/115.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/116.yaml b/workspace/example_designs/layer_shapes/mobilebert/116.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/116.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/117.yaml b/workspace/example_designs/layer_shapes/mobilebert/117.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/117.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/118.yaml b/workspace/example_designs/layer_shapes/mobilebert/118.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/118.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/119.yaml b/workspace/example_designs/layer_shapes/mobilebert/119.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/119.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/120.yaml b/workspace/example_designs/layer_shapes/mobilebert/120.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/120.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/121.yaml b/workspace/example_designs/layer_shapes/mobilebert/121.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/121.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/122.yaml b/workspace/example_designs/layer_shapes/mobilebert/122.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/122.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/123.yaml b/workspace/example_designs/layer_shapes/mobilebert/123.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/123.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/124.yaml b/workspace/example_designs/layer_shapes/mobilebert/124.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/124.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/125.yaml b/workspace/example_designs/layer_shapes/mobilebert/125.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/125.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/126.yaml b/workspace/example_designs/layer_shapes/mobilebert/126.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/126.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/127.yaml b/workspace/example_designs/layer_shapes/mobilebert/127.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/127.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/128.yaml b/workspace/example_designs/layer_shapes/mobilebert/128.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/128.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/129.yaml b/workspace/example_designs/layer_shapes/mobilebert/129.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/129.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/130.yaml b/workspace/example_designs/layer_shapes/mobilebert/130.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/130.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/131.yaml b/workspace/example_designs/layer_shapes/mobilebert/131.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/131.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/132.yaml b/workspace/example_designs/layer_shapes/mobilebert/132.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/132.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/133.yaml b/workspace/example_designs/layer_shapes/mobilebert/133.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/133.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/134.yaml b/workspace/example_designs/layer_shapes/mobilebert/134.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/134.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/135.yaml b/workspace/example_designs/layer_shapes/mobilebert/135.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/135.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/136.yaml b/workspace/example_designs/layer_shapes/mobilebert/136.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/136.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/137.yaml b/workspace/example_designs/layer_shapes/mobilebert/137.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/137.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/138.yaml b/workspace/example_designs/layer_shapes/mobilebert/138.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/138.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/139.yaml b/workspace/example_designs/layer_shapes/mobilebert/139.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/139.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/140.yaml b/workspace/example_designs/layer_shapes/mobilebert/140.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/140.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/141.yaml b/workspace/example_designs/layer_shapes/mobilebert/141.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/141.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/142.yaml b/workspace/example_designs/layer_shapes/mobilebert/142.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/142.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/143.yaml b/workspace/example_designs/layer_shapes/mobilebert/143.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/143.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/144.yaml b/workspace/example_designs/layer_shapes/mobilebert/144.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/144.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/145.yaml b/workspace/example_designs/layer_shapes/mobilebert/145.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/145.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/146.yaml b/workspace/example_designs/layer_shapes/mobilebert/146.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/146.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/147.yaml b/workspace/example_designs/layer_shapes/mobilebert/147.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/147.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/148.yaml b/workspace/example_designs/layer_shapes/mobilebert/148.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/148.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/149.yaml b/workspace/example_designs/layer_shapes/mobilebert/149.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/149.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/150.yaml b/workspace/example_designs/layer_shapes/mobilebert/150.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/150.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/151.yaml b/workspace/example_designs/layer_shapes/mobilebert/151.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/151.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/152.yaml b/workspace/example_designs/layer_shapes/mobilebert/152.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/152.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/153.yaml b/workspace/example_designs/layer_shapes/mobilebert/153.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/153.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/154.yaml b/workspace/example_designs/layer_shapes/mobilebert/154.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/154.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/155.yaml b/workspace/example_designs/layer_shapes/mobilebert/155.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/155.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/156.yaml b/workspace/example_designs/layer_shapes/mobilebert/156.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/156.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/157.yaml b/workspace/example_designs/layer_shapes/mobilebert/157.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/157.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/158.yaml b/workspace/example_designs/layer_shapes/mobilebert/158.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/158.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/159.yaml b/workspace/example_designs/layer_shapes/mobilebert/159.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/159.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/160.yaml b/workspace/example_designs/layer_shapes/mobilebert/160.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/160.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/161.yaml b/workspace/example_designs/layer_shapes/mobilebert/161.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/161.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/162.yaml b/workspace/example_designs/layer_shapes/mobilebert/162.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/162.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/163.yaml b/workspace/example_designs/layer_shapes/mobilebert/163.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/163.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/164.yaml b/workspace/example_designs/layer_shapes/mobilebert/164.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/164.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/165.yaml b/workspace/example_designs/layer_shapes/mobilebert/165.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/165.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/166.yaml b/workspace/example_designs/layer_shapes/mobilebert/166.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/166.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/167.yaml b/workspace/example_designs/layer_shapes/mobilebert/167.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/167.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/168.yaml b/workspace/example_designs/layer_shapes/mobilebert/168.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/168.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/169.yaml b/workspace/example_designs/layer_shapes/mobilebert/169.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/169.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/170.yaml b/workspace/example_designs/layer_shapes/mobilebert/170.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/170.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/171.yaml b/workspace/example_designs/layer_shapes/mobilebert/171.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/171.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/172.yaml b/workspace/example_designs/layer_shapes/mobilebert/172.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/172.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/173.yaml b/workspace/example_designs/layer_shapes/mobilebert/173.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/173.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/174.yaml b/workspace/example_designs/layer_shapes/mobilebert/174.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/174.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/175.yaml b/workspace/example_designs/layer_shapes/mobilebert/175.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/175.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/176.yaml b/workspace/example_designs/layer_shapes/mobilebert/176.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/176.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/177.yaml b/workspace/example_designs/layer_shapes/mobilebert/177.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/177.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/178.yaml b/workspace/example_designs/layer_shapes/mobilebert/178.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/178.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/179.yaml b/workspace/example_designs/layer_shapes/mobilebert/179.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/179.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/180.yaml b/workspace/example_designs/layer_shapes/mobilebert/180.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/180.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/181.yaml b/workspace/example_designs/layer_shapes/mobilebert/181.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/181.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/182.yaml b/workspace/example_designs/layer_shapes/mobilebert/182.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/182.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/183.yaml b/workspace/example_designs/layer_shapes/mobilebert/183.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/183.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/184.yaml b/workspace/example_designs/layer_shapes/mobilebert/184.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/184.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/185.yaml b/workspace/example_designs/layer_shapes/mobilebert/185.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/185.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/186.yaml b/workspace/example_designs/layer_shapes/mobilebert/186.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/186.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/187.yaml b/workspace/example_designs/layer_shapes/mobilebert/187.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/187.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/188.yaml b/workspace/example_designs/layer_shapes/mobilebert/188.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/188.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/189.yaml b/workspace/example_designs/layer_shapes/mobilebert/189.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/189.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/190.yaml b/workspace/example_designs/layer_shapes/mobilebert/190.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/190.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/191.yaml b/workspace/example_designs/layer_shapes/mobilebert/191.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/191.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/192.yaml b/workspace/example_designs/layer_shapes/mobilebert/192.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/192.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/193.yaml b/workspace/example_designs/layer_shapes/mobilebert/193.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/193.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/194.yaml b/workspace/example_designs/layer_shapes/mobilebert/194.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/194.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/195.yaml b/workspace/example_designs/layer_shapes/mobilebert/195.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/195.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/196.yaml b/workspace/example_designs/layer_shapes/mobilebert/196.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/196.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/197.yaml b/workspace/example_designs/layer_shapes/mobilebert/197.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/197.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/198.yaml b/workspace/example_designs/layer_shapes/mobilebert/198.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/198.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/199.yaml b/workspace/example_designs/layer_shapes/mobilebert/199.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/199.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/200.yaml b/workspace/example_designs/layer_shapes/mobilebert/200.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/200.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/201.yaml b/workspace/example_designs/layer_shapes/mobilebert/201.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/201.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/202.yaml b/workspace/example_designs/layer_shapes/mobilebert/202.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/202.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/203.yaml b/workspace/example_designs/layer_shapes/mobilebert/203.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/203.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/204.yaml b/workspace/example_designs/layer_shapes/mobilebert/204.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/204.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/205.yaml b/workspace/example_designs/layer_shapes/mobilebert/205.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/205.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/206.yaml b/workspace/example_designs/layer_shapes/mobilebert/206.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/206.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/207.yaml b/workspace/example_designs/layer_shapes/mobilebert/207.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/207.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/208.yaml b/workspace/example_designs/layer_shapes/mobilebert/208.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/208.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/209.yaml b/workspace/example_designs/layer_shapes/mobilebert/209.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/209.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/210.yaml b/workspace/example_designs/layer_shapes/mobilebert/210.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/210.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/211.yaml b/workspace/example_designs/layer_shapes/mobilebert/211.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/211.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/212.yaml b/workspace/example_designs/layer_shapes/mobilebert/212.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/212.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/213.yaml b/workspace/example_designs/layer_shapes/mobilebert/213.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/213.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/214.yaml b/workspace/example_designs/layer_shapes/mobilebert/214.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/214.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/215.yaml b/workspace/example_designs/layer_shapes/mobilebert/215.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/215.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/216.yaml b/workspace/example_designs/layer_shapes/mobilebert/216.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/216.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/217.yaml b/workspace/example_designs/layer_shapes/mobilebert/217.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/217.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/218.yaml b/workspace/example_designs/layer_shapes/mobilebert/218.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/218.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/219.yaml b/workspace/example_designs/layer_shapes/mobilebert/219.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/219.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/220.yaml b/workspace/example_designs/layer_shapes/mobilebert/220.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/220.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/221.yaml b/workspace/example_designs/layer_shapes/mobilebert/221.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/221.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/222.yaml b/workspace/example_designs/layer_shapes/mobilebert/222.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/222.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/223.yaml b/workspace/example_designs/layer_shapes/mobilebert/223.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/223.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/224.yaml b/workspace/example_designs/layer_shapes/mobilebert/224.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/224.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/225.yaml b/workspace/example_designs/layer_shapes/mobilebert/225.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/225.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/226.yaml b/workspace/example_designs/layer_shapes/mobilebert/226.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/226.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/227.yaml b/workspace/example_designs/layer_shapes/mobilebert/227.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/227.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/228.yaml b/workspace/example_designs/layer_shapes/mobilebert/228.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/228.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/229.yaml b/workspace/example_designs/layer_shapes/mobilebert/229.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/229.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/230.yaml b/workspace/example_designs/layer_shapes/mobilebert/230.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/230.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/231.yaml b/workspace/example_designs/layer_shapes/mobilebert/231.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/231.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/232.yaml b/workspace/example_designs/layer_shapes/mobilebert/232.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/232.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/233.yaml b/workspace/example_designs/layer_shapes/mobilebert/233.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/233.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/234.yaml b/workspace/example_designs/layer_shapes/mobilebert/234.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/234.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/235.yaml b/workspace/example_designs/layer_shapes/mobilebert/235.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/235.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/236.yaml b/workspace/example_designs/layer_shapes/mobilebert/236.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/236.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/237.yaml b/workspace/example_designs/layer_shapes/mobilebert/237.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/237.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/238.yaml b/workspace/example_designs/layer_shapes/mobilebert/238.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/238.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/239.yaml b/workspace/example_designs/layer_shapes/mobilebert/239.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/239.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/240.yaml b/workspace/example_designs/layer_shapes/mobilebert/240.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/240.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/241.yaml b/workspace/example_designs/layer_shapes/mobilebert/241.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/241.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/242.yaml b/workspace/example_designs/layer_shapes/mobilebert/242.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/242.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/243.yaml b/workspace/example_designs/layer_shapes/mobilebert/243.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/243.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/244.yaml b/workspace/example_designs/layer_shapes/mobilebert/244.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/244.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/245.yaml b/workspace/example_designs/layer_shapes/mobilebert/245.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/245.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/246.yaml b/workspace/example_designs/layer_shapes/mobilebert/246.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/246.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/247.yaml b/workspace/example_designs/layer_shapes/mobilebert/247.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/247.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/248.yaml b/workspace/example_designs/layer_shapes/mobilebert/248.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/248.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/249.yaml b/workspace/example_designs/layer_shapes/mobilebert/249.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/249.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/250.yaml b/workspace/example_designs/layer_shapes/mobilebert/250.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/250.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/251.yaml b/workspace/example_designs/layer_shapes/mobilebert/251.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/251.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/252.yaml b/workspace/example_designs/layer_shapes/mobilebert/252.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/252.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/253.yaml b/workspace/example_designs/layer_shapes/mobilebert/253.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/253.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/254.yaml b/workspace/example_designs/layer_shapes/mobilebert/254.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/254.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/255.yaml b/workspace/example_designs/layer_shapes/mobilebert/255.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/255.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/256.yaml b/workspace/example_designs/layer_shapes/mobilebert/256.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/256.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/257.yaml b/workspace/example_designs/layer_shapes/mobilebert/257.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/257.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/258.yaml b/workspace/example_designs/layer_shapes/mobilebert/258.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/258.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/259.yaml b/workspace/example_designs/layer_shapes/mobilebert/259.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/259.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/260.yaml b/workspace/example_designs/layer_shapes/mobilebert/260.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/260.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/261.yaml b/workspace/example_designs/layer_shapes/mobilebert/261.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/261.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/262.yaml b/workspace/example_designs/layer_shapes/mobilebert/262.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/262.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/263.yaml b/workspace/example_designs/layer_shapes/mobilebert/263.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/263.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/264.yaml b/workspace/example_designs/layer_shapes/mobilebert/264.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/264.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/265.yaml b/workspace/example_designs/layer_shapes/mobilebert/265.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/265.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/266.yaml b/workspace/example_designs/layer_shapes/mobilebert/266.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/266.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/267.yaml b/workspace/example_designs/layer_shapes/mobilebert/267.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/267.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/268.yaml b/workspace/example_designs/layer_shapes/mobilebert/268.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/268.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/269.yaml b/workspace/example_designs/layer_shapes/mobilebert/269.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/269.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/270.yaml b/workspace/example_designs/layer_shapes/mobilebert/270.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/270.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/271.yaml b/workspace/example_designs/layer_shapes/mobilebert/271.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/271.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/272.yaml b/workspace/example_designs/layer_shapes/mobilebert/272.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/272.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/273.yaml b/workspace/example_designs/layer_shapes/mobilebert/273.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/273.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/274.yaml b/workspace/example_designs/layer_shapes/mobilebert/274.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/274.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/275.yaml b/workspace/example_designs/layer_shapes/mobilebert/275.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/275.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/276.yaml b/workspace/example_designs/layer_shapes/mobilebert/276.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/276.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/277.yaml b/workspace/example_designs/layer_shapes/mobilebert/277.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/277.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/278.yaml b/workspace/example_designs/layer_shapes/mobilebert/278.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/278.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/279.yaml b/workspace/example_designs/layer_shapes/mobilebert/279.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/279.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/280.yaml b/workspace/example_designs/layer_shapes/mobilebert/280.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/280.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/281.yaml b/workspace/example_designs/layer_shapes/mobilebert/281.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/281.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/282.yaml b/workspace/example_designs/layer_shapes/mobilebert/282.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/282.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/283.yaml b/workspace/example_designs/layer_shapes/mobilebert/283.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/283.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/284.yaml b/workspace/example_designs/layer_shapes/mobilebert/284.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/284.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/285.yaml b/workspace/example_designs/layer_shapes/mobilebert/285.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/285.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/286.yaml b/workspace/example_designs/layer_shapes/mobilebert/286.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/286.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/287.yaml b/workspace/example_designs/layer_shapes/mobilebert/287.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/287.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/288.yaml b/workspace/example_designs/layer_shapes/mobilebert/288.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/288.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/289.yaml b/workspace/example_designs/layer_shapes/mobilebert/289.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/289.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/290.yaml b/workspace/example_designs/layer_shapes/mobilebert/290.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/290.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/291.yaml b/workspace/example_designs/layer_shapes/mobilebert/291.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/291.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/292.yaml b/workspace/example_designs/layer_shapes/mobilebert/292.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/292.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/293.yaml b/workspace/example_designs/layer_shapes/mobilebert/293.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/293.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/294.yaml b/workspace/example_designs/layer_shapes/mobilebert/294.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/294.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/295.yaml b/workspace/example_designs/layer_shapes/mobilebert/295.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/295.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/296.yaml b/workspace/example_designs/layer_shapes/mobilebert/296.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/296.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/297.yaml b/workspace/example_designs/layer_shapes/mobilebert/297.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/297.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/298.yaml b/workspace/example_designs/layer_shapes/mobilebert/298.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/298.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/299.yaml b/workspace/example_designs/layer_shapes/mobilebert/299.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/299.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/300.yaml b/workspace/example_designs/layer_shapes/mobilebert/300.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/300.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/301.yaml b/workspace/example_designs/layer_shapes/mobilebert/301.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/301.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/302.yaml b/workspace/example_designs/layer_shapes/mobilebert/302.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/302.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/303.yaml b/workspace/example_designs/layer_shapes/mobilebert/303.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/303.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/304.yaml b/workspace/example_designs/layer_shapes/mobilebert/304.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/304.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/305.yaml b/workspace/example_designs/layer_shapes/mobilebert/305.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/305.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/306.yaml b/workspace/example_designs/layer_shapes/mobilebert/306.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/306.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/307.yaml b/workspace/example_designs/layer_shapes/mobilebert/307.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/307.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/308.yaml b/workspace/example_designs/layer_shapes/mobilebert/308.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/308.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/309.yaml b/workspace/example_designs/layer_shapes/mobilebert/309.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/309.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/310.yaml b/workspace/example_designs/layer_shapes/mobilebert/310.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/310.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/311.yaml b/workspace/example_designs/layer_shapes/mobilebert/311.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/311.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/312.yaml b/workspace/example_designs/layer_shapes/mobilebert/312.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/312.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/313.yaml b/workspace/example_designs/layer_shapes/mobilebert/313.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/313.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/314.yaml b/workspace/example_designs/layer_shapes/mobilebert/314.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/314.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/315.yaml b/workspace/example_designs/layer_shapes/mobilebert/315.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/315.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/316.yaml b/workspace/example_designs/layer_shapes/mobilebert/316.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/316.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/317.yaml b/workspace/example_designs/layer_shapes/mobilebert/317.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/317.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/318.yaml b/workspace/example_designs/layer_shapes/mobilebert/318.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/318.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/319.yaml b/workspace/example_designs/layer_shapes/mobilebert/319.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/319.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/320.yaml b/workspace/example_designs/layer_shapes/mobilebert/320.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/320.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/321.yaml b/workspace/example_designs/layer_shapes/mobilebert/321.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/321.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/322.yaml b/workspace/example_designs/layer_shapes/mobilebert/322.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/322.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/323.yaml b/workspace/example_designs/layer_shapes/mobilebert/323.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/323.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/324.yaml b/workspace/example_designs/layer_shapes/mobilebert/324.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/324.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/325.yaml b/workspace/example_designs/layer_shapes/mobilebert/325.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/325.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/326.yaml b/workspace/example_designs/layer_shapes/mobilebert/326.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/326.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/327.yaml b/workspace/example_designs/layer_shapes/mobilebert/327.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/327.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/328.yaml b/workspace/example_designs/layer_shapes/mobilebert/328.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/328.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/329.yaml b/workspace/example_designs/layer_shapes/mobilebert/329.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/329.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/330.yaml b/workspace/example_designs/layer_shapes/mobilebert/330.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/330.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/331.yaml b/workspace/example_designs/layer_shapes/mobilebert/331.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/331.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/332.yaml b/workspace/example_designs/layer_shapes/mobilebert/332.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/332.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/333.yaml b/workspace/example_designs/layer_shapes/mobilebert/333.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/333.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/334.yaml b/workspace/example_designs/layer_shapes/mobilebert/334.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/334.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/335.yaml b/workspace/example_designs/layer_shapes/mobilebert/335.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/335.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/336.yaml b/workspace/example_designs/layer_shapes/mobilebert/336.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/336.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/337.yaml b/workspace/example_designs/layer_shapes/mobilebert/337.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/337.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/338.yaml b/workspace/example_designs/layer_shapes/mobilebert/338.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/338.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/339.yaml b/workspace/example_designs/layer_shapes/mobilebert/339.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/339.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/340.yaml b/workspace/example_designs/layer_shapes/mobilebert/340.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/340.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/341.yaml b/workspace/example_designs/layer_shapes/mobilebert/341.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/341.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/342.yaml b/workspace/example_designs/layer_shapes/mobilebert/342.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/342.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/343.yaml b/workspace/example_designs/layer_shapes/mobilebert/343.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/343.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/344.yaml b/workspace/example_designs/layer_shapes/mobilebert/344.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/344.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/345.yaml b/workspace/example_designs/layer_shapes/mobilebert/345.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/345.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/346.yaml b/workspace/example_designs/layer_shapes/mobilebert/346.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/346.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/347.yaml b/workspace/example_designs/layer_shapes/mobilebert/347.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/347.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/348.yaml b/workspace/example_designs/layer_shapes/mobilebert/348.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/348.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/349.yaml b/workspace/example_designs/layer_shapes/mobilebert/349.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/349.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/350.yaml b/workspace/example_designs/layer_shapes/mobilebert/350.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/350.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/351.yaml b/workspace/example_designs/layer_shapes/mobilebert/351.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/351.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/352.yaml b/workspace/example_designs/layer_shapes/mobilebert/352.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/352.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/353.yaml b/workspace/example_designs/layer_shapes/mobilebert/353.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/353.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/354.yaml b/workspace/example_designs/layer_shapes/mobilebert/354.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/354.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/355.yaml b/workspace/example_designs/layer_shapes/mobilebert/355.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/355.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/356.yaml b/workspace/example_designs/layer_shapes/mobilebert/356.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/356.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/357.yaml b/workspace/example_designs/layer_shapes/mobilebert/357.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/357.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/358.yaml b/workspace/example_designs/layer_shapes/mobilebert/358.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/358.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/359.yaml b/workspace/example_designs/layer_shapes/mobilebert/359.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/359.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/360.yaml b/workspace/example_designs/layer_shapes/mobilebert/360.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/360.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/361.yaml b/workspace/example_designs/layer_shapes/mobilebert/361.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/361.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/362.yaml b/workspace/example_designs/layer_shapes/mobilebert/362.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/362.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/363.yaml b/workspace/example_designs/layer_shapes/mobilebert/363.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/363.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/364.yaml b/workspace/example_designs/layer_shapes/mobilebert/364.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/364.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/365.yaml b/workspace/example_designs/layer_shapes/mobilebert/365.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/365.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/366.yaml b/workspace/example_designs/layer_shapes/mobilebert/366.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/366.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/367.yaml b/workspace/example_designs/layer_shapes/mobilebert/367.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/367.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/368.yaml b/workspace/example_designs/layer_shapes/mobilebert/368.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/368.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/369.yaml b/workspace/example_designs/layer_shapes/mobilebert/369.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/369.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/370.yaml b/workspace/example_designs/layer_shapes/mobilebert/370.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/370.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/371.yaml b/workspace/example_designs/layer_shapes/mobilebert/371.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/371.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/372.yaml b/workspace/example_designs/layer_shapes/mobilebert/372.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/372.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/373.yaml b/workspace/example_designs/layer_shapes/mobilebert/373.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/373.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/374.yaml b/workspace/example_designs/layer_shapes/mobilebert/374.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/374.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/375.yaml b/workspace/example_designs/layer_shapes/mobilebert/375.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/375.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/376.yaml b/workspace/example_designs/layer_shapes/mobilebert/376.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/376.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/377.yaml b/workspace/example_designs/layer_shapes/mobilebert/377.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/377.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/378.yaml b/workspace/example_designs/layer_shapes/mobilebert/378.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/378.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/379.yaml b/workspace/example_designs/layer_shapes/mobilebert/379.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/379.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/380.yaml b/workspace/example_designs/layer_shapes/mobilebert/380.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/380.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/381.yaml b/workspace/example_designs/layer_shapes/mobilebert/381.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/381.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/382.yaml b/workspace/example_designs/layer_shapes/mobilebert/382.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/382.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/383.yaml b/workspace/example_designs/layer_shapes/mobilebert/383.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/383.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/384.yaml b/workspace/example_designs/layer_shapes/mobilebert/384.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/384.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/385.yaml b/workspace/example_designs/layer_shapes/mobilebert/385.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/385.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/386.yaml b/workspace/example_designs/layer_shapes/mobilebert/386.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/386.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/387.yaml b/workspace/example_designs/layer_shapes/mobilebert/387.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/387.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/388.yaml b/workspace/example_designs/layer_shapes/mobilebert/388.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/388.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/389.yaml b/workspace/example_designs/layer_shapes/mobilebert/389.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/389.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/390.yaml b/workspace/example_designs/layer_shapes/mobilebert/390.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/390.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/391.yaml b/workspace/example_designs/layer_shapes/mobilebert/391.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/391.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/392.yaml b/workspace/example_designs/layer_shapes/mobilebert/392.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/392.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/393.yaml b/workspace/example_designs/layer_shapes/mobilebert/393.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/393.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/394.yaml b/workspace/example_designs/layer_shapes/mobilebert/394.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/394.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/395.yaml b/workspace/example_designs/layer_shapes/mobilebert/395.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/395.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/396.yaml b/workspace/example_designs/layer_shapes/mobilebert/396.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/396.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/397.yaml b/workspace/example_designs/layer_shapes/mobilebert/397.yaml new file mode 100644 index 00000000..bb4eb256 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/397.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 32, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/398.yaml b/workspace/example_designs/layer_shapes/mobilebert/398.yaml new file mode 100644 index 00000000..4db184af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/398.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 139, C: 139, P: 4} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/399.yaml b/workspace/example_designs/layer_shapes/mobilebert/399.yaml new file mode 100644 index 00000000..f07796d5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/399.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/400.yaml b/workspace/example_designs/layer_shapes/mobilebert/400.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/400.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/401.yaml b/workspace/example_designs/layer_shapes/mobilebert/401.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/401.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/402.yaml b/workspace/example_designs/layer_shapes/mobilebert/402.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/402.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/403.yaml b/workspace/example_designs/layer_shapes/mobilebert/403.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/403.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/404.yaml b/workspace/example_designs/layer_shapes/mobilebert/404.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/404.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/405.yaml b/workspace/example_designs/layer_shapes/mobilebert/405.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/405.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/406.yaml b/workspace/example_designs/layer_shapes/mobilebert/406.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/406.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/407.yaml b/workspace/example_designs/layer_shapes/mobilebert/407.yaml new file mode 100644 index 00000000..e533968d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/407.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 128, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilebert/408.yaml b/workspace/example_designs/layer_shapes/mobilebert/408.yaml new file mode 100644 index 00000000..82ff9d76 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilebert/408.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 512, P: 139} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/00.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/00.yaml new file mode 100755 index 00000000..369938c3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/00.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3, M: 16, P: 112, Q: 112, R: 3, S: 3, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/01.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/01.yaml new file mode 100755 index 00000000..6ba92eed --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/01.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 16, P: 112, Q: 112, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/02.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/02.yaml new file mode 100755 index 00000000..09d1662e --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/02.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 16, M: 16, P: 112, Q: 112} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/03.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/03.yaml new file mode 100755 index 00000000..940ed3f6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/03.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 16, M: 64, P: 112, Q: 112} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/04.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/04.yaml new file mode 100755 index 00000000..f53dcbd1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/04.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 64, P: 56, Q: 56, R: 3, S: 3, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/05.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/05.yaml new file mode 100755 index 00000000..4adb83d0 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/05.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 24, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/06.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/06.yaml new file mode 100755 index 00000000..6e783180 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/06.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 24, M: 72, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/07.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/07.yaml new file mode 100755 index 00000000..b7e1bd9e --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/07.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 72, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/08.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/08.yaml new file mode 100755 index 00000000..f34f8ae6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/08.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 72, M: 24, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/09.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/09.yaml new file mode 100755 index 00000000..6e783180 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/09.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 24, M: 72, P: 56, Q: 56} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/10.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/10.yaml new file mode 100755 index 00000000..eba33851 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/10.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 72, P: 28, Q: 28, R: 5, S: 5, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/11.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/11.yaml new file mode 100755 index 00000000..d2427009 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/11.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 72, M: 24} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/12.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/12.yaml new file mode 100755 index 00000000..5a7388af --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/12.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 24, M: 72} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/13.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/13.yaml new file mode 100755 index 00000000..16bb0594 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/13.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 72, M: 40, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/14.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/14.yaml new file mode 100755 index 00000000..e72072f1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/14.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 40, M: 120, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/15.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/15.yaml new file mode 100755 index 00000000..e12c91da --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/15.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 120, P: 28, Q: 28, R: 5, S: 5} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/16.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/16.yaml new file mode 100755 index 00000000..b287ea66 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/16.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 120, M: 32} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/17.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/17.yaml new file mode 100755 index 00000000..bb262442 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/17.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 32, M: 120} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/18.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/18.yaml new file mode 100755 index 00000000..94b26fb3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/18.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 120, M: 40, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/19.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/19.yaml new file mode 100755 index 00000000..e72072f1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/19.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 40, M: 120, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/20.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/20.yaml new file mode 100755 index 00000000..e12c91da --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/20.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 120, P: 28, Q: 28, R: 5, S: 5} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/21.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/21.yaml new file mode 100755 index 00000000..b287ea66 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/21.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 120, M: 32} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/22.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/22.yaml new file mode 100755 index 00000000..bb262442 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/22.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 32, M: 120} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/23.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/23.yaml new file mode 100755 index 00000000..94b26fb3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/23.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 120, M: 40, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/24.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/24.yaml new file mode 100755 index 00000000..435df5f1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/24.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 40, M: 240, P: 28, Q: 28} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/25.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/25.yaml new file mode 100755 index 00000000..f8b8e73d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/25.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 240, P: 14, Q: 14, R: 3, S: 3, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/26.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/26.yaml new file mode 100755 index 00000000..651f159c --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/26.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 240, M: 80, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/27.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/27.yaml new file mode 100755 index 00000000..f0b5cb12 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/27.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 80, M: 200, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/28.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/28.yaml new file mode 100755 index 00000000..8014e056 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/28.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 200, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/29.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/29.yaml new file mode 100755 index 00000000..da6f38e7 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/29.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 200, M: 80, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/30.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/30.yaml new file mode 100755 index 00000000..b088c082 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/30.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 80, M: 184, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/31.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/31.yaml new file mode 100755 index 00000000..f3b0e939 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/31.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 184, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/32.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/32.yaml new file mode 100755 index 00000000..dabd0efb --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/32.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 184, M: 80, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/33.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/33.yaml new file mode 100755 index 00000000..b088c082 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/33.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 80, M: 184, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/34.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/34.yaml new file mode 100755 index 00000000..f3b0e939 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/34.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 184, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/35.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/35.yaml new file mode 100755 index 00000000..dabd0efb --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/35.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 184, M: 80, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/36.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/36.yaml new file mode 100755 index 00000000..97b3b621 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/36.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 80, M: 480, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/37.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/37.yaml new file mode 100755 index 00000000..9f967733 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/37.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 480, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/38.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/38.yaml new file mode 100755 index 00000000..825d181a --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/38.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 480, M: 120} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/39.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/39.yaml new file mode 100755 index 00000000..e3058e11 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/39.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 120, M: 480} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/40.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/40.yaml new file mode 100755 index 00000000..7466d4e2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/40.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 480, M: 112, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/41.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/41.yaml new file mode 100755 index 00000000..e0516ccd --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/41.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 112, M: 672, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/42.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/42.yaml new file mode 100755 index 00000000..c913072a --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/42.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 672, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/43.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/43.yaml new file mode 100755 index 00000000..1c48c79f --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/43.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 672, M: 168} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/44.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/44.yaml new file mode 100755 index 00000000..ece5e3e8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/44.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 168, M: 672} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/45.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/45.yaml new file mode 100755 index 00000000..94d03fa1 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/45.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 672, M: 112, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/46.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/46.yaml new file mode 100755 index 00000000..e0516ccd --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/46.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 112, M: 672, P: 14, Q: 14} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/47.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/47.yaml new file mode 100755 index 00000000..1ed101e8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/47.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 672, P: 7, Q: 7, R: 5, S: 5, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/48.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/48.yaml new file mode 100755 index 00000000..1c48c79f --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/48.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 672, M: 168} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/49.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/49.yaml new file mode 100755 index 00000000..ece5e3e8 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/49.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 168, M: 672} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/50.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/50.yaml new file mode 100755 index 00000000..089eca0d --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/50.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 672, M: 160, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/51.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/51.yaml new file mode 100755 index 00000000..7b6c6740 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/51.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 160, M: 960, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/52.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/52.yaml new file mode 100755 index 00000000..08be1241 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/52.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 960, P: 7, Q: 7, R: 5, S: 5} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/53.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/53.yaml new file mode 100755 index 00000000..99990b09 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/53.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 960, M: 240} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/54.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/54.yaml new file mode 100755 index 00000000..db63012e --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/54.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 240, M: 960} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/55.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/55.yaml new file mode 100755 index 00000000..6b6f0860 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/55.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 960, M: 160, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/56.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/56.yaml new file mode 100755 index 00000000..7b6c6740 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/56.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 160, M: 960, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/57.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/57.yaml new file mode 100755 index 00000000..08be1241 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/57.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {G: 960, P: 7, Q: 7, R: 5, S: 5} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/58.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/58.yaml new file mode 100755 index 00000000..99990b09 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/58.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 960, M: 240} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/59.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/59.yaml new file mode 100755 index 00000000..db63012e --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/59.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 240, M: 960} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/60.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/60.yaml new file mode 100755 index 00000000..6b6f0860 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/60.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 960, M: 160, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/61.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/61.yaml new file mode 100755 index 00000000..7b6c6740 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/61.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 160, M: 960, P: 7, Q: 7} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/62.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/62.yaml new file mode 100755 index 00000000..9b5905a5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/62.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 960, M: 1280} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/mobilenet_v3/63.yaml b/workspace/example_designs/layer_shapes/mobilenet_v3/63.yaml new file mode 100755 index 00000000..b82770bb --- /dev/null +++ b/workspace/example_designs/layer_shapes/mobilenet_v3/63.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 1280, M: 1000} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/000.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/000.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/000.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/001.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/001.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/001.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/002.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/002.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/002.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/003.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/003.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/003.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/004.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/004.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/004.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/005.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/005.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/005.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/006.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/006.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/006.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/007.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/007.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/007.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/008.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/008.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/008.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/009.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/009.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/009.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/010.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/010.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/010.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/011.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/011.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/011.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/012.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/012.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/012.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/013.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/013.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/013.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/014.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/014.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/014.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/015.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/015.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/015.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/016.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/016.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/016.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/017.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/017.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/017.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/018.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/018.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/018.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/019.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/019.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/019.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/020.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/020.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/020.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/021.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/021.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/021.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/022.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/022.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/022.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/023.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/023.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/023.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/024.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/024.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/024.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/025.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/025.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/025.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/026.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/026.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/026.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/027.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/027.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/027.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/028.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/028.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/028.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/029.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/029.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/029.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/030.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/030.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/030.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/031.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/031.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/031.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/032.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/032.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/032.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/033.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/033.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/033.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/034.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/034.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/034.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/035.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/035.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/035.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/036.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/036.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/036.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/037.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/037.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/037.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/038.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/038.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/038.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/039.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/039.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/039.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/040.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/040.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/040.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/041.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/041.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/041.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/042.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/042.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/042.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/043.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/043.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/043.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/044.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/044.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/044.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/045.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/045.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/045.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/046.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/046.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/046.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/047.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/047.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/047.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/048.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/048.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/048.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/049.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/049.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/049.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/050.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/050.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/050.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/051.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/051.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/051.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/052.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/052.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/052.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/053.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/053.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/053.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/054.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/054.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/054.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/055.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/055.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/055.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/056.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/056.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/056.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/057.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/057.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/057.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/058.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/058.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/058.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/059.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/059.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/059.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/060.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/060.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/060.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/061.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/061.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/061.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/062.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/062.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/062.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/063.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/063.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/063.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/064.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/064.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/064.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/065.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/065.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/065.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/066.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/066.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/066.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/067.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/067.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/067.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/068.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/068.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/068.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/069.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/069.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/069.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/070.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/070.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/070.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/071.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/071.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/071.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/072.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/072.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/072.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/073.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/073.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/073.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/074.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/074.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/074.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/075.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/075.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/075.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/076.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/076.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/076.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/077.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/077.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/077.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/078.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/078.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/078.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/079.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/079.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/079.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/080.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/080.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/080.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/081.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/081.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/081.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/082.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/082.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/082.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/083.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/083.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/083.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/084.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/084.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/084.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/085.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/085.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/085.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/086.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/086.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/086.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/087.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/087.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/087.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/088.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/088.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/088.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/089.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/089.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/089.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/090.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/090.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/090.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/091.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/091.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/091.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/092.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/092.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/092.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/093.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/093.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/093.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/094.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/094.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/094.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/095.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/095.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/095.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/096.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/096.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/096.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/097.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/097.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/097.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/098.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/098.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/098.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/099.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/099.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/099.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/100.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/100.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/100.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/101.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/101.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/101.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/102.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/102.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/102.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/103.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/103.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/103.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/104.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/104.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/104.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/105.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/105.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/105.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/106.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/106.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/106.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/107.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/107.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/107.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/108.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/108.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/108.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/109.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/109.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/109.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/110.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/110.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/110.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/111.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/111.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/111.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/112.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/112.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/112.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/113.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/113.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/113.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/114.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/114.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/114.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/115.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/115.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/115.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/116.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/116.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/116.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/117.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/117.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/117.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/118.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/118.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/118.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/119.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/119.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/119.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/120.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/120.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/120.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/121.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/121.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/121.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/122.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/122.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/122.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/123.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/123.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/123.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/124.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/124.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/124.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/125.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/125.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/125.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/126.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/126.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/126.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/127.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/127.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/127.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/128.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/128.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/128.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/129.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/129.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/129.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/130.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/130.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/130.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/131.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/131.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/131.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/132.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/132.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/132.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/133.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/133.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/133.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/134.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/134.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/134.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/135.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/135.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/135.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/136.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/136.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/136.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/137.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/137.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/137.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/138.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/138.yaml new file mode 100755 index 00000000..19a74158 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/138.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 6144, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/139.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/139.yaml new file mode 100755 index 00000000..2dacf255 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/139.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 1024, C: 64, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/140.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/140.yaml new file mode 100755 index 00000000..fc7cbe73 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/140.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 1024, G: 32, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/141.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/141.yaml new file mode 100755 index 00000000..c949007e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/141.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/142.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/142.yaml new file mode 100755 index 00000000..593298e5 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/142.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 8192, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/143.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/143.yaml new file mode 100755 index 00000000..5a69f672 --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/143.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 8192, M: 2048, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/msft_phi_1_5/144.yaml b/workspace/example_designs/layer_shapes/msft_phi_1_5/144.yaml new file mode 100755 index 00000000..2986c35e --- /dev/null +++ b/workspace/example_designs/layer_shapes/msft_phi_1_5/144.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 2048, M: 51200, P: 1024} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/problem_base.yaml b/workspace/example_designs/layer_shapes/problem_base.yaml new file mode 100755 index 00000000..46c2b0e6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/problem_base.yaml @@ -0,0 +1,64 @@ +problem_base_ignore: &problem_base + version: 0.4 + instance: + N: 1 # Batch size + + C: 1 # Input channels + H: 1 # Input height + W: 1 # Input width + G: 1 # Groups + + R: 1 # Weight height + S: 1 # Weight width + Hdilation: 1 # (Conv) Height dilation + Hstride: 1 # (Conv) Height stride + Wdilation: 1 # (Conv) Width dilation + Wstride: 1 # (Conv) Width stride + + M: 1 # Output channels + P: 1 # Output height + Q: 1 # Output width + shape: + coefficients: + - {name: Wstride, default: 1} + - {name: Hstride, default: 1} + - {name: Wdilation, default: 1} + - {name: Hdilation, default: 1} + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - - - G + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - - - G + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + - - - G + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + - G diff --git a/workspace/example_designs/layer_shapes/resnet18/00.yaml b/workspace/example_designs/layer_shapes/resnet18/00.yaml new file mode 100644 index 00000000..b0800106 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/00.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3, M: 64, P: 112, Q: 112, R: 7, S: 7, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/01.yaml b/workspace/example_designs/layer_shapes/resnet18/01.yaml new file mode 100644 index 00000000..e1da14d6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/01.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 64, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/02.yaml b/workspace/example_designs/layer_shapes/resnet18/02.yaml new file mode 100644 index 00000000..e1da14d6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/02.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 64, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/03.yaml b/workspace/example_designs/layer_shapes/resnet18/03.yaml new file mode 100644 index 00000000..e1da14d6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/03.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 64, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/04.yaml b/workspace/example_designs/layer_shapes/resnet18/04.yaml new file mode 100644 index 00000000..e1da14d6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/04.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 64, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/05.yaml b/workspace/example_designs/layer_shapes/resnet18/05.yaml new file mode 100644 index 00000000..13f41ba6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/05.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 128, P: 28, Q: 28, R: 3, S: 3, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/06.yaml b/workspace/example_designs/layer_shapes/resnet18/06.yaml new file mode 100644 index 00000000..10307459 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/06.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/07.yaml b/workspace/example_designs/layer_shapes/resnet18/07.yaml new file mode 100644 index 00000000..5711f09f --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/07.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 128, P: 28, Q: 28, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/08.yaml b/workspace/example_designs/layer_shapes/resnet18/08.yaml new file mode 100644 index 00000000..10307459 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/08.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/09.yaml b/workspace/example_designs/layer_shapes/resnet18/09.yaml new file mode 100644 index 00000000..10307459 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/09.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/10.yaml b/workspace/example_designs/layer_shapes/resnet18/10.yaml new file mode 100644 index 00000000..d50b78a2 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/10.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 256, P: 14, Q: 14, R: 3, S: 3, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/11.yaml b/workspace/example_designs/layer_shapes/resnet18/11.yaml new file mode 100644 index 00000000..b784a1ae --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/11.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/12.yaml b/workspace/example_designs/layer_shapes/resnet18/12.yaml new file mode 100644 index 00000000..177b2932 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/12.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 256, P: 14, Q: 14, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/13.yaml b/workspace/example_designs/layer_shapes/resnet18/13.yaml new file mode 100644 index 00000000..b784a1ae --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/13.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/14.yaml b/workspace/example_designs/layer_shapes/resnet18/14.yaml new file mode 100644 index 00000000..b784a1ae --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/14.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/15.yaml b/workspace/example_designs/layer_shapes/resnet18/15.yaml new file mode 100644 index 00000000..00c125f0 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/15.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 512, P: 7, Q: 7, R: 3, S: 3, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/16.yaml b/workspace/example_designs/layer_shapes/resnet18/16.yaml new file mode 100644 index 00000000..d02e3640 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/16.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 512, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/17.yaml b/workspace/example_designs/layer_shapes/resnet18/17.yaml new file mode 100644 index 00000000..f13cd4f7 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/17.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 512, P: 7, Q: 7, HStride: 2, WStride: 2} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/18.yaml b/workspace/example_designs/layer_shapes/resnet18/18.yaml new file mode 100644 index 00000000..d02e3640 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/18.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 512, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/19.yaml b/workspace/example_designs/layer_shapes/resnet18/19.yaml new file mode 100644 index 00000000..d02e3640 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/19.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 512, P: 7, Q: 7, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/resnet18/20.yaml b/workspace/example_designs/layer_shapes/resnet18/20.yaml new file mode 100644 index 00000000..324c0ce9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/resnet18/20.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 1000} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/00.yaml b/workspace/example_designs/layer_shapes/vgg16/00.yaml new file mode 100644 index 00000000..a70a7e70 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/00.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3, M: 64, P: 224, Q: 224, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/01.yaml b/workspace/example_designs/layer_shapes/vgg16/01.yaml new file mode 100644 index 00000000..e7de7d66 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/01.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 64, P: 224, Q: 224, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/02.yaml b/workspace/example_designs/layer_shapes/vgg16/02.yaml new file mode 100644 index 00000000..c63822c6 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/02.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 64, M: 128, P: 112, Q: 112, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/03.yaml b/workspace/example_designs/layer_shapes/vgg16/03.yaml new file mode 100644 index 00000000..b159aa29 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/03.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 128, P: 112, Q: 112, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/04.yaml b/workspace/example_designs/layer_shapes/vgg16/04.yaml new file mode 100644 index 00000000..3087af5e --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/04.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 128, M: 256, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/05.yaml b/workspace/example_designs/layer_shapes/vgg16/05.yaml new file mode 100644 index 00000000..fc46700c --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/05.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/06.yaml b/workspace/example_designs/layer_shapes/vgg16/06.yaml new file mode 100644 index 00000000..fc46700c --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/06.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 256, P: 56, Q: 56, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/07.yaml b/workspace/example_designs/layer_shapes/vgg16/07.yaml new file mode 100644 index 00000000..b89da646 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/07.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 256, M: 512, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/08.yaml b/workspace/example_designs/layer_shapes/vgg16/08.yaml new file mode 100644 index 00000000..05420ad9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/08.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 512, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/09.yaml b/workspace/example_designs/layer_shapes/vgg16/09.yaml new file mode 100644 index 00000000..05420ad9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/09.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 512, P: 28, Q: 28, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/10.yaml b/workspace/example_designs/layer_shapes/vgg16/10.yaml new file mode 100644 index 00000000..4fb49a38 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/10.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 512, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/11.yaml b/workspace/example_designs/layer_shapes/vgg16/11.yaml new file mode 100644 index 00000000..4fb49a38 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/11.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 512, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/12.yaml b/workspace/example_designs/layer_shapes/vgg16/12.yaml new file mode 100644 index 00000000..4fb49a38 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/12.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 512, M: 512, P: 14, Q: 14, R: 3, S: 3} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/13.yaml b/workspace/example_designs/layer_shapes/vgg16/13.yaml new file mode 100644 index 00000000..0ac83f1f --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/13.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 25088, M: 4096} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/14.yaml b/workspace/example_designs/layer_shapes/vgg16/14.yaml new file mode 100644 index 00000000..143987c9 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/14.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 4096} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vgg16/15.yaml b/workspace/example_designs/layer_shapes/vgg16/15.yaml new file mode 100644 index 00000000..bc3c538e --- /dev/null +++ b/workspace/example_designs/layer_shapes/vgg16/15.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 4096, M: 1000} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/00.yaml b/workspace/example_designs/layer_shapes/vision_transformer/00.yaml new file mode 100755 index 00000000..3f4d2ccb --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/00.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3, M: 768, P: 14, Q: 14, R: 16, S: 16, HStride: 16, WStride: 16} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/01.yaml b/workspace/example_designs/layer_shapes/vision_transformer/01.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/01.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/02.yaml b/workspace/example_designs/layer_shapes/vision_transformer/02.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/02.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/03.yaml b/workspace/example_designs/layer_shapes/vision_transformer/03.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/03.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/04.yaml b/workspace/example_designs/layer_shapes/vision_transformer/04.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/04.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/05.yaml b/workspace/example_designs/layer_shapes/vision_transformer/05.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/05.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/06.yaml b/workspace/example_designs/layer_shapes/vision_transformer/06.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/06.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/07.yaml b/workspace/example_designs/layer_shapes/vision_transformer/07.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/07.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/08.yaml b/workspace/example_designs/layer_shapes/vision_transformer/08.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/08.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/09.yaml b/workspace/example_designs/layer_shapes/vision_transformer/09.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/09.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/10.yaml b/workspace/example_designs/layer_shapes/vision_transformer/10.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/10.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/11.yaml b/workspace/example_designs/layer_shapes/vision_transformer/11.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/11.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/12.yaml b/workspace/example_designs/layer_shapes/vision_transformer/12.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/12.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/13.yaml b/workspace/example_designs/layer_shapes/vision_transformer/13.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/13.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/14.yaml b/workspace/example_designs/layer_shapes/vision_transformer/14.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/14.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/15.yaml b/workspace/example_designs/layer_shapes/vision_transformer/15.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/15.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/16.yaml b/workspace/example_designs/layer_shapes/vision_transformer/16.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/16.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/17.yaml b/workspace/example_designs/layer_shapes/vision_transformer/17.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/17.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/18.yaml b/workspace/example_designs/layer_shapes/vision_transformer/18.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/18.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/19.yaml b/workspace/example_designs/layer_shapes/vision_transformer/19.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/19.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/20.yaml b/workspace/example_designs/layer_shapes/vision_transformer/20.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/20.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/21.yaml b/workspace/example_designs/layer_shapes/vision_transformer/21.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/21.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/22.yaml b/workspace/example_designs/layer_shapes/vision_transformer/22.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/22.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/23.yaml b/workspace/example_designs/layer_shapes/vision_transformer/23.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/23.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/24.yaml b/workspace/example_designs/layer_shapes/vision_transformer/24.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/24.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/25.yaml b/workspace/example_designs/layer_shapes/vision_transformer/25.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/25.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/26.yaml b/workspace/example_designs/layer_shapes/vision_transformer/26.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/26.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/27.yaml b/workspace/example_designs/layer_shapes/vision_transformer/27.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/27.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/28.yaml b/workspace/example_designs/layer_shapes/vision_transformer/28.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/28.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/29.yaml b/workspace/example_designs/layer_shapes/vision_transformer/29.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/29.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/30.yaml b/workspace/example_designs/layer_shapes/vision_transformer/30.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/30.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/31.yaml b/workspace/example_designs/layer_shapes/vision_transformer/31.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/31.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/32.yaml b/workspace/example_designs/layer_shapes/vision_transformer/32.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/32.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/33.yaml b/workspace/example_designs/layer_shapes/vision_transformer/33.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/33.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/34.yaml b/workspace/example_designs/layer_shapes/vision_transformer/34.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/34.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/35.yaml b/workspace/example_designs/layer_shapes/vision_transformer/35.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/35.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/36.yaml b/workspace/example_designs/layer_shapes/vision_transformer/36.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/36.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/37.yaml b/workspace/example_designs/layer_shapes/vision_transformer/37.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/37.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/38.yaml b/workspace/example_designs/layer_shapes/vision_transformer/38.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/38.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/39.yaml b/workspace/example_designs/layer_shapes/vision_transformer/39.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/39.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/40.yaml b/workspace/example_designs/layer_shapes/vision_transformer/40.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/40.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/41.yaml b/workspace/example_designs/layer_shapes/vision_transformer/41.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/41.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/42.yaml b/workspace/example_designs/layer_shapes/vision_transformer/42.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/42.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/43.yaml b/workspace/example_designs/layer_shapes/vision_transformer/43.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/43.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/44.yaml b/workspace/example_designs/layer_shapes/vision_transformer/44.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/44.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/45.yaml b/workspace/example_designs/layer_shapes/vision_transformer/45.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/45.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/46.yaml b/workspace/example_designs/layer_shapes/vision_transformer/46.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/46.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/47.yaml b/workspace/example_designs/layer_shapes/vision_transformer/47.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/47.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/48.yaml b/workspace/example_designs/layer_shapes/vision_transformer/48.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/48.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/49.yaml b/workspace/example_designs/layer_shapes/vision_transformer/49.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/49.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/50.yaml b/workspace/example_designs/layer_shapes/vision_transformer/50.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/50.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/51.yaml b/workspace/example_designs/layer_shapes/vision_transformer/51.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/51.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/52.yaml b/workspace/example_designs/layer_shapes/vision_transformer/52.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/52.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/53.yaml b/workspace/example_designs/layer_shapes/vision_transformer/53.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/53.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/54.yaml b/workspace/example_designs/layer_shapes/vision_transformer/54.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/54.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/55.yaml b/workspace/example_designs/layer_shapes/vision_transformer/55.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/55.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/56.yaml b/workspace/example_designs/layer_shapes/vision_transformer/56.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/56.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/57.yaml b/workspace/example_designs/layer_shapes/vision_transformer/57.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/57.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/58.yaml b/workspace/example_designs/layer_shapes/vision_transformer/58.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/58.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/59.yaml b/workspace/example_designs/layer_shapes/vision_transformer/59.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/59.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/60.yaml b/workspace/example_designs/layer_shapes/vision_transformer/60.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/60.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/61.yaml b/workspace/example_designs/layer_shapes/vision_transformer/61.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/61.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/62.yaml b/workspace/example_designs/layer_shapes/vision_transformer/62.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/62.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/63.yaml b/workspace/example_designs/layer_shapes/vision_transformer/63.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/63.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/64.yaml b/workspace/example_designs/layer_shapes/vision_transformer/64.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/64.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/65.yaml b/workspace/example_designs/layer_shapes/vision_transformer/65.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/65.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/66.yaml b/workspace/example_designs/layer_shapes/vision_transformer/66.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/66.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/67.yaml b/workspace/example_designs/layer_shapes/vision_transformer/67.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/67.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/68.yaml b/workspace/example_designs/layer_shapes/vision_transformer/68.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/68.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/69.yaml b/workspace/example_designs/layer_shapes/vision_transformer/69.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/69.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/70.yaml b/workspace/example_designs/layer_shapes/vision_transformer/70.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/70.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/71.yaml b/workspace/example_designs/layer_shapes/vision_transformer/71.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/71.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/72.yaml b/workspace/example_designs/layer_shapes/vision_transformer/72.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/72.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/73.yaml b/workspace/example_designs/layer_shapes/vision_transformer/73.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/73.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/74.yaml b/workspace/example_designs/layer_shapes/vision_transformer/74.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/74.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/75.yaml b/workspace/example_designs/layer_shapes/vision_transformer/75.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/75.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/76.yaml b/workspace/example_designs/layer_shapes/vision_transformer/76.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/76.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/77.yaml b/workspace/example_designs/layer_shapes/vision_transformer/77.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/77.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/78.yaml b/workspace/example_designs/layer_shapes/vision_transformer/78.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/78.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/79.yaml b/workspace/example_designs/layer_shapes/vision_transformer/79.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/79.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/80.yaml b/workspace/example_designs/layer_shapes/vision_transformer/80.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/80.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/81.yaml b/workspace/example_designs/layer_shapes/vision_transformer/81.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/81.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/82.yaml b/workspace/example_designs/layer_shapes/vision_transformer/82.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/82.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/83.yaml b/workspace/example_designs/layer_shapes/vision_transformer/83.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/83.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/84.yaml b/workspace/example_designs/layer_shapes/vision_transformer/84.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/84.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/85.yaml b/workspace/example_designs/layer_shapes/vision_transformer/85.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/85.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/86.yaml b/workspace/example_designs/layer_shapes/vision_transformer/86.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/86.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/87.yaml b/workspace/example_designs/layer_shapes/vision_transformer/87.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/87.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/88.yaml b/workspace/example_designs/layer_shapes/vision_transformer/88.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/88.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/89.yaml b/workspace/example_designs/layer_shapes/vision_transformer/89.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/89.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/90.yaml b/workspace/example_designs/layer_shapes/vision_transformer/90.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/90.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/91.yaml b/workspace/example_designs/layer_shapes/vision_transformer/91.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/91.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/92.yaml b/workspace/example_designs/layer_shapes/vision_transformer/92.yaml new file mode 100755 index 00000000..e96235ba --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/92.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 64, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/93.yaml b/workspace/example_designs/layer_shapes/vision_transformer/93.yaml new file mode 100755 index 00000000..6725ff9b --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/93.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {M: 197, C: 197, P: 12} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/94.yaml b/workspace/example_designs/layer_shapes/vision_transformer/94.yaml new file mode 100755 index 00000000..2c580652 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/94.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/95.yaml b/workspace/example_designs/layer_shapes/vision_transformer/95.yaml new file mode 100755 index 00000000..1a29c457 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/95.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 3072, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/96.yaml b/workspace/example_designs/layer_shapes/vision_transformer/96.yaml new file mode 100755 index 00000000..989076d3 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/96.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 3072, M: 768, P: 197} + + \ No newline at end of file diff --git a/workspace/example_designs/layer_shapes/vision_transformer/97.yaml b/workspace/example_designs/layer_shapes/vision_transformer/97.yaml new file mode 100755 index 00000000..911199f4 --- /dev/null +++ b/workspace/example_designs/layer_shapes/vision_transformer/97.yaml @@ -0,0 +1,6 @@ +{{include_text('../problem_base.yaml')}} +problem: + <<<: *problem_base + instance: {C: 768, M: 1000} + + \ No newline at end of file diff --git a/workspace/example_designs/run_example_designs.py b/workspace/example_designs/run_example_designs.py new file mode 100644 index 00000000..b314fd59 --- /dev/null +++ b/workspace/example_designs/run_example_designs.py @@ -0,0 +1,110 @@ +from typing import Optional +import os +import threading +import pytimeloop.timeloopfe.v4 as tl +from util_functions import * +import joblib + +Specification = tl.Specification +THIS_SCRIPT_DIR = os.path.abspath(os.path.dirname(os.path.realpath(__file__))) +EXAMPLE_DIR = os.path.join(THIS_SCRIPT_DIR, "example_designs") +TOP_JINJA_PATH = os.path.join(EXAMPLE_DIR, "top.yaml.jinja2") + + +def get_architecture_targets(): + targets = [] + for root, dirs, files in os.walk(EXAMPLE_DIR): + if "arch.yaml" in files: + c = open(os.path.join(root, "arch.yaml")).read() + if "version: 0.4" not in c: + continue + targets.append(os.path.relpath(root, EXAMPLE_DIR)) + return sorted(targets) + + +def run_mapper( + arch_target, + problem: Optional[str] = None, + generate_ref_outputs: Optional[bool] = False, + remove_sparse_opts: Optional[bool] = False, +): + # This data will be supplied when rendering the top jinja2 template + jinja_parse_data = {"architecture": arch_target} + + if problem is None: + problem_name = "default_problem" + else: + problem_name = os.path.basename(problem).split(".")[0] + jinja_parse_data["problem"] = problem + + # Set up output directory + if generate_ref_outputs: + output_dir = f"{EXAMPLE_DIR}/{arch_target}/ref_outputs/{problem_name}" + else: + output_dir = f"{EXAMPLE_DIR}/{arch_target}/outputs/{problem_name}" + + print(f"\n\nRunning mapper for target {arch_target} in {output_dir}...") + + # Set up output directory + if os.path.exists(output_dir): + os.system(f"rm -rf {output_dir}") + os.makedirs(output_dir, exist_ok=True) + + spec = tl.Specification.from_yaml_files( + TOP_JINJA_PATH, jinja_parse_data=jinja_parse_data + ) + + # Used for some Sparseloop tutorials to test with/without sparse optimizations + if remove_sparse_opts: + remove_sparse_optimizations(spec) + tl.call_mapper(spec, output_dir=output_dir, dump_intermediate_to=output_dir) + assert os.path.exists(f"{output_dir}/timeloop-mapper.stats.txt"), ( + f"Mapper did not generate expected output for {arch_target}. " + f"Please check the logs for more details." + ) + + +if __name__ == "__main__": + args = get_arguments() + arch_targets = get_architecture_targets() + + if args.clear_outputs: + os.system(f"rm -rf {EXAMPLE_DIR}/*/outputs") + os.system(f"rm -rf {EXAMPLE_DIR}/*/ref_outputs") + os.system(f"rm -rf {EXAMPLE_DIR}/*/*/outputs") + os.system(f"rm -rf {EXAMPLE_DIR}/*/*/ref_outputs") + exit(0) + + arch = args.architecture + + # Default to the first architecture if none is specified + if arch is None or not arch: + arch = arch_targets[0] + # If arch is "all", run all architectures + if str(arch).lower() == "all": + arch = arch_targets + + # If arch is a string, make it a list + arch = [arch] if isinstance(arch, str) else arch + + # Put togher the list of problems to run + problems = [None] + if args.problem: + problem = os.path.join(THIS_SCRIPT_DIR, "layer_shapes", args.problem) + if os.path.isdir(problem): + problems = [ + os.path.join(problem, f) + for f in os.listdir(problem) + if f.endswith(".yaml") + ] + else: + problems = [problem] + + # Run parallel processes for all architectures and problems + joblib.Parallel(n_jobs=args.n_jobs)( + joblib.delayed(run_mapper)( + a, p, args.generate_ref_outputs, args.remove_sparse_opts + ) + for a in arch + for p in sorted(problems) + ) diff --git a/workspace/example_designs/util_functions.py b/workspace/example_designs/util_functions.py new file mode 100644 index 00000000..7fa5d4f4 --- /dev/null +++ b/workspace/example_designs/util_functions.py @@ -0,0 +1,57 @@ +import argparse +import pytimeloop.timeloopfe.v4 as tl + + +def get_arguments(): + argparser = argparse.ArgumentParser() + argparser.add_argument( + "--clear-outputs", + default=False, + action="store_true", + help="Clear all generated outputs", + ) + argparser.add_argument( + "--architecture", + type=str, + default="eyeriss_like", + help="Architecture to run in the example_designs directory. " + "If 'all' is given, all architectures will be run.", + ) + argparser.add_argument( + "--generate-ref-outputs", + default=False, + action="store_true", + help="Generate reference outputs instead of outputs", + ) + argparser.add_argument( + "--problem", + type=str, + default=None, + help="Problem to run in the layer_shapes directory. If a directory is " + "specified, all problems in the directory will be run. If not specified, " + "the default problem will be run.", + ) + argparser.add_argument( + "--n_jobs", type=int, default=None, help="Number of jobs to run in parallel" + ) + argparser.add_argument( + "--remove-sparse-opts", + default=False, + action="store_true", + help="Remove sparse optimizations", + ) + return argparser.parse_args() + + +def remove_sparse_optimizations(spec: tl.Specification): + """This function is used by some Sparseloop tutorials to test with/without + sparse optimizations""" + for s in spec.get_nodes_of_type( + ( + tl.sparse_optimizations.ActionOptimizationList, + tl.sparse_optimizations.RepresentationFormat, + tl.sparse_optimizations.ComputeOptimization, + ) + ): + s.clear() + return spec diff --git a/workspace/scripts/generate_refs.sh b/workspace/scripts/generate_refs.sh new file mode 100755 index 00000000..68209482 --- /dev/null +++ b/workspace/scripts/generate_refs.sh @@ -0,0 +1,17 @@ +#!/bin/bash +python3 generate_timeloop_spec.py + + +cd .. + +cd example_designs +python3 run_example_designs.py --clear-outputs +python3 run_example_designs.py --architecture all --generate-ref-output + +cd ../tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop +python3 run_example.py --clear-outputs +python3 run_example.py all --generate-ref-output + +cd ../timeloop+accelergy +python3 run_example.py --clear-outputs +python3 run_example.py all --generate-ref-output \ No newline at end of file diff --git a/workspace/scripts/generate_timeloop_spec.py b/workspace/scripts/generate_timeloop_spec.py new file mode 100644 index 00000000..34884168 --- /dev/null +++ b/workspace/scripts/generate_timeloop_spec.py @@ -0,0 +1,11 @@ +if __name__ == "__main__": + import pytimeloop.timeloopfe.v4 as tl + import os + + THIS_SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) + TOP_PATH = f"{THIS_SCRIPT_DIR}/../tutorial_exercises/02_interface_and_design_space_exploration_2024/top.yaml.jinja" + TARGET_FILE = f"{THIS_SCRIPT_DIR}/../timeloop_spec.yaml" + spec = tl.Specification.from_yaml_files(TOP_PATH) + with open(TARGET_FILE, "w") as f: + f.write(tl.doc.get_property_yaml(spec)) + print(f"Timeloop specification written to {TARGET_FILE}") diff --git a/workspace/scripts/remove_yaml.sh b/workspace/scripts/remove_yaml.sh new file mode 100755 index 00000000..cf73a85d --- /dev/null +++ b/workspace/scripts/remove_yaml.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# 检查是否提供了文件路径 +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +input_file="$1" + +# 检查文件是否存在 +if [ ! -f "$input_file" ]; then + echo "Error: File not found at '$input_file'" + exit 1 +fi + +# 使用 awk 来删除 constraints 块 +awk ' +BEGIN { + in_constraints = 0; # 标志,表示当前是否在 constraints 块内部 + constraints_indent = -1; # 记录 constraints: 所在行的缩进级别 +} + +{ + # 获取当前行的缩进 + match($0, /^[[:space:]]*/); + current_indent = RLENGTH; # RLENGTH 是匹配到的空白字符的长度 + + # 检查是否进入 constraints 块 + if ($0 ~ /^[[:space:]]*constraints:/) { + in_constraints = 1; + constraints_indent = current_indent; + next; # 跳过当前这一行 (constraints: 这一行) + } + + # 如果在 constraints 块内部 + if (in_constraints) { + # 如果当前行的缩进小于等于 constraints 块的缩进, + # 则表示 constraints 块结束了,并且当前行是下一个有效行 + if (current_indent <= constraints_indent && current_indent != 0) { # 检查 current_indent != 0 排除顶层块 + in_constraints = 0; # 退出 constraints 模式 + constraints_indent = -1; + print; # 打印当前行 + } else if (current_indent == 0 && $0 !~ /^[[:space:]]*$/ && in_constraints){ # 处理顶层 + in_constraints = 0; # 退出 constraints 模式 + constraints_indent = -1; + print; # 打印当前行 + } else if ($0 ~ /^[[:space:]]*$/ && current_indent <= constraints_indent) { # 处理空行,如果空行缩进小于等于constraints缩进,也结束。 + in_constraints = 0; + constraints_indent = -1; + print; # 打印空行,因为它标志着块的结束 + } + # 如果仍然在 constraints 块内部(缩进更大),则不打印当前行,跳过 + else { + next; + } + } else { + # 如果不在 constraints 块内部,则正常打印行 + print; + } +} +' "$input_file" diff --git a/workspace/scripts/test_notebooks.sh b/workspace/scripts/test_notebooks.sh new file mode 100755 index 00000000..2bdc8962 --- /dev/null +++ b/workspace/scripts/test_notebooks.sh @@ -0,0 +1,20 @@ +#!/bin/bash +pip3 install jupyter_contrib_nbextensions notebook==6.4.12 +pip3 install notebook==6.4.12 + +for f in $(find ../tutorial_exercises -name "*.ipynb"); do + if [[ $f == *"nbconvert"* ]]; then + continue + fi + echo "Testing notebook: $f" + # Capture the output and only print it if the notebook fails + jupyter nbconvert --to notebook --execute $f > /tmp/nbtest.log 2>&1 + if [ $? -ne 0 ]; then + echo "Failed: $f" + cat /tmp/nbtest.log + echo "Failed: $f" + find ../tutorial_exercises -name "*.nbconvert.ipynb" -exec rm {} \; + exit 1 + fi +done +find ../tutorial_exercises -name "*.nbconvert.ipynb" -exec rm {} \; \ No newline at end of file diff --git a/workspace/scripts/trans_yaml.sh b/workspace/scripts/trans_yaml.sh new file mode 100755 index 00000000..1b8ecb5d --- /dev/null +++ b/workspace/scripts/trans_yaml.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# 检查是否提供了文件路径 +if [ -z "$1" ]; then + echo "用法: $0 " + exit 1 +fi + +input_file="$1" + +# 检查文件是否存在 +if [ ! -f "$input_file" ]; then + echo "错误: 文件未找到: '$input_file'" + exit 1 +fi + +# 使用 awk 进行所有转换 +awk ' +{ + # 任务1: 将 "type: datatype" 替换为 "type: dataspace" + if ($0 ~ /type:[[:space:]]*datatype/) { + sub(/type:[[:space:]]*datatype/, "type: dataspace"); + } + + # 任务2: 将 factors: C4 M4... 转换为 factors: C=4 M=4... + if ($0 ~ /factors:/) { + # 创建当前行的副本,用于操作 factors 字符串 + line_copy = $0; + + # 移除 "factors:" 及其前面的所有内容和后面的空格 + sub(/^.*factors:[[:space:]]*/, "", line_copy); + + # 构建新的 factors 字符串 + new_factors_str = ""; + # 按一个或多个空格分割字符串 + split(line_copy, arr, /[[:space:]]+/); + + for (i in arr) { + # 检查是否符合 "大写字母+数字" 的模式 (例如 C4, M8) + if (arr[i] ~ /^[A-Z][0-9]+$/) { + # 提取变量 (第一个字符) 和值 (其余部分) + var = substr(arr[i], 1, 1); + val = substr(arr[i], 2); + if (new_factors_str != "") { + new_factors_str = new_factors_str " "; + } + new_factors_str = new_factors_str var "=" val; + } else { + # 如果不符合预期模式,则保持不变 + if (new_factors_str != "") { + new_factors_str = new_factors_str " "; + } + new_factors_str = new_factors_str arr[i]; + } + } + # 将原始行中的 factors 部分替换为新字符串 + sub(/factors:[[:space:]]*(.*)/, "factors: " new_factors_str); + } + + # 任务3: 将 "inter_PE_spatial" 替换为 "PE" + # 注意:这里使用 sub,因为它只需要替换当前行的内容。 + # 如果一行中可能出现多次 inter_PE_spatial 且都需要替换,则使用 gsub + gsub(/inter_PE_spatial/, "PE"); + + # 任务4: 将 "inter_PE_column_spatial" 替换为 "PE_column" + gsub(/inter_PE_column_spatial/, "PE_column"); + + print; # 打印(可能已修改的)行 +} +' "$input_file" diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/README.md new file mode 100644 index 00000000..79daeccd --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/README.md @@ -0,0 +1,13 @@ +Timeloop/Accelergy Tutorial +=========================== + +This exercises/ directory contains a set of exercises to explore both Timeloop and Accelergy. + +- To open terminal in Jupyter Notebook: at the base page (root folder), click the `New` button (near the upper right corner), and select terminal. + +- To try out a simple example do the following: + +``` + cd timeloop/ + python3 run_example.py 00 +``` diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/README.md new file mode 100644 index 00000000..f8936002 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/README.md @@ -0,0 +1,41 @@ +Exercise 1 +========== + +## Overview + +This exercise runs a energy reference table (ERT) generation on a simple architecture +that is described by primitive components. + +## Steps + +To run the exercise, we need to provide 1 input to the Accelergy: +- An architecture. + + +We have provided the `.yaml` file in the input folder. To run this exercise, type: + +``` + accelergy input/ -o output/ +``` + +This generates the following output in folder `output/` +- The received input files and the important generation progress are reported on `stdout`. +- the ERTs (pJ/action) for the primitive components in the design are saved in `ERT.yaml`. +- A summary of the ERTs are saved in `ERT_summary.yaml`. +- The area reference tables (ERTs) (umm^2/component) for the components in the architecture `ART.yaml`(note that the DRAM area is a place holder as it is not on-chip). +- The area reference table summary for the components in the architecture `ART_summary.yaml`. +- A summary of the parsed architecture is saved in `flattened_arch.yaml`. + +## Observations + +- The `input/architecture.yaml` file contains a top-level key `architecture` that is important + for Accelergy to identify the file content. +- The `output/flattned_architecture.yaml` file contains interpreted information for each component in the design. + Note that all the default attributes that are not specified in the architecture description is added. This file can + be used to check if Accelergy correctly understands the architecture description. +- The `output/ERT.yaml` file contains the detailed ERTs for all the components in the design. For each action, if the + action has runtime arguments, the energy is reported for each (set of) possible argument value(s). How does the arguments + affect energy/action values? Is it important to have fine-grained action types? +- The `output/ERT_summary.yaml` file contains the a summarized ERT of the components in the design. For each action of + a component, if the action has run time arguments, it summarizes the min, max, and average of the action energy; + otherwise, it reports the energy of the action. \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/input/architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/input/architecture.yaml new file mode 100644 index 00000000..b0de6819 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/input/architecture.yaml @@ -0,0 +1,36 @@ +architecture: +# ============================================================ +# Architecture Description +# ============================================================ + version: 0.3 + subtree: + - name: simple_primitive # top-level name key has the value as your design name, there can be only one component is the top level list, whic is the design + attributes: # shared attributes for all subcomponents in design + technology: 45nm + voltage: 1V + latency: 5ns + local: # list of components in the design + - name: GLB + class: SRAM + attributes: # hardware attributes (the ones same as default attributes can be ommitted) + width: 32 + depth: 1024 + n_rd_ports: 0 + n_wr_ports: 0 + n_rdwr_ports: 2 + n_banks: 1 + subtree: # abstract hierarchy in the architecture + - name: PE + attributes: + datawidth: 16 + local: + - name: MAC # component under the PE + class: intmac + attributes: + num_pipeline_stages: 1 + width: 8 + - name: buffer # local storage under the PE + class: regfile + attributes: + width: 16 + depth: 24 \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/output/.gitkeep b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/output/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ART.yaml new file mode 100644 index 00000000..106e88f5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ART.yaml @@ -0,0 +1,9 @@ +ART: + version: 0.3 + tables: + - name: simple_primitive.PE.MAC + area: 1239.5 + - name: simple_primitive.PE.buffer + area: 358.18 + - name: simple_primitive.GLB + area: 29133.3 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ART_summary.yaml new file mode 100644 index 00000000..84e6ae58 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ART_summary.yaml @@ -0,0 +1,12 @@ +ART_summary: + version: 0.3 + table_summary: + - name: simple_primitive.PE.MAC + area: 1239.5 + primitive_estimations: Aladdin_table + - name: simple_primitive.PE.buffer + area: 358.18 + primitive_estimations: Aladdin_table + - name: simple_primitive.GLB + area: 29133.3 + primitive_estimations: Cacti diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ERT.yaml new file mode 100644 index 00000000..676ee5e7 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ERT.yaml @@ -0,0 +1,107 @@ +ERT: + version: 0.3 + tables: + - name: simple_primitive.PE.MAC + actions: + - name: mac_random + arguments: null + energy: 2.2 + - name: mac_reused + arguments: null + energy: 1.877 + - name: mac_gated + arguments: null + energy: 0.103 + - name: idle + arguments: null + energy: 0.066 + - name: simple_primitive.PE.buffer + actions: + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.006 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.144 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.115 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.253 + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.006 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.144 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.115 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.253 + - name: idle + arguments: null + energy: 0.006 + - name: simple_primitive.GLB + actions: + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.0 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 3.374 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 1.446 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 4.82 + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.0 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 3.146 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 1.348 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 4.494 + - name: idle + arguments: null + energy: 0.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ERT_summary.yaml new file mode 100644 index 00000000..4c42e330 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/ERT_summary.yaml @@ -0,0 +1,46 @@ +ERT_summary: + version: 0.3 + table_summary: + - name: simple_primitive.PE.MAC + actions: + - name: mac_random + energy: 2.2 + - name: mac_reused + energy: 1.877 + - name: mac_gated + energy: 0.103 + - name: idle + energy: 0.066 + primitive_estimation(s): + - name: simple_primitive.PE.MAC + estimator: Aladdin_table + - name: simple_primitive.PE.buffer + actions: + - name: read + average_energy: 0.13 + max_energy: 0.253 + min_energy: 0.006 + - name: write + average_energy: 0.13 + max_energy: 0.253 + min_energy: 0.006 + - name: idle + energy: 0.006 + primitive_estimation(s): + - name: simple_primitive.PE.buffer + estimator: Aladdin_table + - name: simple_primitive.GLB + actions: + - name: read + average_energy: 2.41 + max_energy: 4.82 + min_energy: 0.0 + - name: write + average_energy: 2.247 + max_energy: 4.494 + min_energy: 0.0 + - name: idle + energy: 0.0 + primitive_estimation(s): + - name: simple_primitive.GLB + estimator: Cacti diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/flattened_architecture.yaml new file mode 100644 index 00000000..f8a23dd4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/01_primitive_architecture_ERT/ref-output/flattened_architecture.yaml @@ -0,0 +1,32 @@ +architecture: + version: 0.3 + local: + - name: simple_primitive.PE.MAC + class: intmac + attributes: + width: 16 + latency: 5ns + num_pipeline_stages: 1 + technology: 45nm + voltage: 1V + - name: simple_primitive.PE.buffer + class: regfile + attributes: + datawidth: 16 + depth: 24 + latency: 5ns + n_ports: 2 + technology: 45nm + voltage: 1V + - name: simple_primitive.GLB + class: SRAM + attributes: + depth: 1024 + latency: 5ns + n_banks: 1 + n_rd_ports: 0 + n_rdwr_ports: 2 + n_wr_ports: 0 + technology: 45nm + voltage: 1V + width: 32 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/README.md new file mode 100644 index 00000000..dd710e73 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/README.md @@ -0,0 +1,40 @@ +Exercise 2 +========== + +## Overview + +This exercise runs a energy estimation on a simple architecture using the provided ERT and an action counts. + +## Steps + +To run the exercise, we need to provide 3 inputs to the Accelergy: +- An ERT. +- Action counts. +- A flattened architecture/ the original hierarchical architecture. + + +We have provided the `.yaml` files in the input folder. To run this exercise, type: + +``` + accelergy input/ -o output/ -f energy_estimation +``` + +This generates the following output in folder `output/` +- The received input files and the important evaluation progress are reported on `stdout`. +- The estimation (pJ) for the primitive components in the design are saved in `energy_estimation.yaml`. + + +## Observations + +- The `input/ERT.yaml` file contains a top-level key `ERT` that is important + for Accelergy to identify the file content. +- The `input/flattened_architecture.yaml` file contains a top-level key `flattened_architecture` that is important + for Accelergy to identify the file content. Try to change the component names in the action counts and rerun, + does Accelergy complain? Why is this check can sometimes be useful? + This file is optional and is used to check if the component names in the action counts are legal. +- The `output/estimation.yaml` file contains the energy estimations of all components specified in the action counts. +- Is this step faster than the energy reference table (ERT) generation step? Will this step be even faster if the design +is large and complicated? +- Try play with the counts of each action in the `input/action_counts.yaml`, do we need to regenerate the ERT after the +count is updated? Why is it useful to have energy calculator independent from ERT generator? + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/ERT.yaml new file mode 100644 index 00000000..676ee5e7 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/ERT.yaml @@ -0,0 +1,107 @@ +ERT: + version: 0.3 + tables: + - name: simple_primitive.PE.MAC + actions: + - name: mac_random + arguments: null + energy: 2.2 + - name: mac_reused + arguments: null + energy: 1.877 + - name: mac_gated + arguments: null + energy: 0.103 + - name: idle + arguments: null + energy: 0.066 + - name: simple_primitive.PE.buffer + actions: + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.006 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.144 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.115 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.253 + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.006 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.144 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.115 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.253 + - name: idle + arguments: null + energy: 0.006 + - name: simple_primitive.GLB + actions: + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.0 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 3.374 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 1.446 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 4.82 + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.0 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 3.146 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 1.348 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 4.494 + - name: idle + arguments: null + energy: 0.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/action_counts.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/action_counts.yaml new file mode 100644 index 00000000..99a0c914 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/action_counts.yaml @@ -0,0 +1,41 @@ +action_counts: + # ================================================ + # Action Counts + # ================================================ + version: 0.3 + subtree: + - name: simple_primitive + local: + - name: GLB # leaf node (component) + action_counts: + - name: read + arguments: + data_delta: 1 + address_delta: 1 + counts: 20 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + counts: 10 + subtree: + - name: PE + local: + - name: buffer + action_counts: + - name: read + arguments: + address_delta: 1 + data_delta: 0 + counts: 50 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + counts: 20 + - name: MAC + action_counts: + - name: mac_random + counts: 30 + - name: mac_gated + counts: 15 \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/flattened_architecture.yaml new file mode 100644 index 00000000..5bf491bc --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/input/flattened_architecture.yaml @@ -0,0 +1,33 @@ +architecture: + version: 0.3 + local: + - name: simple_primitive.PE.MAC + class: intmac + attributes: + datawidth: 16 + latency: 5ns + num_pipeline_stages: 1 + technology: 45nm + voltage: 1V + - name: simple_primitive.PE.buffer + class: regfile + attributes: + datawidth: 16 + depth: 24 + latency: 5ns + n_ports: 2 + technology: 45nm + voltage: 1V + width: 16 + - name: simple_primitive.GLB + class: SRAM + attributes: + depth: 1024 + latency: 5ns + n_banks: 1 + n_rd_ports: 0 + n_rdwr_ports: 2 + n_wr_ports: 0 + technology: 45nm + voltage: 1V + width: 32 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/output/.gitkeep b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/output/.gitkeep new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/output/.gitkeep @@ -0,0 +1 @@ + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/output/energy_estimation.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/output/energy_estimation.yaml new file mode 100644 index 00000000..1159cc56 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/output/energy_estimation.yaml @@ -0,0 +1,10 @@ +energy_estimation: + version: '0.4' + components: + - name: simple_primitive.GLB + energy: 141.34 + - name: simple_primitive.PE.buffer + energy: 10.81 + - name: simple_primitive.PE.MAC + energy: 67.545 + Total: 219.695 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/ref-output/energy_estimation.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/ref-output/energy_estimation.yaml new file mode 100644 index 00000000..f88b0dd0 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/02_primitive_architecture_energy/ref-output/energy_estimation.yaml @@ -0,0 +1,10 @@ +energy_estimation: + version: 0.3 + components: + - name: simple_primitive.GLB + energy: 141.34 + - name: simple_primitive.PE.buffer + energy: 10.81 + - name: simple_primitive.PE.MAC + energy: 67.545 + Total: 219.695 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/README.md new file mode 100644 index 00000000..871f5c96 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/README.md @@ -0,0 +1,47 @@ +Exercise 3 +========== + +## Overview + +This exercise runs a energy estimation on an architecture +that is described with user-defined compound components. +## Steps + +To run the exercise, we need to provide 3 inputs to the Accelergy: +- An architecture description. +- A compound component description. +- An action counts. + + +We have provided the `.yaml` files in the input folder. To run this exercise, type: + +``` + accelergy input/ -o output/ +``` + +This generates the following output in folder `output/` +- The received input files and the important evaluation progress are reported on `stdout`. +- The energy reference tables (ERTs) (pJ/action) for the components in the architecture `ERT.yaml`. +- The energy reference table summary for the components in the architecture `ERT_summary.yaml`. +- The area reference tables (ERTs) (umm^2/component) for the components in the architecture `ART.yaml`(note that the DRAM area is a place holder as it is not on-chip). +- The area reference table summary for the components in the architecture `ART_summary.yaml`. +- The flattened architecture that describes the class and attributes of the components in +the architecture is saved to `flattened_architecture.yaml`. +- The estimation (pJ) for the primitive components in the design are saved in `estimation.yaml`. + + +## Observations + +- Note that the `input/compound_component.yaml` contains an `includedir` keyword that indcludes all the files in the `component` subfolder. +- The compound components can be specified separately to avoid long and tedious compound component descriptions. Examine the files, what are the subcomponents of the compound components? How are the compound actions defined? +- Are the components in the architecture description compound components or primitive components? +- Are the actions counts in terms of compound action or primitive components? If we change the definitions of the compound components in the compound component description files, do we need to generate a new set of action counts? +- According to the compound description, try describe the architecture with primitive components, would it be tedious? If we change add a fifo to store the output data from a local buffer, what do we need to change in the architecture description? What do we need to change in the action counts file? + + +## Takeaways +- We can define our own compound components and use them to define the architecture. +- Modeling the design using compound components + - Reduces the architecture description and action counts complexity + - Makes architecture redesigns much faster as no new action counts need to be + generated. diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/action_counts.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/action_counts.yaml new file mode 100644 index 00000000..3b625f8d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/action_counts.yaml @@ -0,0 +1,54 @@ +action_counts: + # ================================================ + # Action Counts + # ================================================ + version: 0.2 + local: + - name: simple_compound.GLB + action_counts: + - name: read + arguments: + data_delta: 1 + address_delta: 1 + counts: 20 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + counts: 10 + - name: simple_compound.PE[0].buffer + action_counts: + - name: read + arguments: + address_delta: 1 + data_delta: 0 + counts: 50 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + counts: 20 + - name: simple_compound.PE[0].MAC + action_counts: + - name: mac_random + counts: 30 + - name: mac_gated + counts: 15 + - name: simple_compound.PE[1].buffer + action_counts: + - name: read + arguments: + address_delta: 1 + data_delta: 0 + counts: 40 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + counts: 30 + - name: simple_compound.PE[1].MAC + action_counts: + - name: mac_random + counts: 30 + - name: mac_gated + counts: 15 \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/architecture.yaml new file mode 100644 index 00000000..3fd90a0b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/architecture.yaml @@ -0,0 +1,33 @@ +architecture: +# ============================================================ +# Architecture Description +# ============================================================ + version: 0.3 + subtree: + - name: simple_compound + attributes: + technology: 45nm + voltage: 1V + latency: 5ns + local: # list of components in the design + - name: GLB + class: smartbuffer_SRAM + attributes: # hardware attributes (the ones same as default attributes can be ommitted) + memory_depth: 1024 + memory_width: 32 + n_banks: 4 + subtree: # abstract hierarchy in the architecture + - name: PE[0..4] + attributes: + datawidth: 16 + local: + - name: MAC # component under the PE + class: mac_fifo + attributes: + num_pipeline_stages: 1 + - name: buffer # local storage under the PE + class: smartbuffer_RF + attributes: + memory_width: 16 + memory_depth: 24 + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/mac_fifo.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/mac_fifo.yaml new file mode 100644 index 00000000..188856bf --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/mac_fifo.yaml @@ -0,0 +1,62 @@ +compound_components: + version: 0.3 + classes: + - name: mac_fifo + attributes: + technology: 40nm + datawidth: 16 + fifo_depth: 2 + num_pipeline_stages: 1 + subcomponents: + - name: mac + class: intmac + attributes: + technology: technology + width: datawidth + num_pipeline_stages: num_pipeline_stages + - name: output_fifo + class: FIFO + attributes: + technology: technology + depth: fifo_depth + width: datawidth * 2 + datawidth: datawidth * 2 + actions: + - name: mac_random + subcomponents: + - name: mac + actions: + - name: mac_random + - name: output_fifo + actions: + - name: push + - name: pop # accounting for the future pop of the data + - name: mac_reused + subcomponents: + - name: mac + actions: + - name: mac_reused + - name: output_fifo + actions: + - name: push + - name: pop # accounting for the future pop of the data + - name: mac_gated + subcomponents: + - name: mac + actions: + - name: mac_gated + - name: output_fifo + actions: + - name: idle + - name: idle + subcomponents: + - name: mac + actions: + - name: idle + - name: output_fifo + actions: + - name: idle + + + + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/smartbuffer_RF.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/smartbuffer_RF.yaml new file mode 100644 index 00000000..b202f10e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/smartbuffer_RF.yaml @@ -0,0 +1,68 @@ +compound_components: + version: 0.3 + classes: + - name: smartbuffer_RF + attributes: + technology: 45nm + memory_depth: 12 + memory_width: 16 + n_rdwr_ports: 2 + n_banks: 1 + n_buffets: 1 + subcomponents: + - name: storage + class: regfile + attributes: + technology: technology + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + n_banks: n_banks + - name: address_generators[0..1] + class: intadder + attributes: + technology: technology + width: log(memory_depth) + actions: + - name: write + arguments: + data_delta: 0..1 + address_delta: 0..n_banks + subcomponents: + - name: storage + actions: + - name: write + arguments: + data_delta: data_delta + address_delta: address_delta + - name: address_generators[0] + actions: + - name: add + - name: address_generators[1] + actions: + - name: idle + - name: read + arguments: + data_delta: 0..1 + address_delta: 0..n_banks + subcomponents: + - name: storage + actions: + - name: read + arguments: + data_delta: data_delta + address_delta: address_delta + - name: address_generators[1] + actions: + - name: add + - name: address_generators[0] + actions: + - name: idle + - name: idle + subcomponents: + - name: storage + actions: + - name: idle + - name: address_generators[0..1] + actions: + - name: idle diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/smartbuffer_SRAM.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/smartbuffer_SRAM.yaml new file mode 100644 index 00000000..aaba7a41 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/input/components/smartbuffer_SRAM.yaml @@ -0,0 +1,68 @@ +compound_components: + version: 0.3 + classes: + - name: smartbuffer_SRAM + attributes: + technology: 45nm + memory_depth: 12 + memory_width: 16 + n_rdwr_ports: 2 + n_banks: 1 + n_buffets: 1 + subcomponents: + - name: storage + class: SRAM + attributes: + technology: technology + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + n_banks: n_banks + - name: address_generators[0..1] + class: intadder + attributes: + technology: technology + width: log(memory_depth) + actions: + - name: write + arguments: + data_delta: 0..1 + address_delta: 0..n_banks + subcomponents: + - name: storage + actions: + - name: write + arguments: + data_delta: data_delta + address_delta: address_delta + - name: address_generators[0] + actions: + - name: count + - name: address_generators[1] + actions: + - name: idle + - name: read + arguments: + data_delta: 0..1 + address_delta: 0..n_banks + subcomponents: + - name: storage + actions: + - name: read + arguments: + data_delta: data_delta + address_delta: address_delta + - name: address_generators[1] + actions: + - name: add + - name: address_generators[0] + actions: + - name: idle + - name: idle + subcomponents: + - name: storage + actions: + - name: idle + - name: address_generators[0..1] + actions: + - name: idle diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/.gitkeep b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/.gitkeep new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/.gitkeep @@ -0,0 +1 @@ + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ART.yaml new file mode 100644 index 00000000..3f92667c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: simple_compound.PE[0..4].MAC + area: 1433.0475 + - name: simple_compound.PE[0..4].buffer + area: 393.734477 + - name: simple_compound.GLB + area: 39527.545841 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ART_summary.yaml new file mode 100644 index 00000000..0dcfb4b3 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ART_summary.yaml @@ -0,0 +1,24 @@ +ART_summary: + version: '0.4' + table_summary: + - name: simple_compound.PE[0..4].MAC + area: 1433.0475 + primitive_estimations: + - name: mac + estimator: Aladdin_table + - name: output_fifo + estimator: Aladdin_table + - name: simple_compound.PE[0..4].buffer + area: 393.734477 + primitive_estimations: + - name: storage + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: simple_compound.GLB + area: 39527.545841 + primitive_estimations: + - name: storage + estimator: CACTI + - name: address_generators[0..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ERT.yaml new file mode 100644 index 00000000..47fd1229 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ERT.yaml @@ -0,0 +1,167 @@ +ERT: + version: '0.4' + tables: + - name: simple_compound.PE[0..4].MAC + actions: + - name: mac_random + arguments: {} + energy: 3.0 + - name: mac_reused + arguments: {} + energy: 3.0 + - name: mac_gated + arguments: {} + energy: 2.0 + - name: idle + arguments: {} + energy: 2.0 + - name: simple_compound.PE[0..4].buffer + actions: + - name: write + arguments: + data_delta: 0 + address_delta: 0 + energy: 3.0 + - name: write + arguments: + data_delta: 1 + address_delta: 0 + energy: 3.0 + - name: write + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.0 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + energy: 3.0 + - name: read + arguments: + data_delta: 0 + address_delta: 0 + energy: 3.0 + - name: read + arguments: + data_delta: 1 + address_delta: 0 + energy: 3.0 + - name: read + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.0 + - name: read + arguments: + data_delta: 1 + address_delta: 1 + energy: 3.0 + - name: idle + arguments: {} + energy: 3.0 + - name: simple_compound.GLB + actions: + - name: write + arguments: + data_delta: 0 + address_delta: 0 + energy: 2.0 + - name: write + arguments: + data_delta: 1 + address_delta: 0 + energy: 6.728626 + - name: write + arguments: + data_delta: 0 + address_delta: 1 + energy: 2.506639 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + energy: 7.235264 + - name: write + arguments: + data_delta: 0 + address_delta: 2 + energy: 3.013277 + - name: write + arguments: + data_delta: 1 + address_delta: 2 + energy: 7.741903 + - name: write + arguments: + data_delta: 0 + address_delta: 3 + energy: 3.519915 + - name: write + arguments: + data_delta: 1 + address_delta: 3 + energy: 8.248541 + - name: write + arguments: + data_delta: 0 + address_delta: 4 + energy: 4.026554 + - name: write + arguments: + data_delta: 1 + address_delta: 4 + energy: 8.75518 + - name: read + arguments: + data_delta: 0 + address_delta: 0 + energy: 2.0 + - name: read + arguments: + data_delta: 1 + address_delta: 0 + energy: 6.052727 + - name: read + arguments: + data_delta: 0 + address_delta: 1 + energy: 2.434221 + - name: read + arguments: + data_delta: 1 + address_delta: 1 + energy: 6.486948 + - name: read + arguments: + data_delta: 0 + address_delta: 2 + energy: 2.868441 + - name: read + arguments: + data_delta: 1 + address_delta: 2 + energy: 6.921168 + - name: read + arguments: + data_delta: 0 + address_delta: 3 + energy: 3.302662 + - name: read + arguments: + data_delta: 1 + address_delta: 3 + energy: 7.355389 + - name: read + arguments: + data_delta: 0 + address_delta: 4 + energy: 3.736883 + - name: read + arguments: + data_delta: 1 + address_delta: 4 + energy: 7.78961 + - name: idle + arguments: {} + energy: 2.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ERT_summary.yaml new file mode 100644 index 00000000..eae9458c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/ERT_summary.yaml @@ -0,0 +1,60 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: simple_compound.PE[0..4].MAC + actions: + - name: mac_random + energy: 3.0 + - name: mac_reused + energy: 3.0 + - name: mac_gated + energy: 2.0 + - name: idle + energy: 2.0 + primitive_estimation(s): + - name: mac + estimator: dummy_table + - name: output_fifo + estimator: dummy_table + - name: simple_compound.PE[0..4].buffer + actions: + - name: write + average_energy: 3.0 + max_energy: 3.0 + min_energy: 3.0 + - name: read + average_energy: 3.0 + max_energy: 3.0 + min_energy: 3.0 + - name: idle + energy: 3.0 + primitive_estimation(s): + - name: storage + estimator: dummy_table + - name: address_generators[0] + estimator: dummy_table + - name: address_generators[1] + estimator: dummy_table + - name: address_generators[0..1] + estimator: dummy_table + - name: simple_compound.GLB + actions: + - name: write + average_energy: 5.37759 + max_energy: 8.75518 + min_energy: 2.0 + - name: read + average_energy: 4.894805 + max_energy: 7.78961 + min_energy: 2.0 + - name: idle + energy: 2.0 + primitive_estimation(s): + - name: storage + estimator: CACTI + - name: address_generators[0] + estimator: dummy_table + - name: address_generators[1] + estimator: dummy_table + - name: address_generators[0..1] + estimator: dummy_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/energy_estimation.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/energy_estimation.yaml new file mode 100644 index 00000000..19096ad5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/energy_estimation.yaml @@ -0,0 +1,14 @@ +energy_estimation: + version: '0.4' + components: + - name: simple_compound.GLB + energy: 202.09159999999997 + - name: simple_compound.PE[0].buffer + energy: 210.0 + - name: simple_compound.PE[0].MAC + energy: 120.0 + - name: simple_compound.PE[1].buffer + energy: 210.0 + - name: simple_compound.PE[1].MAC + energy: 120.0 + Total: 862.0916 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/flattened_architecture.yaml new file mode 100644 index 00000000..0d669262 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/output/flattened_architecture.yaml @@ -0,0 +1,38 @@ +architecture: + version: '0.4' + local: + - name: simple_compound.PE[0..4].MAC + class: mac_fifo + attributes: + num_pipeline_stages: 1 + technology: 45nm + voltage: 1V + latency: 5ns + global_cycle_seconds: 5e-09 + datawidth: 16 + fifo_depth: 2 + - name: simple_compound.PE[0..4].buffer + class: smartbuffer_RF + attributes: + memory_width: 16 + memory_depth: 24 + technology: 45nm + voltage: 1V + latency: 5ns + global_cycle_seconds: 5e-09 + datawidth: 16 + n_rdwr_ports: 2 + n_banks: 1 + n_buffets: 1 + - name: simple_compound.GLB + class: smartbuffer_SRAM + attributes: + memory_depth: 1024 + memory_width: 32 + n_banks: 4 + technology: 45nm + voltage: 1V + latency: 5ns + global_cycle_seconds: 5e-09 + n_rdwr_ports: 2 + n_buffets: 1 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ART.yaml new file mode 100644 index 00000000..206c9e09 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ART.yaml @@ -0,0 +1,9 @@ +ART: + version: 0.3 + tables: + - name: simple_compound.PE[0..4].MAC + area: 1433.048 + - name: simple_compound.PE[0..4].buffer + area: 537.18 + - name: simple_compound.GLB + area: 39629.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ART_summary.yaml new file mode 100644 index 00000000..584db9d2 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ART_summary.yaml @@ -0,0 +1,24 @@ +ART_summary: + version: 0.3 + table_summary: + - name: simple_compound.PE[0..4].MAC + area: 1433.048 + primitive_estimations: + - name: mac + estimator: Aladdin_table + - name: output_fifo + estimator: Aladdin_table + - name: simple_compound.PE[0..4].buffer + area: 537.18 + primitive_estimations: + - name: storage + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: simple_compound.GLB + area: 39629.0 + primitive_estimations: + - name: storage + estimator: Cacti + - name: address_generators[0..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ERT.yaml new file mode 100644 index 00000000..8e4fc11d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ERT.yaml @@ -0,0 +1,167 @@ +ERT: + version: 0.3 + tables: + - name: simple_compound.PE[0..4].MAC + actions: + - name: mac_random + arguments: null + energy: 2.778 + - name: mac_reused + arguments: null + energy: 2.455 + - name: mac_gated + arguments: null + energy: 0.115 + - name: idle + arguments: null + energy: 0.078 + - name: simple_compound.PE[0..4].buffer + actions: + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.055 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.193 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.164 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.302 + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.055 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.193 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.164 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.302 + - name: idle + arguments: null + energy: 0.018 + - name: simple_compound.GLB + actions: + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.049 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 4.778 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.556 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 5.284 + - name: write + arguments: + address_delta: 2 + data_delta: 0 + energy: 1.062 + - name: write + arguments: + address_delta: 2 + data_delta: 1 + energy: 5.791 + - name: write + arguments: + address_delta: 3 + data_delta: 0 + energy: 1.569 + - name: write + arguments: + address_delta: 3 + data_delta: 1 + energy: 6.298 + - name: write + arguments: + address_delta: 4 + data_delta: 0 + energy: 2.076 + - name: write + arguments: + address_delta: 4 + data_delta: 1 + energy: 6.804 + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.049 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 4.102 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.483 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 4.536 + - name: read + arguments: + address_delta: 2 + data_delta: 0 + energy: 0.918 + - name: read + arguments: + address_delta: 2 + data_delta: 1 + energy: 4.97 + - name: read + arguments: + address_delta: 3 + data_delta: 0 + energy: 1.352 + - name: read + arguments: + address_delta: 3 + data_delta: 1 + energy: 5.404 + - name: read + arguments: + address_delta: 4 + data_delta: 0 + energy: 1.786 + - name: read + arguments: + address_delta: 4 + data_delta: 1 + energy: 5.839 + - name: idle + arguments: null + energy: 0.012 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ERT_summary.yaml new file mode 100644 index 00000000..b17cbf70 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/ERT_summary.yaml @@ -0,0 +1,60 @@ +ERT_summary: + version: 0.3 + table_summary: + - name: simple_compound.PE[0..4].MAC + actions: + - name: mac_random + energy: 2.778 + - name: mac_reused + energy: 2.455 + - name: mac_gated + energy: 0.115 + - name: idle + energy: 0.078 + primitive_estimation(s): + - name: mac + estimator: Aladdin_table + - name: output_fifo + estimator: Aladdin_table + - name: simple_compound.PE[0..4].buffer + actions: + - name: write + average_energy: 0.178 + max_energy: 0.302 + min_energy: 0.055 + - name: read + average_energy: 0.178 + max_energy: 0.302 + min_energy: 0.055 + - name: idle + energy: 0.018 + primitive_estimation(s): + - name: storage + estimator: Aladdin_table + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: simple_compound.GLB + actions: + - name: write + average_energy: 3.427 + max_energy: 6.804 + min_energy: 0.049 + - name: read + average_energy: 2.944 + max_energy: 5.839 + min_energy: 0.049 + - name: idle + energy: 0.012 + primitive_estimation(s): + - name: storage + estimator: Cacti + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/energy_estimation.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/energy_estimation.yaml new file mode 100644 index 00000000..334ee525 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/energy_estimation.yaml @@ -0,0 +1,14 @@ +energy_estimation: + version: 0.3 + components: + - name: simple_compound.GLB + energy: 143.56 + - name: simple_compound.PE[0].buffer + energy: 14.240000000000002 + - name: simple_compound.PE[0].MAC + energy: 85.065 + - name: simple_compound.PE[1].buffer + energy: 15.620000000000001 + - name: simple_compound.PE[1].MAC + energy: 85.065 + Total: 343.55 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/flattened_architecture.yaml new file mode 100644 index 00000000..85ee964a --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/03_compound_architecture/ref-output/flattened_architecture.yaml @@ -0,0 +1,35 @@ +architecture: + version: 0.3 + local: + - name: simple_compound.PE[0..4].MAC + class: mac_fifo + attributes: + datawidth: 16 + fifo_depth: 2 + latency: 5ns + num_pipeline_stages: 1 + technology: 45nm + voltage: 1V + - name: simple_compound.PE[0..4].buffer + class: smartbuffer_RF + attributes: + datawidth: 16 + latency: 5ns + memory_depth: 24 + memory_width: 16 + n_banks: 1 + n_buffets: 1 + n_rdwr_ports: 2 + technology: 45nm + voltage: 1V + - name: simple_compound.GLB + class: smartbuffer_SRAM + attributes: + latency: 5ns + memory_depth: 1024 + memory_width: 32 + n_banks: 4 + n_buffets: 1 + n_rdwr_ports: 2 + technology: 45nm + voltage: 1V diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/README.md new file mode 100644 index 00000000..530995a6 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/README.md @@ -0,0 +1,49 @@ +Exercise 4 +========== + +## Overview + +This exercise runs a energy estimation on an eyeriss-like architecture +that is described with user-defined compound components. +## Steps + +To run the exercise, we need to provide 3 inputs to the Accelergy: +- An architecture description. +- A compound component description. +- An action counts. + + +We have provided the `.yaml` files in the input folder. To run this exercise, type: + +``` + accelergy input/ -o output/ +``` + +This generates the following output in folder `output/` +- The received input files and the important evaluation progress are reported on `stdout`. +- The energy reference tables (ERTs) (pJ/action) for the components in the architecture `ERT.yaml`. +- The energy reference table summary for the components in the architecture `ERT_summary.yaml`. +- The area reference tables (ERTs) (umm^2/component) for the components in the architecture `ART.yaml`(note that the DRAM area is a place holder as it is not on-chip). +- The area reference table summary for the components in the architecture `ART_summary.yaml`. +- The flattened architecture that describes the class and attributes of the components in +the architecture is saved to `flattened_architectue.yaml`. +- The estimation (pJ) for the primitive components in the design are saved in `energy_stimation.yaml`. + + +## Observations + +- Note that the `input/architecture.yaml` is much more complicated than the previous examples. The architecture contains three main parts, 2 global buffers, 4 NoCs for different data types, and the 168 PEs, each contain 3 local buffers and a MAC unit. +- The compound components can be specified separately to avoid long and tedious compound component descriptions. Examine the files, what is the relationship between different compound components? Are they dependent or independent? +- What will the architecture description look like if we use primitive components to describe the architecture? +- Examine the `input/action_counts.yaml`, which action is specific to zero-gating? Can you tell which PE processes the most sparse data? +- What will the action_counts look like if we use record the runtime activity of each ptimitive component in the design? +- Examine the `output/estimation.yaml`, do you see the PE processing the most sparse data have the least energy consumption? Can you tell which components are most relevent to the zero-gating optimization? + + +## Takeaways +- We can define our own compound components and use them to define the architecture. +- Modeling the design using compound components + - Reduces the architecture description and action counts complexity + - Makes architecture redesigns much faster as no new action counts need to be + generated. +- Design-specific optimizations can be very well reflected using the fine-grained action types. diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/action_counts.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/action_counts.yaml new file mode 100644 index 00000000..e417dd9c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/action_counts.yaml @@ -0,0 +1,13822 @@ +action_counts: + local: + - action_counts: + - counts: 31306 + name: idle + - arguments: + address_delta: 2 + data_delta: 1 + counts: 1152 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 1150 + name: read + - arguments: + address_delta: 2 + data_delta: 1 + counts: 2 + name: read + name: eyeriss_like.weights_glb + - action_counts: + - counts: 37 + name: idle + - arguments: + address_delta: 2 + data_delta: 1 + counts: 1259 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 10820 + name: read + - arguments: + address_delta: 22 + data_delta: 1 + counts: 10809 + name: write + - arguments: + address_delta: 2 + data_delta: 0 + counts: 541 + name: write + - arguments: + address_delta: 2 + data_delta: 1 + counts: 1796 + name: read + - arguments: + address_delta: 22 + data_delta: 1 + counts: 10816 + name: write + - arguments: + address_delta: 22 + data_delta: 0 + counts: 7 + name: write + - arguments: + address_delta: 22 + data_delta: 1 + counts: 10816 + name: read + name: eyeriss_like.shared_glb + - action_counts: + - counts: 31308 + name: idle + - arguments: + n_cols_per_row: 13 + n_rows: 1 + counts: 1152 + name: transfer_random + name: eyeriss_like.weights_NoC + - action_counts: + - counts: 25260 + name: idle + - arguments: + n_cols_per_row: 4 + n_rows: 1 + counts: 240 + name: transfer_random + - arguments: + n_cols_per_row: 4 + n_rows: 1 + counts: 720 + name: transfer_repeated + - arguments: + n_cols_per_row: 8 + n_rows: 1 + counts: 624 + name: transfer_random + - arguments: + n_cols_per_row: 8 + n_rows: 1 + counts: 336 + name: transfer_repeated + - arguments: + n_cols_per_row: 12 + n_rows: 1 + counts: 3355 + name: transfer_random + - arguments: + n_cols_per_row: 12 + n_rows: 1 + counts: 1925 + name: transfer_repeated + name: eyeriss_like.ifmap_NoC + - action_counts: + - counts: 10828 + name: idle + - arguments: + n_cols_per_row: 1 + n_rows: 1 + counts: 21632 + name: transfer_random + name: eyeriss_like.psum_write_NoC + - action_counts: + - counts: 10828 + name: idle + - arguments: + n_cols_per_row: 1 + n_rows: 1 + counts: 21632 + name: transfer_random + name: eyeriss_like.psum_read_NoC + - action_counts: + - counts: 30923 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1156 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 380 + name: read + name: eyeriss_like.PE[0].weights_spad + - action_counts: + - counts: 12489 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 479 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[0].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1663 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 16640 + name: write + name: eyeriss_like.PE[0].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 19968 + name: mac_gated + name: eyeriss_like.PE[0].mac + - action_counts: + - counts: 24038 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8060 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 356 + name: read + name: eyeriss_like.PE[1].weights_spad + - action_counts: + - counts: 12490 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18729 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1239 + name: read + name: eyeriss_like.PE[1].ifmap_spad + - action_counts: + - counts: 12832 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 813 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 851 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1822 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14818 + name: write + name: eyeriss_like.PE[1].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12592 + name: mac_gated + - counts: 461 + name: mac_random + - counts: 6915 + name: mac_reused + name: eyeriss_like.PE[1].mac + - action_counts: + - counts: 25597 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6536 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + name: eyeriss_like.PE[2].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[2].ifmap_spad + - action_counts: + - counts: 12843 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 766 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 898 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4450 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12190 + name: write + name: eyeriss_like.PE[2].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[2].mac + - action_counts: + - counts: 24961 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7220 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 252 + name: read + name: eyeriss_like.PE[3].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[3].ifmap_spad + - action_counts: + - counts: 12857 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 745 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 919 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3118 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13522 + name: write + name: eyeriss_like.PE[3].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[3].mac + - action_counts: + - counts: 23289 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8924 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 212 + name: read + name: eyeriss_like.PE[4].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[4].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 956 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 708 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2389 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14251 + name: write + name: eyeriss_like.PE[4].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[4].mac + - action_counts: + - counts: 23365 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8864 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[5].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[5].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 887 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 777 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2587 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14053 + name: write + name: eyeriss_like.PE[5].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[5].mac + - action_counts: + - counts: 23137 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9088 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[6].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[6].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 947 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 717 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2624 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14016 + name: write + name: eyeriss_like.PE[6].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[6].mac + - action_counts: + - counts: 23565 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8656 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[7].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[7].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 870 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 794 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2752 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13888 + name: write + name: eyeriss_like.PE[7].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[7].mac + - action_counts: + - counts: 22953 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9264 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[8].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[8].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 996 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 668 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2464 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14176 + name: write + name: eyeriss_like.PE[8].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[8].mac + - action_counts: + - counts: 22613 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9600 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[9].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[9].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 987 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 677 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2655 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13985 + name: write + name: eyeriss_like.PE[9].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[9].mac + - action_counts: + - counts: 23393 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8816 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[10].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[10].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 875 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 789 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2731 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13909 + name: write + name: eyeriss_like.PE[10].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[10].mac + - action_counts: + - counts: 24541 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7664 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[11].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[11].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 832 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 832 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4043 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12597 + name: write + name: eyeriss_like.PE[11].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[11].mac + - action_counts: + - counts: 25081 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7120 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[12].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[12].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 753 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 911 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3847 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12793 + name: write + name: eyeriss_like.PE[12].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[12].mac + - action_counts: + - counts: 24044 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8032 + name: read + name: eyeriss_like.PE[14].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[14].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 812 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 852 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1733 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14907 + name: write + name: eyeriss_like.PE[14].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12592 + name: mac_gated + - counts: 461 + name: mac_random + - counts: 6915 + name: mac_reused + name: eyeriss_like.PE[14].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + name: eyeriss_like.PE[15].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[15].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 766 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 898 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4382 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12258 + name: write + name: eyeriss_like.PE[15].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[15].mac + - action_counts: + - counts: 24988 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7088 + name: read + name: eyeriss_like.PE[16].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[16].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 754 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 910 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3089 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13551 + name: write + name: eyeriss_like.PE[16].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[16].mac + - action_counts: + - counts: 23324 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8752 + name: read + name: eyeriss_like.PE[17].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[17].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 967 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 697 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2380 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14260 + name: write + name: eyeriss_like.PE[17].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[17].mac + - action_counts: + - counts: 23404 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8672 + name: read + name: eyeriss_like.PE[18].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[18].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 890 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 774 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2558 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14082 + name: write + name: eyeriss_like.PE[18].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[18].mac + - action_counts: + - counts: 23180 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8896 + name: read + name: eyeriss_like.PE[19].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[19].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 951 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 713 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2634 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14006 + name: write + name: eyeriss_like.PE[19].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[19].mac + - action_counts: + - counts: 23612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8464 + name: read + name: eyeriss_like.PE[20].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[20].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 874 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 790 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2759 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13881 + name: write + name: eyeriss_like.PE[20].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[20].mac + - action_counts: + - counts: 23004 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9072 + name: read + name: eyeriss_like.PE[21].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[21].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1000 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 664 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2447 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14193 + name: write + name: eyeriss_like.PE[21].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[21].mac + - action_counts: + - counts: 22668 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9408 + name: read + name: eyeriss_like.PE[22].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[22].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 993 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 671 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2638 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14002 + name: write + name: eyeriss_like.PE[22].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[22].mac + - action_counts: + - counts: 23452 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8624 + name: read + name: eyeriss_like.PE[23].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[23].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 882 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 782 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2750 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13890 + name: write + name: eyeriss_like.PE[23].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[23].mac + - action_counts: + - counts: 24604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7472 + name: read + name: eyeriss_like.PE[24].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[24].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 843 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 821 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4019 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12621 + name: write + name: eyeriss_like.PE[24].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[24].mac + - action_counts: + - counts: 25148 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6928 + name: read + name: eyeriss_like.PE[25].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[25].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 755 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 909 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3873 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12767 + name: write + name: eyeriss_like.PE[25].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[25].mac + - action_counts: + - counts: 23692 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8384 + name: read + name: eyeriss_like.PE[26].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 276 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 204 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[26].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 890 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 774 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2855 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13785 + name: write + name: eyeriss_like.PE[26].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12176 + name: mac_gated + - counts: 487 + name: mac_random + - counts: 7305 + name: mac_reused + name: eyeriss_like.PE[26].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + name: eyeriss_like.PE[28].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[28].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 741 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 923 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4421 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12219 + name: write + name: eyeriss_like.PE[28].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[28].mac + - action_counts: + - counts: 24988 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7088 + name: read + name: eyeriss_like.PE[29].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[29].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 732 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 932 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3110 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13530 + name: write + name: eyeriss_like.PE[29].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[29].mac + - action_counts: + - counts: 23324 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8752 + name: read + name: eyeriss_like.PE[30].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[30].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 931 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 733 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2399 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14241 + name: write + name: eyeriss_like.PE[30].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[30].mac + - action_counts: + - counts: 23404 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8672 + name: read + name: eyeriss_like.PE[31].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[31].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 867 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 797 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2572 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14068 + name: write + name: eyeriss_like.PE[31].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[31].mac + - action_counts: + - counts: 23180 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8896 + name: read + name: eyeriss_like.PE[32].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[32].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 917 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 747 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2617 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14023 + name: write + name: eyeriss_like.PE[32].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[32].mac + - action_counts: + - counts: 23612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8464 + name: read + name: eyeriss_like.PE[33].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[33].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 850 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 814 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2768 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13872 + name: write + name: eyeriss_like.PE[33].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[33].mac + - action_counts: + - counts: 23004 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9072 + name: read + name: eyeriss_like.PE[34].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[34].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 964 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 700 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2428 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14212 + name: write + name: eyeriss_like.PE[34].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[34].mac + - action_counts: + - counts: 22668 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9408 + name: read + name: eyeriss_like.PE[35].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[35].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 958 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 706 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2635 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14005 + name: write + name: eyeriss_like.PE[35].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[35].mac + - action_counts: + - counts: 23452 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8624 + name: read + name: eyeriss_like.PE[36].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[36].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 851 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 813 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2815 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13825 + name: write + name: eyeriss_like.PE[36].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[36].mac + - action_counts: + - counts: 24604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7472 + name: read + name: eyeriss_like.PE[37].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[37].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 814 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 850 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4024 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12616 + name: write + name: eyeriss_like.PE[37].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[37].mac + - action_counts: + - counts: 25148 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6928 + name: read + name: eyeriss_like.PE[38].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[38].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 743 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 921 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3784 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12856 + name: write + name: eyeriss_like.PE[38].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[38].mac + - action_counts: + - counts: 23692 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8384 + name: read + name: eyeriss_like.PE[39].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 276 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 204 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[39].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 860 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 804 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2854 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13786 + name: write + name: eyeriss_like.PE[39].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12176 + name: mac_gated + - counts: 487 + name: mac_random + - counts: 7305 + name: mac_reused + name: eyeriss_like.PE[39].mac + - action_counts: + - counts: 30924 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1152 + name: read + name: eyeriss_like.PE[40].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 479 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[40].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1663 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 16640 + name: write + name: eyeriss_like.PE[40].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 19968 + name: mac_gated + name: eyeriss_like.PE[40].mac + - action_counts: + - counts: 30924 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1152 + name: read + name: eyeriss_like.PE[42].weights_spad + - action_counts: + - counts: 12488 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 479 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[42].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1663 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 16640 + name: write + name: eyeriss_like.PE[42].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 19968 + name: mac_gated + name: eyeriss_like.PE[42].mac + - action_counts: + - counts: 24042 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8040 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 376 + name: read + name: eyeriss_like.PE[43].weights_spad + - action_counts: + - counts: 12489 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[43].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 775 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 889 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1781 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14859 + name: write + name: eyeriss_like.PE[43].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12592 + name: mac_gated + - counts: 461 + name: mac_random + - counts: 6915 + name: mac_reused + name: eyeriss_like.PE[43].mac + - action_counts: + - counts: 25604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6500 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 348 + name: read + name: eyeriss_like.PE[44].weights_spad + - action_counts: + - counts: 12490 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18729 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1239 + name: read + name: eyeriss_like.PE[44].ifmap_spad + - action_counts: + - counts: 12834 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 728 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 936 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4374 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12266 + name: write + name: eyeriss_like.PE[44].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[44].mac + - action_counts: + - counts: 24970 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7172 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 300 + name: read + name: eyeriss_like.PE[45].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[45].ifmap_spad + - action_counts: + - counts: 12846 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 720 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 944 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3101 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13539 + name: write + name: eyeriss_like.PE[45].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[45].mac + - action_counts: + - counts: 23295 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8892 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 244 + name: read + name: eyeriss_like.PE[46].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[46].ifmap_spad + - action_counts: + - counts: 12859 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 926 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 738 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2368 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14272 + name: write + name: eyeriss_like.PE[46].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[46].mac + - action_counts: + - counts: 23368 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8848 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 208 + name: read + name: eyeriss_like.PE[47].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[47].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 864 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 800 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2536 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14104 + name: write + name: eyeriss_like.PE[47].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[47].mac + - action_counts: + - counts: 23140 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9088 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[48].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[48].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 913 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 751 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2660 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13980 + name: write + name: eyeriss_like.PE[48].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[48].mac + - action_counts: + - counts: 23568 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8656 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[49].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[49].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 835 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 829 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2781 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13859 + name: write + name: eyeriss_like.PE[49].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[49].mac + - action_counts: + - counts: 22956 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9264 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[50].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[50].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 953 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 711 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2453 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14187 + name: write + name: eyeriss_like.PE[50].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[50].mac + - action_counts: + - counts: 22616 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9600 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[51].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[51].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 953 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 711 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2692 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13948 + name: write + name: eyeriss_like.PE[51].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[51].mac + - action_counts: + - counts: 23396 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8816 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[52].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[52].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 854 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 810 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2739 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13901 + name: write + name: eyeriss_like.PE[52].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[52].mac + - action_counts: + - counts: 24544 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7664 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[53].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[53].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 818 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 846 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4016 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12624 + name: write + name: eyeriss_like.PE[53].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[53].mac + - action_counts: + - counts: 25084 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7120 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[54].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[54].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 735 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 929 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3771 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12869 + name: write + name: eyeriss_like.PE[54].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[54].mac + - action_counts: + - counts: 24044 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8032 + name: read + name: eyeriss_like.PE[56].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[56].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 815 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 849 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1656 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14984 + name: write + name: eyeriss_like.PE[56].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12592 + name: mac_gated + - counts: 461 + name: mac_random + - counts: 6915 + name: mac_reused + name: eyeriss_like.PE[56].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + name: eyeriss_like.PE[57].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[57].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 773 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 891 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4287 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12353 + name: write + name: eyeriss_like.PE[57].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[57].mac + - action_counts: + - counts: 24988 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7088 + name: read + name: eyeriss_like.PE[58].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[58].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 751 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 913 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3076 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13564 + name: write + name: eyeriss_like.PE[58].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[58].mac + - action_counts: + - counts: 23324 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8752 + name: read + name: eyeriss_like.PE[59].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[59].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 964 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 700 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2282 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14358 + name: write + name: eyeriss_like.PE[59].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[59].mac + - action_counts: + - counts: 23404 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8672 + name: read + name: eyeriss_like.PE[60].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[60].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 892 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 772 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2469 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14171 + name: write + name: eyeriss_like.PE[60].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[60].mac + - action_counts: + - counts: 23180 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8896 + name: read + name: eyeriss_like.PE[61].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[61].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 955 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 709 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2576 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14064 + name: write + name: eyeriss_like.PE[61].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[61].mac + - action_counts: + - counts: 23612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8464 + name: read + name: eyeriss_like.PE[62].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[62].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 876 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 788 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2704 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13936 + name: write + name: eyeriss_like.PE[62].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[62].mac + - action_counts: + - counts: 23004 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9072 + name: read + name: eyeriss_like.PE[63].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[63].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 990 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 674 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2418 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14222 + name: write + name: eyeriss_like.PE[63].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[63].mac + - action_counts: + - counts: 22668 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9408 + name: read + name: eyeriss_like.PE[64].weights_spad + - action_counts: + - counts: 12483 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[64].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 986 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 678 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2639 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14001 + name: write + name: eyeriss_like.PE[64].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[64].mac + - action_counts: + - counts: 23452 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8624 + name: read + name: eyeriss_like.PE[65].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[65].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 883 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 781 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2737 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13903 + name: write + name: eyeriss_like.PE[65].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[65].mac + - action_counts: + - counts: 24604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7472 + name: read + name: eyeriss_like.PE[66].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[66].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 844 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 820 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3953 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12687 + name: write + name: eyeriss_like.PE[66].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[66].mac + - action_counts: + - counts: 25148 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6928 + name: read + name: eyeriss_like.PE[67].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[67].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 755 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 909 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3761 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12879 + name: write + name: eyeriss_like.PE[67].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[67].mac + - action_counts: + - counts: 23692 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 382 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8384 + name: read + name: eyeriss_like.PE[68].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 276 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 204 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[68].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 878 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 786 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2779 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13861 + name: write + name: eyeriss_like.PE[68].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12176 + name: mac_gated + - counts: 487 + name: mac_random + - counts: 7305 + name: mac_reused + name: eyeriss_like.PE[68].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + name: eyeriss_like.PE[70].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[70].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 743 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 921 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4356 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12284 + name: write + name: eyeriss_like.PE[70].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[70].mac + - action_counts: + - counts: 24988 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7088 + name: read + name: eyeriss_like.PE[71].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[71].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 743 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 921 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3116 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13524 + name: write + name: eyeriss_like.PE[71].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[71].mac + - action_counts: + - counts: 23324 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8752 + name: read + name: eyeriss_like.PE[72].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[72].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 949 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 715 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2360 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14280 + name: write + name: eyeriss_like.PE[72].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[72].mac + - action_counts: + - counts: 23404 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8672 + name: read + name: eyeriss_like.PE[73].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[73].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 880 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 784 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2571 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14069 + name: write + name: eyeriss_like.PE[73].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[73].mac + - action_counts: + - counts: 23180 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8896 + name: read + name: eyeriss_like.PE[74].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[74].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 939 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 725 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2615 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14025 + name: write + name: eyeriss_like.PE[74].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[74].mac + - action_counts: + - counts: 23612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8464 + name: read + name: eyeriss_like.PE[75].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[75].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 866 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 798 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2747 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13893 + name: write + name: eyeriss_like.PE[75].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[75].mac + - action_counts: + - counts: 23004 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9072 + name: read + name: eyeriss_like.PE[76].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[76].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 984 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 680 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2441 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14199 + name: write + name: eyeriss_like.PE[76].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[76].mac + - action_counts: + - counts: 22668 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9408 + name: read + name: eyeriss_like.PE[77].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[77].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 970 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 694 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2673 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13967 + name: write + name: eyeriss_like.PE[77].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[77].mac + - action_counts: + - counts: 23452 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8624 + name: read + name: eyeriss_like.PE[78].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[78].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 860 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 804 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2857 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13783 + name: write + name: eyeriss_like.PE[78].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[78].mac + - action_counts: + - counts: 24604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7472 + name: read + name: eyeriss_like.PE[79].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[79].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 828 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 836 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4010 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12630 + name: write + name: eyeriss_like.PE[79].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[79].mac + - action_counts: + - counts: 25148 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6928 + name: read + name: eyeriss_like.PE[80].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[80].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 745 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 919 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3759 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12881 + name: write + name: eyeriss_like.PE[80].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[80].mac + - action_counts: + - counts: 23692 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8384 + name: read + name: eyeriss_like.PE[81].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 276 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 204 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[81].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 870 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 794 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2813 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13827 + name: write + name: eyeriss_like.PE[81].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12176 + name: mac_gated + - counts: 487 + name: mac_random + - counts: 7305 + name: mac_reused + name: eyeriss_like.PE[81].mac + - action_counts: + - counts: 30924 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1152 + name: read + name: eyeriss_like.PE[82].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 479 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[82].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1663 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 16640 + name: write + name: eyeriss_like.PE[82].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 19968 + name: mac_gated + name: eyeriss_like.PE[82].mac + - action_counts: + - counts: 30924 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1152 + name: read + name: eyeriss_like.PE[84].weights_spad + - action_counts: + - counts: 12490 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 479 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[84].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1663 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 16640 + name: write + name: eyeriss_like.PE[84].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 19968 + name: mac_gated + name: eyeriss_like.PE[84].mac + - action_counts: + - counts: 24044 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8032 + name: read + name: eyeriss_like.PE[85].weights_spad + - action_counts: + - counts: 12490 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[85].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 789 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 875 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1713 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14927 + name: write + name: eyeriss_like.PE[85].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12592 + name: mac_gated + - counts: 461 + name: mac_random + - counts: 6915 + name: mac_reused + name: eyeriss_like.PE[85].mac + - action_counts: + - counts: 25609 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6476 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 372 + name: read + name: eyeriss_like.PE[86].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[86].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 740 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 924 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4327 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12313 + name: write + name: eyeriss_like.PE[86].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[86].mac + - action_counts: + - counts: 24978 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7132 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 340 + name: read + name: eyeriss_like.PE[87].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18729 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1239 + name: read + name: eyeriss_like.PE[87].ifmap_spad + - action_counts: + - counts: 12836 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 723 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 941 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3144 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13496 + name: write + name: eyeriss_like.PE[87].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[87].mac + - action_counts: + - counts: 23303 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8848 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 288 + name: read + name: eyeriss_like.PE[88].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[88].ifmap_spad + - action_counts: + - counts: 12849 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 933 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 731 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2395 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14245 + name: write + name: eyeriss_like.PE[88].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[88].mac + - action_counts: + - counts: 23373 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8820 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 236 + name: read + name: eyeriss_like.PE[89].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[89].ifmap_spad + - action_counts: + - counts: 12861 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 870 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 794 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2521 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14119 + name: write + name: eyeriss_like.PE[89].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[89].mac + - action_counts: + - counts: 23143 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9076 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 204 + name: read + name: eyeriss_like.PE[90].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[90].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 931 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 733 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2612 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14028 + name: write + name: eyeriss_like.PE[90].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[90].mac + - action_counts: + - counts: 23571 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8656 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[91].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[91].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 849 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 815 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2768 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13872 + name: write + name: eyeriss_like.PE[91].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[91].mac + - action_counts: + - counts: 22959 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9264 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[92].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[92].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 961 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 703 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2451 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14189 + name: write + name: eyeriss_like.PE[92].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[92].mac + - action_counts: + - counts: 22619 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9600 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[93].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[93].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 962 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 702 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2691 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13949 + name: write + name: eyeriss_like.PE[93].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[93].mac + - action_counts: + - counts: 23399 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8816 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[94].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[94].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 850 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 814 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2778 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13862 + name: write + name: eyeriss_like.PE[94].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[94].mac + - action_counts: + - counts: 24547 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7664 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[95].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[95].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 817 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 847 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4032 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12608 + name: write + name: eyeriss_like.PE[95].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[95].mac + - action_counts: + - counts: 25087 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7120 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[96].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[96].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 742 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 922 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3755 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12885 + name: write + name: eyeriss_like.PE[96].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[96].mac + - action_counts: + - counts: 24044 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8032 + name: read + name: eyeriss_like.PE[98].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[98].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 816 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 848 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1697 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14943 + name: write + name: eyeriss_like.PE[98].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12592 + name: mac_gated + - counts: 461 + name: mac_random + - counts: 6915 + name: mac_reused + name: eyeriss_like.PE[98].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + name: eyeriss_like.PE[99].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[99].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 775 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 889 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4303 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12337 + name: write + name: eyeriss_like.PE[99].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[99].mac + - action_counts: + - counts: 24988 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7088 + name: read + name: eyeriss_like.PE[100].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[100].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 756 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 908 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3047 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13593 + name: write + name: eyeriss_like.PE[100].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[100].mac + - action_counts: + - counts: 23324 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8752 + name: read + name: eyeriss_like.PE[101].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[101].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 969 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 695 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2306 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14334 + name: write + name: eyeriss_like.PE[101].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[101].mac + - action_counts: + - counts: 23404 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8672 + name: read + name: eyeriss_like.PE[102].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[102].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 895 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 769 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2539 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14101 + name: write + name: eyeriss_like.PE[102].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[102].mac + - action_counts: + - counts: 23180 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8896 + name: read + name: eyeriss_like.PE[103].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[103].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 957 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 707 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2521 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14119 + name: write + name: eyeriss_like.PE[103].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[103].mac + - action_counts: + - counts: 23612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8464 + name: read + name: eyeriss_like.PE[104].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[104].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 881 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 783 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2662 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13978 + name: write + name: eyeriss_like.PE[104].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[104].mac + - action_counts: + - counts: 23004 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9072 + name: read + name: eyeriss_like.PE[105].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[105].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1002 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 662 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2367 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14273 + name: write + name: eyeriss_like.PE[105].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[105].mac + - action_counts: + - counts: 22668 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9408 + name: read + name: eyeriss_like.PE[106].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[106].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 992 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 672 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2613 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14027 + name: write + name: eyeriss_like.PE[106].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[106].mac + - action_counts: + - counts: 23452 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8624 + name: read + name: eyeriss_like.PE[107].weights_spad + - action_counts: + - counts: 12484 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[107].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 882 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 782 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2755 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13885 + name: write + name: eyeriss_like.PE[107].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[107].mac + - action_counts: + - counts: 24604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7472 + name: read + name: eyeriss_like.PE[108].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[108].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 845 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 819 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3982 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12658 + name: write + name: eyeriss_like.PE[108].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[108].mac + - action_counts: + - counts: 25148 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6928 + name: read + name: eyeriss_like.PE[109].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[109].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 761 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 903 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3725 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12915 + name: write + name: eyeriss_like.PE[109].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[109].mac + - action_counts: + - counts: 23692 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8384 + name: read + name: eyeriss_like.PE[110].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 276 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 204 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[110].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 888 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 776 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2792 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13848 + name: write + name: eyeriss_like.PE[110].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12176 + name: mac_gated + - counts: 487 + name: mac_random + - counts: 7305 + name: mac_reused + name: eyeriss_like.PE[110].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[112].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[112].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 770 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 894 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4329 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12311 + name: write + name: eyeriss_like.PE[112].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[112].mac + - action_counts: + - counts: 24988 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7088 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[113].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[113].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 753 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 911 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3143 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13497 + name: write + name: eyeriss_like.PE[113].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[113].mac + - action_counts: + - counts: 23324 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8752 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[114].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[114].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 964 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 700 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2318 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14322 + name: write + name: eyeriss_like.PE[114].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[114].mac + - action_counts: + - counts: 23404 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8672 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[115].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[115].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 893 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 771 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2543 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14097 + name: write + name: eyeriss_like.PE[115].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[115].mac + - action_counts: + - counts: 23180 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8896 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[116].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[116].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 957 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 707 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2537 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14103 + name: write + name: eyeriss_like.PE[116].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[116].mac + - action_counts: + - counts: 23612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8464 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[117].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[117].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 879 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 785 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2720 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13920 + name: write + name: eyeriss_like.PE[117].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[117].mac + - action_counts: + - counts: 23004 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9072 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[118].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[118].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1003 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 661 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2471 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14169 + name: write + name: eyeriss_like.PE[118].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[118].mac + - action_counts: + - counts: 22668 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9408 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[119].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[119].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 992 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 672 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2678 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13962 + name: write + name: eyeriss_like.PE[119].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[119].mac + - action_counts: + - counts: 23452 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8624 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[120].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[120].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 879 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 785 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2765 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13875 + name: write + name: eyeriss_like.PE[120].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[120].mac + - action_counts: + - counts: 24604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7472 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[121].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[121].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 848 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 816 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3971 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12669 + name: write + name: eyeriss_like.PE[121].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[121].mac + - action_counts: + - counts: 25148 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6928 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[122].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[122].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 764 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 900 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3739 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12901 + name: write + name: eyeriss_like.PE[122].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[122].mac + - action_counts: + - counts: 23692 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8384 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[123].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 276 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 204 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[123].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 887 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 777 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2831 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13809 + name: write + name: eyeriss_like.PE[123].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12176 + name: mac_gated + - counts: 487 + name: mac_random + - counts: 7305 + name: mac_reused + name: eyeriss_like.PE[123].mac + - action_counts: + - counts: 30924 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 383 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1152 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1 + name: write + name: eyeriss_like.PE[124].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 479 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[124].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1663 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 16640 + name: write + name: eyeriss_like.PE[124].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 19968 + name: mac_gated + name: eyeriss_like.PE[124].mac + - action_counts: + - counts: 30924 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1152 + name: read + name: eyeriss_like.PE[126].weights_spad + - action_counts: + - counts: 12488 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 479 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[126].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1663 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 16640 + name: write + name: eyeriss_like.PE[126].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 19968 + name: mac_gated + name: eyeriss_like.PE[126].mac + - action_counts: + - counts: 24044 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8032 + name: read + name: eyeriss_like.PE[127].weights_spad + - action_counts: + - counts: 12488 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[127].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 814 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 850 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1669 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14971 + name: write + name: eyeriss_like.PE[127].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12592 + name: mac_gated + - counts: 461 + name: mac_random + - counts: 6915 + name: mac_reused + name: eyeriss_like.PE[127].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + name: eyeriss_like.PE[128].weights_spad + - action_counts: + - counts: 12488 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[128].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 758 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 906 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4341 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12299 + name: write + name: eyeriss_like.PE[128].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[128].mac + - action_counts: + - counts: 24984 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7104 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 368 + name: read + name: eyeriss_like.PE[129].weights_spad + - action_counts: + - counts: 12489 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18729 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1239 + name: read + name: eyeriss_like.PE[129].ifmap_spad + - action_counts: + - counts: 12829 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 753 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 911 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3100 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13540 + name: write + name: eyeriss_like.PE[129].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[129].mac + - action_counts: + - counts: 23312 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8804 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 332 + name: read + name: eyeriss_like.PE[130].weights_spad + - action_counts: + - counts: 12490 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[130].ifmap_spad + - action_counts: + - counts: 12838 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 959 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 705 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2346 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14294 + name: write + name: eyeriss_like.PE[130].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[130].mac + - action_counts: + - counts: 23380 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8780 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 276 + name: read + name: eyeriss_like.PE[131].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[131].ifmap_spad + - action_counts: + - counts: 12852 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 886 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 778 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2547 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14093 + name: write + name: eyeriss_like.PE[131].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[131].mac + - action_counts: + - counts: 23147 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9052 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 228 + name: read + name: eyeriss_like.PE[132].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[132].ifmap_spad + - action_counts: + - counts: 12863 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 948 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 716 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2575 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14065 + name: write + name: eyeriss_like.PE[132].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[132].mac + - action_counts: + - counts: 23574 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8648 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 200 + name: read + name: eyeriss_like.PE[133].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[133].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 876 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 788 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2751 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13889 + name: write + name: eyeriss_like.PE[133].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[133].mac + - action_counts: + - counts: 22962 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9264 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[134].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[134].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 994 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 670 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2406 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14234 + name: write + name: eyeriss_like.PE[134].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[134].mac + - action_counts: + - counts: 22622 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9600 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[135].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[135].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 983 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 681 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2619 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14021 + name: write + name: eyeriss_like.PE[135].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[135].mac + - action_counts: + - counts: 23402 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8816 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[136].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[136].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 870 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 794 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2748 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13892 + name: write + name: eyeriss_like.PE[136].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[136].mac + - action_counts: + - counts: 24550 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7664 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[137].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[137].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 838 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 826 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3988 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12652 + name: write + name: eyeriss_like.PE[137].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[137].mac + - action_counts: + - counts: 25090 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7120 + name: read + - arguments: + address_delta: 0 + data_delta: 0 + counts: 192 + name: read + name: eyeriss_like.PE[138].weights_spad + - action_counts: + - counts: 12491 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18730 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1238 + name: read + name: eyeriss_like.PE[138].ifmap_spad + - action_counts: + - counts: 12866 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 756 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 908 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3696 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12944 + name: write + name: eyeriss_like.PE[138].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[138].mac + - action_counts: + - counts: 24044 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8032 + name: read + name: eyeriss_like.PE[140].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[140].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 789 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 875 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1704 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14936 + name: write + name: eyeriss_like.PE[140].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12592 + name: mac_gated + - counts: 461 + name: mac_random + - counts: 6915 + name: mac_reused + name: eyeriss_like.PE[140].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + name: eyeriss_like.PE[141].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[141].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 732 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 932 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4396 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12244 + name: write + name: eyeriss_like.PE[141].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[141].mac + - action_counts: + - counts: 24988 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7088 + name: read + name: eyeriss_like.PE[142].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[142].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 724 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 940 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3077 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13563 + name: write + name: eyeriss_like.PE[142].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[142].mac + - action_counts: + - counts: 23324 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8752 + name: read + name: eyeriss_like.PE[143].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[143].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 943 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 721 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2330 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14310 + name: write + name: eyeriss_like.PE[143].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[143].mac + - action_counts: + - counts: 23404 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8672 + name: read + name: eyeriss_like.PE[144].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[144].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 881 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 783 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2506 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14134 + name: write + name: eyeriss_like.PE[144].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[144].mac + - action_counts: + - counts: 23180 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8896 + name: read + name: eyeriss_like.PE[145].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[145].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 928 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 736 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2554 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14086 + name: write + name: eyeriss_like.PE[145].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[145].mac + - action_counts: + - counts: 23612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8464 + name: read + name: eyeriss_like.PE[146].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[146].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 847 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 817 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2730 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13910 + name: write + name: eyeriss_like.PE[146].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[146].mac + - action_counts: + - counts: 23004 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9072 + name: read + name: eyeriss_like.PE[147].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[147].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 966 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 698 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2414 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14226 + name: write + name: eyeriss_like.PE[147].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[147].mac + - action_counts: + - counts: 22668 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9408 + name: read + name: eyeriss_like.PE[148].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[148].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 964 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 700 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2661 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13979 + name: write + name: eyeriss_like.PE[148].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[148].mac + - action_counts: + - counts: 23452 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8624 + name: read + name: eyeriss_like.PE[149].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[149].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 860 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 804 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2802 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13838 + name: write + name: eyeriss_like.PE[149].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[149].mac + - action_counts: + - counts: 24604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7472 + name: read + name: eyeriss_like.PE[150].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[150].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 823 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 841 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4037 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12603 + name: write + name: eyeriss_like.PE[150].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[150].mac + - action_counts: + - counts: 25148 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6928 + name: read + name: eyeriss_like.PE[151].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[151].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 745 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 919 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3657 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12983 + name: write + name: eyeriss_like.PE[151].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[151].mac + - action_counts: + - counts: 23692 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8384 + name: read + name: eyeriss_like.PE[152].weights_spad + - action_counts: + - counts: 12485 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 276 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 204 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[152].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 855 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 809 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2828 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13812 + name: write + name: eyeriss_like.PE[152].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12176 + name: mac_gated + - counts: 487 + name: mac_random + - counts: 7305 + name: mac_reused + name: eyeriss_like.PE[152].mac + - action_counts: + - counts: 25612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6464 + name: read + name: eyeriss_like.PE[154].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 220 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 260 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[154].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 761 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 903 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 4348 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12292 + name: write + name: eyeriss_like.PE[154].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 14208 + name: mac_gated + - counts: 360 + name: mac_random + - counts: 5400 + name: mac_reused + name: eyeriss_like.PE[154].mac + - action_counts: + - counts: 24988 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7088 + name: read + name: eyeriss_like.PE[155].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 237 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 243 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[155].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 752 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 912 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3042 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13598 + name: write + name: eyeriss_like.PE[155].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13488 + name: mac_gated + - counts: 405 + name: mac_random + - counts: 6075 + name: mac_reused + name: eyeriss_like.PE[155].mac + - action_counts: + - counts: 23324 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8752 + name: read + name: eyeriss_like.PE[156].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 280 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 200 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[156].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 957 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 707 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2300 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14340 + name: write + name: eyeriss_like.PE[156].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11904 + name: mac_gated + - counts: 504 + name: mac_random + - counts: 7560 + name: mac_reused + name: eyeriss_like.PE[156].mac + - action_counts: + - counts: 23404 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8672 + name: read + name: eyeriss_like.PE[157].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 273 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 207 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[157].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 889 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 775 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2529 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14111 + name: write + name: eyeriss_like.PE[157].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12032 + name: mac_gated + - counts: 496 + name: mac_random + - counts: 7440 + name: mac_reused + name: eyeriss_like.PE[157].mac + - action_counts: + - counts: 23180 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8896 + name: read + name: eyeriss_like.PE[158].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 282 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 198 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[158].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 948 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 716 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2560 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14080 + name: write + name: eyeriss_like.PE[158].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11808 + name: mac_gated + - counts: 510 + name: mac_random + - counts: 7650 + name: mac_reused + name: eyeriss_like.PE[158].mac + - action_counts: + - counts: 23612 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8464 + name: read + name: eyeriss_like.PE[159].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 268 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 212 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[159].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 879 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 785 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2681 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13959 + name: write + name: eyeriss_like.PE[159].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12304 + name: mac_gated + - counts: 479 + name: mac_random + - counts: 7185 + name: mac_reused + name: eyeriss_like.PE[159].mac + - action_counts: + - counts: 23004 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9072 + name: read + name: eyeriss_like.PE[160].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 281 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 199 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[160].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 992 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 672 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2403 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14237 + name: write + name: eyeriss_like.PE[160].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11648 + name: mac_gated + - counts: 520 + name: mac_random + - counts: 7800 + name: mac_reused + name: eyeriss_like.PE[160].mac + - action_counts: + - counts: 22668 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 9408 + name: read + name: eyeriss_like.PE[161].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 277 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 203 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[161].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 988 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 676 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2632 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 14008 + name: write + name: eyeriss_like.PE[161].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 11328 + name: mac_gated + - counts: 540 + name: mac_random + - counts: 8100 + name: mac_reused + name: eyeriss_like.PE[161].mac + - action_counts: + - counts: 23452 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8624 + name: read + name: eyeriss_like.PE[162].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 269 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 211 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[162].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 878 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 786 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2709 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13931 + name: write + name: eyeriss_like.PE[162].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12096 + name: mac_gated + - counts: 492 + name: mac_random + - counts: 7380 + name: mac_reused + name: eyeriss_like.PE[162].mac + - action_counts: + - counts: 24604 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 7472 + name: read + name: eyeriss_like.PE[163].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 234 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 246 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[163].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 843 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 821 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3943 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12697 + name: write + name: eyeriss_like.PE[163].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13184 + name: mac_gated + - counts: 424 + name: mac_random + - counts: 6360 + name: mac_reused + name: eyeriss_like.PE[163].mac + - action_counts: + - counts: 25148 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 6928 + name: read + name: eyeriss_like.PE[164].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 226 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 254 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[164].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 757 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 907 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 3707 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 12933 + name: write + name: eyeriss_like.PE[164].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 13792 + name: mac_gated + - counts: 386 + name: mac_random + - counts: 5790 + name: mac_reused + name: eyeriss_like.PE[164].mac + - action_counts: + - counts: 23692 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 8384 + name: read + name: eyeriss_like.PE[165].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 276 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 204 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[165].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 881 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 783 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 2880 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 13760 + name: write + name: eyeriss_like.PE[165].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 12176 + name: mac_gated + - counts: 487 + name: mac_random + - counts: 7305 + name: mac_reused + name: eyeriss_like.PE[165].mac + - action_counts: + - counts: 30924 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 384 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 384 + name: read + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1152 + name: read + name: eyeriss_like.PE[166].weights_spad + - action_counts: + - counts: 12482 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 18728 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 479 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1240 + name: read + name: eyeriss_like.PE[166].ifmap_spad + - action_counts: + - counts: 12828 + name: idle + - arguments: + address_delta: 1 + data_delta: 1 + counts: 1 + name: write + - arguments: + address_delta: 0 + data_delta: 0 + counts: 312 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 1663 + name: write + - arguments: + address_delta: 1 + data_delta: 1 + counts: 17992 + name: read + - arguments: + address_delta: 1 + data_delta: 0 + counts: 16640 + name: write + name: eyeriss_like.PE[166].psum_spad + - action_counts: + - counts: 12492 + name: idle + - counts: 19968 + name: mac_gated + name: eyeriss_like.PE[166].mac + version: 0.2 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/architecture.yaml new file mode 100644 index 00000000..41450e9c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/architecture.yaml @@ -0,0 +1,66 @@ +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.2 + subtree: + - name: eyeriss_like + attributes: + technology: 45nm + local: + - name: weights_glb + class: smartbuffer_SRAM + attributes: + memory_width: 64 + memory_depth: 1024 + n_banks: 2 + - name: shared_glb + class: smartbuffer_SRAM + attributes: + memory_width: 64 + n_banks: 25 + bank_depth: 512 + memory_depth: bank_depth * n_banks + n_buffets: 2 + update_fifo_depth: 2 + - name: ifmap_NoC + class: XY_NoC + attributes: + datawidth: 16 + col_id_width: 5 + - name: weights_NoC + class: XY_NoC + attributes: + datawidth: 64 + - name: psum_write_NoC + class: XY_NoC + attributes: + datawidth: 64 + - name: psum_read_NoC + class: XY_NoC + attributes: + datawidth: 64 + Y_X_wire_avg_length: 4mm + subtree: + - name: PE[0..167] + local: + - name: ifmap_spad + class: smartbuffer_RF + attributes: + memory_depth: 12 + memory_width: 16 + - name: weights_spad + class: smartbuffer_RF + attributes: + memory_depth: 192 + memory_width: 16 + - name: psum_spad + class: smartbuffer_RF + attributes: + memory_depth: 16 + memory_width: 16 + - name: mac + class: intmac + attributes: + width: 16 + meshX : 14 \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/XY_NoC.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/XY_NoC.yaml new file mode 100644 index 00000000..dd2bab25 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/XY_NoC.yaml @@ -0,0 +1,75 @@ +compound_components: + version: 0.3 + classes: + - name: XY_NoC + attributes: + technology: 40nm + Y_comparator_width: 4 # compare rowID + X_comparator_width: 4 # compare colID + n_PE_rows: 12 + n_PE_cols: 14 + total_PEs: n_PE_cols * n_PE_rows + datawidth: 64 + Y_X_wire_avg_length: 2mm + subcomponents: + - name: Y_memory_controller[0..n_PE_rows-1] + class: comparator + attributes: + technology: technology + datawidth: Y_comparator_width + - name: X_memory_controller[0..total_PEs-1] + class: comparator + attributes: + technology: technology + datawidth: X_comparator_width + - name: Y_X_wire + class: wire + attributes: + technology: technology + datawidth: datawidth + X_comparator_width + length: Y_X_wire_avg_length + actions: + - name: transfer_random + arguments: + n_rows: 1..n_PE_rows + n_cols_per_row: 1..n_PE_cols + subcomponents: + - name: Y_memory_controller[0..n_rows-1] + actions: + - name: transfer_random + - name: X_memory_controller[0] + actions: + - name: transfer_random + repeat: n_cols_per_row * n_rows # alternative representation of repetitive actions of identical components + - name: Y_X_wire + actions: + - name: transfer_random + + - name: transfer_repeated + arguments: + n_rows: 1..n_PE_rows + n_cols_per_row: 1..n_PE_cols + subcomponents: + - name: Y_memory_controller[0..n_rows-1] + actions: + - name: transfer_repeated + - name: X_memory_controller[0] + actions: + - name: transfer_repeated + repeat: n_cols_per_row * n_rows + - name: Y_X_wire + actions: + - name: idle + + + - name: idle + subcomponents: + - name: Y_memory_controller[0..n_PE_rows-1] + actions: + - name: idle + - name: X_memory_controller[0..total_PEs-1] + actions: + - name: idle + - name: Y_X_wire + actions: + - name: idle \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/smartbuffer_RF.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/smartbuffer_RF.yaml new file mode 100644 index 00000000..b202f10e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/smartbuffer_RF.yaml @@ -0,0 +1,68 @@ +compound_components: + version: 0.3 + classes: + - name: smartbuffer_RF + attributes: + technology: 45nm + memory_depth: 12 + memory_width: 16 + n_rdwr_ports: 2 + n_banks: 1 + n_buffets: 1 + subcomponents: + - name: storage + class: regfile + attributes: + technology: technology + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + n_banks: n_banks + - name: address_generators[0..1] + class: intadder + attributes: + technology: technology + width: log(memory_depth) + actions: + - name: write + arguments: + data_delta: 0..1 + address_delta: 0..n_banks + subcomponents: + - name: storage + actions: + - name: write + arguments: + data_delta: data_delta + address_delta: address_delta + - name: address_generators[0] + actions: + - name: add + - name: address_generators[1] + actions: + - name: idle + - name: read + arguments: + data_delta: 0..1 + address_delta: 0..n_banks + subcomponents: + - name: storage + actions: + - name: read + arguments: + data_delta: data_delta + address_delta: address_delta + - name: address_generators[1] + actions: + - name: add + - name: address_generators[0] + actions: + - name: idle + - name: idle + subcomponents: + - name: storage + actions: + - name: idle + - name: address_generators[0..1] + actions: + - name: idle diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/smartbuffer_SRAM.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/smartbuffer_SRAM.yaml new file mode 100644 index 00000000..aaba7a41 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/input/components/smartbuffer_SRAM.yaml @@ -0,0 +1,68 @@ +compound_components: + version: 0.3 + classes: + - name: smartbuffer_SRAM + attributes: + technology: 45nm + memory_depth: 12 + memory_width: 16 + n_rdwr_ports: 2 + n_banks: 1 + n_buffets: 1 + subcomponents: + - name: storage + class: SRAM + attributes: + technology: technology + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + n_banks: n_banks + - name: address_generators[0..1] + class: intadder + attributes: + technology: technology + width: log(memory_depth) + actions: + - name: write + arguments: + data_delta: 0..1 + address_delta: 0..n_banks + subcomponents: + - name: storage + actions: + - name: write + arguments: + data_delta: data_delta + address_delta: address_delta + - name: address_generators[0] + actions: + - name: count + - name: address_generators[1] + actions: + - name: idle + - name: read + arguments: + data_delta: 0..1 + address_delta: 0..n_banks + subcomponents: + - name: storage + actions: + - name: read + arguments: + data_delta: data_delta + address_delta: address_delta + - name: address_generators[1] + actions: + - name: add + - name: address_generators[0] + actions: + - name: idle + - name: idle + subcomponents: + - name: storage + actions: + - name: idle + - name: address_generators[0..1] + actions: + - name: idle diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/.gitkeep b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/.gitkeep new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/.gitkeep @@ -0,0 +1 @@ + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ART.yaml new file mode 100644 index 00000000..fbde6363 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ART.yaml @@ -0,0 +1,23 @@ +ART: + version: '0.4' + tables: + - name: eyeriss_like.PE[0..167].mac + area: 1239.5 + - name: eyeriss_like.PE[0..167].ifmap_spad + area: 228.479893 + - name: eyeriss_like.PE[0..167].weights_spad + area: 3514.498229 + - name: eyeriss_like.PE[0..167].psum_spad + area: 266.698336 + - name: eyeriss_like.weights_glb + area: 76991.745841 + - name: eyeriss_like.shared_glb + area: 979303.80243 + - name: eyeriss_like.ifmap_NoC + area: 1575.0 + - name: eyeriss_like.weights_NoC + area: 1575.0 + - name: eyeriss_like.psum_write_NoC + area: 1575.0 + - name: eyeriss_like.psum_read_NoC + area: 1575.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ART_summary.yaml new file mode 100644 index 00000000..350e07ae --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ART_summary.yaml @@ -0,0 +1,77 @@ +ART_summary: + version: '0.4' + table_summary: + - name: eyeriss_like.PE[0..167].mac + area: 1239.5 + primitive_estimations: Aladdin_table + - name: eyeriss_like.PE[0..167].ifmap_spad + area: 228.479893 + primitive_estimations: + - name: storage + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.PE[0..167].weights_spad + area: 3514.498229 + primitive_estimations: + - name: storage + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.PE[0..167].psum_spad + area: 266.698336 + primitive_estimations: + - name: storage + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.weights_glb + area: 76991.745841 + primitive_estimations: + - name: storage + estimator: CACTI + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.shared_glb + area: 979303.80243 + primitive_estimations: + - name: storage + estimator: CACTI + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.ifmap_NoC + area: 1575.0 + primitive_estimations: + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: eyeriss_like.weights_NoC + area: 1575.0 + primitive_estimations: + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: eyeriss_like.psum_write_NoC + area: 1575.0 + primitive_estimations: + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: eyeriss_like.psum_read_NoC + area: 1575.0 + primitive_estimations: + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ERT.yaml new file mode 100644 index 00000000..51636d56 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ERT.yaml @@ -0,0 +1,7486 @@ +ERT: + version: '0.4' + tables: + - name: eyeriss_like.PE[0..167].mac + actions: + - name: mac_random + arguments: + global_cycle_seconds: 1e-09 + energy: 1.0 + - name: mac_reused + arguments: + global_cycle_seconds: 1e-09 + energy: 1.0 + - name: mac_gated + arguments: + global_cycle_seconds: 1e-09 + energy: 1.0 + - name: idle + arguments: + global_cycle_seconds: 1e-09 + energy: 1.0 + - name: eyeriss_like.PE[0..167].ifmap_spad + actions: + - name: write + arguments: + data_delta: 0 + address_delta: 0 + energy: 3.0 + - name: write + arguments: + data_delta: 1 + address_delta: 0 + energy: 3.0 + - name: write + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.0 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + energy: 3.0 + - name: read + arguments: + data_delta: 0 + address_delta: 0 + energy: 3.0 + - name: read + arguments: + data_delta: 1 + address_delta: 0 + energy: 3.0 + - name: read + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.0 + - name: read + arguments: + data_delta: 1 + address_delta: 1 + energy: 3.0 + - name: idle + arguments: {} + energy: 3.0 + - name: eyeriss_like.PE[0..167].weights_spad + actions: + - name: write + arguments: + data_delta: 0 + address_delta: 0 + energy: 3.0 + - name: write + arguments: + data_delta: 1 + address_delta: 0 + energy: 3.0 + - name: write + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.0 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + energy: 3.0 + - name: read + arguments: + data_delta: 0 + address_delta: 0 + energy: 3.0 + - name: read + arguments: + data_delta: 1 + address_delta: 0 + energy: 3.0 + - name: read + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.0 + - name: read + arguments: + data_delta: 1 + address_delta: 1 + energy: 3.0 + - name: idle + arguments: {} + energy: 3.0 + - name: eyeriss_like.PE[0..167].psum_spad + actions: + - name: write + arguments: + data_delta: 0 + address_delta: 0 + energy: 3.0 + - name: write + arguments: + data_delta: 1 + address_delta: 0 + energy: 3.0 + - name: write + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.0 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + energy: 3.0 + - name: read + arguments: + data_delta: 0 + address_delta: 0 + energy: 3.0 + - name: read + arguments: + data_delta: 1 + address_delta: 0 + energy: 3.0 + - name: read + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.0 + - name: read + arguments: + data_delta: 1 + address_delta: 1 + energy: 3.0 + - name: idle + arguments: {} + energy: 3.0 + - name: eyeriss_like.weights_glb + actions: + - name: write + arguments: + data_delta: 0 + address_delta: 0 + energy: 2.0 + - name: write + arguments: + data_delta: 1 + address_delta: 0 + energy: 9.90349 + - name: write + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.693605 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + energy: 11.597095 + - name: write + arguments: + data_delta: 0 + address_delta: 2 + energy: 5.38721 + - name: write + arguments: + data_delta: 1 + address_delta: 2 + energy: 13.2907 + - name: read + arguments: + data_delta: 0 + address_delta: 0 + energy: 2.0 + - name: read + arguments: + data_delta: 1 + address_delta: 0 + energy: 9.15407 + - name: read + arguments: + data_delta: 0 + address_delta: 1 + energy: 3.533015 + - name: read + arguments: + data_delta: 1 + address_delta: 1 + energy: 10.687085 + - name: read + arguments: + data_delta: 0 + address_delta: 2 + energy: 5.06603 + - name: read + arguments: + data_delta: 1 + address_delta: 2 + energy: 12.2201 + - name: idle + arguments: {} + energy: 2.0 + - name: eyeriss_like.shared_glb + actions: + - name: write + arguments: + data_delta: 0 + address_delta: 0 + energy: 2.0 + - name: write + arguments: + data_delta: 1 + address_delta: 0 + energy: 50.09168 + - name: write + arguments: + data_delta: 0 + address_delta: 1 + energy: 2.824429 + - name: write + arguments: + data_delta: 1 + address_delta: 1 + energy: 50.916109 + - name: write + arguments: + data_delta: 0 + address_delta: 2 + energy: 3.648858 + - name: write + arguments: + data_delta: 1 + address_delta: 2 + energy: 51.740538 + - name: write + arguments: + data_delta: 0 + address_delta: 3 + energy: 4.473286 + - name: write + arguments: + data_delta: 1 + address_delta: 3 + energy: 52.564966 + - name: write + arguments: + data_delta: 0 + address_delta: 4 + energy: 5.297715 + - name: write + arguments: + data_delta: 1 + address_delta: 4 + energy: 53.389395 + - name: write + arguments: + data_delta: 0 + address_delta: 5 + energy: 6.122144 + - name: write + arguments: + data_delta: 1 + address_delta: 5 + energy: 54.213824 + - name: write + arguments: + data_delta: 0 + address_delta: 6 + energy: 6.946573 + - name: write + arguments: + data_delta: 1 + address_delta: 6 + energy: 55.038253 + - name: write + arguments: + data_delta: 0 + address_delta: 7 + energy: 7.771002 + - name: write + arguments: + data_delta: 1 + address_delta: 7 + energy: 55.862682 + - name: write + arguments: + data_delta: 0 + address_delta: 8 + energy: 8.59543 + - name: write + arguments: + data_delta: 1 + address_delta: 8 + energy: 56.68711 + - name: write + arguments: + data_delta: 0 + address_delta: 9 + energy: 9.419859 + - name: write + arguments: + data_delta: 1 + address_delta: 9 + energy: 57.511539 + - name: write + arguments: + data_delta: 0 + address_delta: 10 + energy: 10.244288 + - name: write + arguments: + data_delta: 1 + address_delta: 10 + energy: 58.335968 + - name: write + arguments: + data_delta: 0 + address_delta: 11 + energy: 11.068717 + - name: write + arguments: + data_delta: 1 + address_delta: 11 + energy: 59.160397 + - name: write + arguments: + data_delta: 0 + address_delta: 12 + energy: 11.893146 + - name: write + arguments: + data_delta: 1 + address_delta: 12 + energy: 59.984826 + - name: write + arguments: + data_delta: 0 + address_delta: 13 + energy: 12.717574 + - name: write + arguments: + data_delta: 1 + address_delta: 13 + energy: 60.809254 + - name: write + arguments: + data_delta: 0 + address_delta: 14 + energy: 13.542003 + - name: write + arguments: + data_delta: 1 + address_delta: 14 + energy: 61.633683 + - name: write + arguments: + data_delta: 0 + address_delta: 15 + energy: 14.366432 + - name: write + arguments: + data_delta: 1 + address_delta: 15 + energy: 62.458112 + - name: write + arguments: + data_delta: 0 + address_delta: 16 + energy: 15.190861 + - name: write + arguments: + data_delta: 1 + address_delta: 16 + energy: 63.282541 + - name: write + arguments: + data_delta: 0 + address_delta: 17 + energy: 16.01529 + - name: write + arguments: + data_delta: 1 + address_delta: 17 + energy: 64.10697 + - name: write + arguments: + data_delta: 0 + address_delta: 18 + energy: 16.839718 + - name: write + arguments: + data_delta: 1 + address_delta: 18 + energy: 64.931398 + - name: write + arguments: + data_delta: 0 + address_delta: 19 + energy: 17.664147 + - name: write + arguments: + data_delta: 1 + address_delta: 19 + energy: 65.755827 + - name: write + arguments: + data_delta: 0 + address_delta: 20 + energy: 18.488576 + - name: write + arguments: + data_delta: 1 + address_delta: 20 + energy: 66.580256 + - name: write + arguments: + data_delta: 0 + address_delta: 21 + energy: 19.313005 + - name: write + arguments: + data_delta: 1 + address_delta: 21 + energy: 67.404685 + - name: write + arguments: + data_delta: 0 + address_delta: 22 + energy: 20.137434 + - name: write + arguments: + data_delta: 1 + address_delta: 22 + energy: 68.229114 + - name: write + arguments: + data_delta: 0 + address_delta: 23 + energy: 20.961862 + - name: write + arguments: + data_delta: 1 + address_delta: 23 + energy: 69.053542 + - name: write + arguments: + data_delta: 0 + address_delta: 24 + energy: 21.786291 + - name: write + arguments: + data_delta: 1 + address_delta: 24 + energy: 69.877971 + - name: write + arguments: + data_delta: 0 + address_delta: 25 + energy: 22.61072 + - name: write + arguments: + data_delta: 1 + address_delta: 25 + energy: 70.7024 + - name: read + arguments: + data_delta: 0 + address_delta: 0 + energy: 2.0 + - name: read + arguments: + data_delta: 1 + address_delta: 0 + energy: 49.52223 + - name: read + arguments: + data_delta: 0 + address_delta: 1 + energy: 2.814667 + - name: read + arguments: + data_delta: 1 + address_delta: 1 + energy: 50.336897 + - name: read + arguments: + data_delta: 0 + address_delta: 2 + energy: 3.629334 + - name: read + arguments: + data_delta: 1 + address_delta: 2 + energy: 51.151564 + - name: read + arguments: + data_delta: 0 + address_delta: 3 + energy: 4.444 + - name: read + arguments: + data_delta: 1 + address_delta: 3 + energy: 51.96623 + - name: read + arguments: + data_delta: 0 + address_delta: 4 + energy: 5.258667 + - name: read + arguments: + data_delta: 1 + address_delta: 4 + energy: 52.780897 + - name: read + arguments: + data_delta: 0 + address_delta: 5 + energy: 6.073334 + - name: read + arguments: + data_delta: 1 + address_delta: 5 + energy: 53.595564 + - name: read + arguments: + data_delta: 0 + address_delta: 6 + energy: 6.888001 + - name: read + arguments: + data_delta: 1 + address_delta: 6 + energy: 54.410231 + - name: read + arguments: + data_delta: 0 + address_delta: 7 + energy: 7.702668 + - name: read + arguments: + data_delta: 1 + address_delta: 7 + energy: 55.224898 + - name: read + arguments: + data_delta: 0 + address_delta: 8 + energy: 8.517334 + - name: read + arguments: + data_delta: 1 + address_delta: 8 + energy: 56.039564 + - name: read + arguments: + data_delta: 0 + address_delta: 9 + energy: 9.332001 + - name: read + arguments: + data_delta: 1 + address_delta: 9 + energy: 56.854231 + - name: read + arguments: + data_delta: 0 + address_delta: 10 + energy: 10.146668 + - name: read + arguments: + data_delta: 1 + address_delta: 10 + energy: 57.668898 + - name: read + arguments: + data_delta: 0 + address_delta: 11 + energy: 10.961335 + - name: read + arguments: + data_delta: 1 + address_delta: 11 + energy: 58.483565 + - name: read + arguments: + data_delta: 0 + address_delta: 12 + energy: 11.776002 + - name: read + arguments: + data_delta: 1 + address_delta: 12 + energy: 59.298232 + - name: read + arguments: + data_delta: 0 + address_delta: 13 + energy: 12.590668 + - name: read + arguments: + data_delta: 1 + address_delta: 13 + energy: 60.112898 + - name: read + arguments: + data_delta: 0 + address_delta: 14 + energy: 13.405335 + - name: read + arguments: + data_delta: 1 + address_delta: 14 + energy: 60.927565 + - name: read + arguments: + data_delta: 0 + address_delta: 15 + energy: 14.220002 + - name: read + arguments: + data_delta: 1 + address_delta: 15 + energy: 61.742232 + - name: read + arguments: + data_delta: 0 + address_delta: 16 + energy: 15.034669 + - name: read + arguments: + data_delta: 1 + address_delta: 16 + energy: 62.556899 + - name: read + arguments: + data_delta: 0 + address_delta: 17 + energy: 15.849336 + - name: read + arguments: + data_delta: 1 + address_delta: 17 + energy: 63.371566 + - name: read + arguments: + data_delta: 0 + address_delta: 18 + energy: 16.664002 + - name: read + arguments: + data_delta: 1 + address_delta: 18 + energy: 64.186232 + - name: read + arguments: + data_delta: 0 + address_delta: 19 + energy: 17.478669 + - name: read + arguments: + data_delta: 1 + address_delta: 19 + energy: 65.000899 + - name: read + arguments: + data_delta: 0 + address_delta: 20 + energy: 18.293336 + - name: read + arguments: + data_delta: 1 + address_delta: 20 + energy: 65.815566 + - name: read + arguments: + data_delta: 0 + address_delta: 21 + energy: 19.108003 + - name: read + arguments: + data_delta: 1 + address_delta: 21 + energy: 66.630233 + - name: read + arguments: + data_delta: 0 + address_delta: 22 + energy: 19.92267 + - name: read + arguments: + data_delta: 1 + address_delta: 22 + energy: 67.4449 + - name: read + arguments: + data_delta: 0 + address_delta: 23 + energy: 20.737336 + - name: read + arguments: + data_delta: 1 + address_delta: 23 + energy: 68.259566 + - name: read + arguments: + data_delta: 0 + address_delta: 24 + energy: 21.552003 + - name: read + arguments: + data_delta: 1 + address_delta: 24 + energy: 69.074233 + - name: read + arguments: + data_delta: 0 + address_delta: 25 + energy: 22.36667 + - name: read + arguments: + data_delta: 1 + address_delta: 25 + energy: 69.8889 + - name: idle + arguments: {} + energy: 2.0 + - name: eyeriss_like.ifmap_NoC + actions: + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 1 + energy: 15.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 1 + energy: 17.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 1 + energy: 19.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 1 + energy: 21.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 1 + energy: 23.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 1 + energy: 25.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 1 + energy: 27.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 1 + energy: 29.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 1 + energy: 31.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 1 + energy: 33.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 1 + energy: 35.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 1 + energy: 37.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 2 + energy: 16.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 2 + energy: 19.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 2 + energy: 22.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 2 + energy: 25.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 2 + energy: 28.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 2 + energy: 31.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 2 + energy: 34.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 2 + energy: 37.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 2 + energy: 40.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 2 + energy: 43.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 2 + energy: 46.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 2 + energy: 49.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 3 + energy: 17.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 3 + energy: 21.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 3 + energy: 25.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 3 + energy: 29.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 3 + energy: 33.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 3 + energy: 37.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 3 + energy: 41.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 3 + energy: 45.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 3 + energy: 49.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 3 + energy: 53.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 3 + energy: 57.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 3 + energy: 61.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 4 + energy: 18.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 4 + energy: 23.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 4 + energy: 28.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 4 + energy: 33.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 4 + energy: 38.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 4 + energy: 43.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 4 + energy: 48.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 4 + energy: 53.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 4 + energy: 58.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 4 + energy: 63.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 4 + energy: 68.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 4 + energy: 73.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 5 + energy: 19.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 5 + energy: 25.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 5 + energy: 31.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 5 + energy: 37.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 5 + energy: 43.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 5 + energy: 49.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 5 + energy: 55.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 5 + energy: 61.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 5 + energy: 67.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 5 + energy: 73.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 5 + energy: 79.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 5 + energy: 85.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 6 + energy: 20.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 6 + energy: 27.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 6 + energy: 34.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 6 + energy: 41.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 6 + energy: 48.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 6 + energy: 55.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 6 + energy: 62.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 6 + energy: 69.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 6 + energy: 76.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 6 + energy: 83.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 6 + energy: 90.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 6 + energy: 97.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 7 + energy: 21.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 7 + energy: 29.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 7 + energy: 37.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 7 + energy: 45.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 7 + energy: 53.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 7 + energy: 61.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 7 + energy: 69.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 7 + energy: 77.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 7 + energy: 85.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 7 + energy: 93.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 7 + energy: 101.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 7 + energy: 109.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 8 + energy: 22.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 8 + energy: 31.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 8 + energy: 40.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 8 + energy: 49.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 8 + energy: 58.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 8 + energy: 67.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 8 + energy: 76.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 8 + energy: 85.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 8 + energy: 94.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 8 + energy: 103.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 8 + energy: 112.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 8 + energy: 121.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 9 + energy: 23.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 9 + energy: 33.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 9 + energy: 43.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 9 + energy: 53.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 9 + energy: 63.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 9 + energy: 73.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 9 + energy: 83.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 9 + energy: 93.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 9 + energy: 103.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 9 + energy: 113.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 9 + energy: 123.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 9 + energy: 133.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 10 + energy: 24.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 10 + energy: 35.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 10 + energy: 46.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 10 + energy: 57.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 10 + energy: 68.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 10 + energy: 79.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 10 + energy: 90.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 10 + energy: 101.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 10 + energy: 112.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 10 + energy: 123.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 10 + energy: 134.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 10 + energy: 145.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 11 + energy: 25.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 11 + energy: 37.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 11 + energy: 49.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 11 + energy: 61.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 11 + energy: 73.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 11 + energy: 85.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 11 + energy: 97.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 11 + energy: 109.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 11 + energy: 121.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 11 + energy: 133.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 11 + energy: 145.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 11 + energy: 157.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 12 + energy: 26.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 12 + energy: 39.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 12 + energy: 52.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 12 + energy: 65.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 12 + energy: 78.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 12 + energy: 91.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 12 + energy: 104.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 12 + energy: 117.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 12 + energy: 130.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 12 + energy: 143.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 12 + energy: 156.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 12 + energy: 169.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 13 + energy: 27.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 13 + energy: 41.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 13 + energy: 55.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 13 + energy: 69.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 13 + energy: 83.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 13 + energy: 97.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 13 + energy: 111.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 13 + energy: 125.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 13 + energy: 139.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 13 + energy: 153.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 13 + energy: 167.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 13 + energy: 181.016 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 14 + energy: 28.016 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 14 + energy: 43.016 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 14 + energy: 58.016 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 14 + energy: 73.016 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 14 + energy: 88.016 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 14 + energy: 103.016 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 14 + energy: 118.016 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 14 + energy: 133.016 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 14 + energy: 148.016 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 14 + energy: 163.016 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 14 + energy: 178.016 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 14 + energy: 193.016 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 1 + energy: 2.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 1 + energy: 4.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 1 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 1 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 1 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 1 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 1 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 1 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 1 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 1 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 1 + energy: 22.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 1 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 2 + energy: 3.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 2 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 2 + energy: 9.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 2 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 2 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 2 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 2 + energy: 21.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 2 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 2 + energy: 27.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 2 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 2 + energy: 33.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 2 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 3 + energy: 4.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 3 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 3 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 3 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 3 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 3 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 3 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 3 + energy: 32.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 3 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 3 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 3 + energy: 44.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 3 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 4 + energy: 5.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 4 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 4 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 4 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 4 + energy: 25.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 4 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 4 + energy: 35.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 4 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 4 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 4 + energy: 50.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 4 + energy: 55.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 4 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 5 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 5 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 5 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 5 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 5 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 5 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 5 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 5 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 5 + energy: 54.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 5 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 5 + energy: 66.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 5 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 6 + energy: 7.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 6 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 6 + energy: 21.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 6 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 6 + energy: 35.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 6 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 6 + energy: 49.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 6 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 6 + energy: 63.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 6 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 6 + energy: 77.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 6 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 7 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 7 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 7 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 7 + energy: 32.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 7 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 7 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 7 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 7 + energy: 64.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 7 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 7 + energy: 80.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 7 + energy: 88.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 7 + energy: 96.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 8 + energy: 9.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 8 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 8 + energy: 27.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 8 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 8 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 8 + energy: 54.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 8 + energy: 63.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 8 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 8 + energy: 81.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 8 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 8 + energy: 99.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 8 + energy: 108.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 9 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 9 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 9 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 9 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 9 + energy: 50.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 9 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 9 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 9 + energy: 80.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 9 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 9 + energy: 100.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 9 + energy: 110.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 9 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 10 + energy: 11.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 10 + energy: 22.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 10 + energy: 33.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 10 + energy: 44.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 10 + energy: 55.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 10 + energy: 66.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 10 + energy: 77.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 10 + energy: 88.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 10 + energy: 99.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 10 + energy: 110.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 10 + energy: 121.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 10 + energy: 132.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 11 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 11 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 11 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 11 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 11 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 11 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 11 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 11 + energy: 96.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 11 + energy: 108.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 11 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 11 + energy: 132.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 11 + energy: 144.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 12 + energy: 13.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 12 + energy: 26.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 12 + energy: 39.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 12 + energy: 52.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 12 + energy: 65.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 12 + energy: 78.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 12 + energy: 91.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 12 + energy: 104.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 12 + energy: 117.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 12 + energy: 130.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 12 + energy: 143.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 12 + energy: 156.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 13 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 13 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 13 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 13 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 13 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 13 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 13 + energy: 98.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 13 + energy: 112.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 13 + energy: 126.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 13 + energy: 140.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 13 + energy: 154.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 13 + energy: 168.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 14 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 14 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 14 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 14 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 14 + energy: 75.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 14 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 14 + energy: 105.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 14 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 14 + energy: 135.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 14 + energy: 150.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 14 + energy: 165.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 14 + energy: 180.0 + - name: idle + arguments: {} + energy: 180.0 + - name: eyeriss_like.weights_NoC + actions: + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 1 + energy: 46.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 1 + energy: 48.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 1 + energy: 50.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 1 + energy: 52.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 1 + energy: 54.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 1 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 1 + energy: 58.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 1 + energy: 60.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 1 + energy: 62.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 1 + energy: 64.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 1 + energy: 66.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 1 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 2 + energy: 47.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 2 + energy: 50.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 2 + energy: 53.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 2 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 2 + energy: 59.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 2 + energy: 62.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 2 + energy: 65.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 2 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 2 + energy: 71.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 2 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 2 + energy: 77.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 2 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 3 + energy: 48.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 3 + energy: 52.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 3 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 3 + energy: 60.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 3 + energy: 64.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 3 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 3 + energy: 72.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 3 + energy: 76.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 3 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 3 + energy: 84.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 3 + energy: 88.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 3 + energy: 92.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 4 + energy: 49.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 4 + energy: 54.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 4 + energy: 59.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 4 + energy: 64.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 4 + energy: 69.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 4 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 4 + energy: 79.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 4 + energy: 84.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 4 + energy: 89.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 4 + energy: 94.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 4 + energy: 99.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 4 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 5 + energy: 50.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 5 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 5 + energy: 62.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 5 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 5 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 5 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 5 + energy: 86.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 5 + energy: 92.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 5 + energy: 98.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 5 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 5 + energy: 110.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 5 + energy: 116.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 6 + energy: 51.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 6 + energy: 58.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 6 + energy: 65.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 6 + energy: 72.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 6 + energy: 79.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 6 + energy: 86.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 6 + energy: 93.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 6 + energy: 100.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 6 + energy: 107.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 6 + energy: 114.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 6 + energy: 121.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 6 + energy: 128.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 7 + energy: 52.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 7 + energy: 60.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 7 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 7 + energy: 76.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 7 + energy: 84.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 7 + energy: 92.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 7 + energy: 100.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 7 + energy: 108.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 7 + energy: 116.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 7 + energy: 124.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 7 + energy: 132.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 7 + energy: 140.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 8 + energy: 53.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 8 + energy: 62.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 8 + energy: 71.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 8 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 8 + energy: 89.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 8 + energy: 98.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 8 + energy: 107.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 8 + energy: 116.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 8 + energy: 125.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 8 + energy: 134.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 8 + energy: 143.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 8 + energy: 152.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 9 + energy: 54.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 9 + energy: 64.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 9 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 9 + energy: 84.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 9 + energy: 94.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 9 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 9 + energy: 114.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 9 + energy: 124.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 9 + energy: 134.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 9 + energy: 144.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 9 + energy: 154.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 9 + energy: 164.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 10 + energy: 55.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 10 + energy: 66.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 10 + energy: 77.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 10 + energy: 88.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 10 + energy: 99.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 10 + energy: 110.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 10 + energy: 121.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 10 + energy: 132.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 10 + energy: 143.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 10 + energy: 154.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 10 + energy: 165.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 10 + energy: 176.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 11 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 11 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 11 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 11 + energy: 92.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 11 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 11 + energy: 116.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 11 + energy: 128.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 11 + energy: 140.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 11 + energy: 152.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 11 + energy: 164.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 11 + energy: 176.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 11 + energy: 188.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 12 + energy: 57.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 12 + energy: 70.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 12 + energy: 83.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 12 + energy: 96.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 12 + energy: 109.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 12 + energy: 122.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 12 + energy: 135.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 12 + energy: 148.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 12 + energy: 161.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 12 + energy: 174.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 12 + energy: 187.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 12 + energy: 200.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 13 + energy: 58.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 13 + energy: 72.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 13 + energy: 86.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 13 + energy: 100.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 13 + energy: 114.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 13 + energy: 128.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 13 + energy: 142.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 13 + energy: 156.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 13 + energy: 170.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 13 + energy: 184.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 13 + energy: 198.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 13 + energy: 212.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 14 + energy: 59.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 14 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 14 + energy: 89.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 14 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 14 + energy: 119.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 14 + energy: 134.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 14 + energy: 149.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 14 + energy: 164.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 14 + energy: 179.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 14 + energy: 194.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 14 + energy: 209.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 14 + energy: 224.2544 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 1 + energy: 2.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 1 + energy: 4.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 1 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 1 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 1 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 1 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 1 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 1 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 1 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 1 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 1 + energy: 22.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 1 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 2 + energy: 3.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 2 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 2 + energy: 9.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 2 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 2 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 2 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 2 + energy: 21.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 2 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 2 + energy: 27.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 2 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 2 + energy: 33.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 2 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 3 + energy: 4.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 3 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 3 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 3 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 3 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 3 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 3 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 3 + energy: 32.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 3 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 3 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 3 + energy: 44.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 3 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 4 + energy: 5.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 4 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 4 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 4 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 4 + energy: 25.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 4 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 4 + energy: 35.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 4 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 4 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 4 + energy: 50.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 4 + energy: 55.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 4 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 5 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 5 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 5 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 5 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 5 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 5 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 5 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 5 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 5 + energy: 54.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 5 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 5 + energy: 66.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 5 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 6 + energy: 7.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 6 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 6 + energy: 21.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 6 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 6 + energy: 35.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 6 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 6 + energy: 49.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 6 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 6 + energy: 63.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 6 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 6 + energy: 77.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 6 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 7 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 7 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 7 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 7 + energy: 32.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 7 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 7 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 7 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 7 + energy: 64.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 7 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 7 + energy: 80.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 7 + energy: 88.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 7 + energy: 96.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 8 + energy: 9.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 8 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 8 + energy: 27.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 8 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 8 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 8 + energy: 54.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 8 + energy: 63.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 8 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 8 + energy: 81.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 8 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 8 + energy: 99.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 8 + energy: 108.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 9 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 9 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 9 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 9 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 9 + energy: 50.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 9 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 9 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 9 + energy: 80.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 9 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 9 + energy: 100.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 9 + energy: 110.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 9 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 10 + energy: 11.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 10 + energy: 22.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 10 + energy: 33.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 10 + energy: 44.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 10 + energy: 55.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 10 + energy: 66.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 10 + energy: 77.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 10 + energy: 88.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 10 + energy: 99.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 10 + energy: 110.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 10 + energy: 121.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 10 + energy: 132.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 11 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 11 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 11 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 11 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 11 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 11 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 11 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 11 + energy: 96.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 11 + energy: 108.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 11 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 11 + energy: 132.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 11 + energy: 144.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 12 + energy: 13.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 12 + energy: 26.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 12 + energy: 39.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 12 + energy: 52.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 12 + energy: 65.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 12 + energy: 78.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 12 + energy: 91.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 12 + energy: 104.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 12 + energy: 117.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 12 + energy: 130.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 12 + energy: 143.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 12 + energy: 156.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 13 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 13 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 13 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 13 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 13 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 13 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 13 + energy: 98.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 13 + energy: 112.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 13 + energy: 126.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 13 + energy: 140.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 13 + energy: 154.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 13 + energy: 168.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 14 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 14 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 14 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 14 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 14 + energy: 75.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 14 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 14 + energy: 105.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 14 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 14 + energy: 135.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 14 + energy: 150.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 14 + energy: 165.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 14 + energy: 180.0 + - name: idle + arguments: {} + energy: 180.0 + - name: eyeriss_like.psum_write_NoC + actions: + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 1 + energy: 46.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 1 + energy: 48.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 1 + energy: 50.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 1 + energy: 52.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 1 + energy: 54.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 1 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 1 + energy: 58.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 1 + energy: 60.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 1 + energy: 62.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 1 + energy: 64.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 1 + energy: 66.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 1 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 2 + energy: 47.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 2 + energy: 50.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 2 + energy: 53.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 2 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 2 + energy: 59.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 2 + energy: 62.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 2 + energy: 65.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 2 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 2 + energy: 71.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 2 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 2 + energy: 77.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 2 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 3 + energy: 48.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 3 + energy: 52.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 3 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 3 + energy: 60.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 3 + energy: 64.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 3 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 3 + energy: 72.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 3 + energy: 76.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 3 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 3 + energy: 84.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 3 + energy: 88.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 3 + energy: 92.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 4 + energy: 49.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 4 + energy: 54.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 4 + energy: 59.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 4 + energy: 64.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 4 + energy: 69.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 4 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 4 + energy: 79.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 4 + energy: 84.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 4 + energy: 89.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 4 + energy: 94.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 4 + energy: 99.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 4 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 5 + energy: 50.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 5 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 5 + energy: 62.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 5 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 5 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 5 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 5 + energy: 86.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 5 + energy: 92.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 5 + energy: 98.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 5 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 5 + energy: 110.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 5 + energy: 116.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 6 + energy: 51.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 6 + energy: 58.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 6 + energy: 65.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 6 + energy: 72.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 6 + energy: 79.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 6 + energy: 86.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 6 + energy: 93.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 6 + energy: 100.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 6 + energy: 107.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 6 + energy: 114.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 6 + energy: 121.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 6 + energy: 128.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 7 + energy: 52.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 7 + energy: 60.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 7 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 7 + energy: 76.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 7 + energy: 84.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 7 + energy: 92.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 7 + energy: 100.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 7 + energy: 108.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 7 + energy: 116.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 7 + energy: 124.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 7 + energy: 132.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 7 + energy: 140.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 8 + energy: 53.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 8 + energy: 62.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 8 + energy: 71.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 8 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 8 + energy: 89.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 8 + energy: 98.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 8 + energy: 107.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 8 + energy: 116.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 8 + energy: 125.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 8 + energy: 134.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 8 + energy: 143.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 8 + energy: 152.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 9 + energy: 54.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 9 + energy: 64.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 9 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 9 + energy: 84.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 9 + energy: 94.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 9 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 9 + energy: 114.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 9 + energy: 124.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 9 + energy: 134.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 9 + energy: 144.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 9 + energy: 154.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 9 + energy: 164.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 10 + energy: 55.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 10 + energy: 66.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 10 + energy: 77.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 10 + energy: 88.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 10 + energy: 99.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 10 + energy: 110.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 10 + energy: 121.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 10 + energy: 132.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 10 + energy: 143.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 10 + energy: 154.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 10 + energy: 165.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 10 + energy: 176.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 11 + energy: 56.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 11 + energy: 68.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 11 + energy: 80.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 11 + energy: 92.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 11 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 11 + energy: 116.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 11 + energy: 128.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 11 + energy: 140.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 11 + energy: 152.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 11 + energy: 164.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 11 + energy: 176.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 11 + energy: 188.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 12 + energy: 57.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 12 + energy: 70.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 12 + energy: 83.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 12 + energy: 96.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 12 + energy: 109.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 12 + energy: 122.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 12 + energy: 135.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 12 + energy: 148.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 12 + energy: 161.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 12 + energy: 174.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 12 + energy: 187.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 12 + energy: 200.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 13 + energy: 58.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 13 + energy: 72.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 13 + energy: 86.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 13 + energy: 100.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 13 + energy: 114.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 13 + energy: 128.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 13 + energy: 142.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 13 + energy: 156.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 13 + energy: 170.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 13 + energy: 184.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 13 + energy: 198.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 13 + energy: 212.2544 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 14 + energy: 59.2544 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 14 + energy: 74.2544 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 14 + energy: 89.2544 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 14 + energy: 104.2544 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 14 + energy: 119.2544 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 14 + energy: 134.2544 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 14 + energy: 149.2544 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 14 + energy: 164.2544 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 14 + energy: 179.2544 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 14 + energy: 194.2544 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 14 + energy: 209.2544 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 14 + energy: 224.2544 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 1 + energy: 2.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 1 + energy: 4.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 1 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 1 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 1 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 1 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 1 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 1 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 1 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 1 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 1 + energy: 22.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 1 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 2 + energy: 3.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 2 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 2 + energy: 9.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 2 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 2 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 2 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 2 + energy: 21.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 2 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 2 + energy: 27.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 2 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 2 + energy: 33.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 2 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 3 + energy: 4.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 3 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 3 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 3 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 3 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 3 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 3 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 3 + energy: 32.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 3 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 3 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 3 + energy: 44.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 3 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 4 + energy: 5.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 4 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 4 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 4 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 4 + energy: 25.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 4 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 4 + energy: 35.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 4 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 4 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 4 + energy: 50.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 4 + energy: 55.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 4 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 5 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 5 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 5 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 5 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 5 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 5 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 5 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 5 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 5 + energy: 54.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 5 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 5 + energy: 66.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 5 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 6 + energy: 7.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 6 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 6 + energy: 21.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 6 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 6 + energy: 35.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 6 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 6 + energy: 49.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 6 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 6 + energy: 63.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 6 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 6 + energy: 77.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 6 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 7 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 7 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 7 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 7 + energy: 32.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 7 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 7 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 7 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 7 + energy: 64.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 7 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 7 + energy: 80.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 7 + energy: 88.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 7 + energy: 96.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 8 + energy: 9.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 8 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 8 + energy: 27.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 8 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 8 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 8 + energy: 54.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 8 + energy: 63.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 8 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 8 + energy: 81.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 8 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 8 + energy: 99.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 8 + energy: 108.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 9 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 9 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 9 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 9 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 9 + energy: 50.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 9 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 9 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 9 + energy: 80.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 9 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 9 + energy: 100.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 9 + energy: 110.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 9 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 10 + energy: 11.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 10 + energy: 22.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 10 + energy: 33.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 10 + energy: 44.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 10 + energy: 55.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 10 + energy: 66.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 10 + energy: 77.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 10 + energy: 88.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 10 + energy: 99.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 10 + energy: 110.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 10 + energy: 121.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 10 + energy: 132.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 11 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 11 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 11 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 11 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 11 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 11 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 11 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 11 + energy: 96.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 11 + energy: 108.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 11 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 11 + energy: 132.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 11 + energy: 144.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 12 + energy: 13.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 12 + energy: 26.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 12 + energy: 39.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 12 + energy: 52.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 12 + energy: 65.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 12 + energy: 78.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 12 + energy: 91.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 12 + energy: 104.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 12 + energy: 117.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 12 + energy: 130.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 12 + energy: 143.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 12 + energy: 156.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 13 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 13 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 13 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 13 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 13 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 13 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 13 + energy: 98.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 13 + energy: 112.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 13 + energy: 126.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 13 + energy: 140.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 13 + energy: 154.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 13 + energy: 168.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 14 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 14 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 14 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 14 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 14 + energy: 75.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 14 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 14 + energy: 105.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 14 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 14 + energy: 135.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 14 + energy: 150.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 14 + energy: 165.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 14 + energy: 180.0 + - name: idle + arguments: {} + energy: 180.0 + - name: eyeriss_like.psum_read_NoC + actions: + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 1 + energy: 90.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 1 + energy: 92.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 1 + energy: 94.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 1 + energy: 96.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 1 + energy: 98.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 1 + energy: 100.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 1 + energy: 102.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 1 + energy: 104.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 1 + energy: 106.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 1 + energy: 108.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 1 + energy: 110.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 1 + energy: 112.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 2 + energy: 91.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 2 + energy: 94.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 2 + energy: 97.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 2 + energy: 100.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 2 + energy: 103.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 2 + energy: 106.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 2 + energy: 109.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 2 + energy: 112.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 2 + energy: 115.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 2 + energy: 118.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 2 + energy: 121.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 2 + energy: 124.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 3 + energy: 92.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 3 + energy: 96.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 3 + energy: 100.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 3 + energy: 104.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 3 + energy: 108.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 3 + energy: 112.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 3 + energy: 116.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 3 + energy: 120.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 3 + energy: 124.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 3 + energy: 128.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 3 + energy: 132.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 3 + energy: 136.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 4 + energy: 93.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 4 + energy: 98.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 4 + energy: 103.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 4 + energy: 108.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 4 + energy: 113.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 4 + energy: 118.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 4 + energy: 123.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 4 + energy: 128.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 4 + energy: 133.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 4 + energy: 138.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 4 + energy: 143.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 4 + energy: 148.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 5 + energy: 94.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 5 + energy: 100.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 5 + energy: 106.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 5 + energy: 112.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 5 + energy: 118.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 5 + energy: 124.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 5 + energy: 130.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 5 + energy: 136.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 5 + energy: 142.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 5 + energy: 148.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 5 + energy: 154.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 5 + energy: 160.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 6 + energy: 95.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 6 + energy: 102.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 6 + energy: 109.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 6 + energy: 116.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 6 + energy: 123.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 6 + energy: 130.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 6 + energy: 137.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 6 + energy: 144.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 6 + energy: 151.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 6 + energy: 158.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 6 + energy: 165.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 6 + energy: 172.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 7 + energy: 96.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 7 + energy: 104.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 7 + energy: 112.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 7 + energy: 120.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 7 + energy: 128.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 7 + energy: 136.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 7 + energy: 144.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 7 + energy: 152.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 7 + energy: 160.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 7 + energy: 168.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 7 + energy: 176.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 7 + energy: 184.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 8 + energy: 97.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 8 + energy: 106.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 8 + energy: 115.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 8 + energy: 124.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 8 + energy: 133.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 8 + energy: 142.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 8 + energy: 151.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 8 + energy: 160.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 8 + energy: 169.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 8 + energy: 178.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 8 + energy: 187.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 8 + energy: 196.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 9 + energy: 98.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 9 + energy: 108.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 9 + energy: 118.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 9 + energy: 128.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 9 + energy: 138.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 9 + energy: 148.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 9 + energy: 158.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 9 + energy: 168.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 9 + energy: 178.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 9 + energy: 188.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 9 + energy: 198.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 9 + energy: 208.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 10 + energy: 99.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 10 + energy: 110.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 10 + energy: 121.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 10 + energy: 132.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 10 + energy: 143.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 10 + energy: 154.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 10 + energy: 165.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 10 + energy: 176.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 10 + energy: 187.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 10 + energy: 198.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 10 + energy: 209.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 10 + energy: 220.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 11 + energy: 100.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 11 + energy: 112.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 11 + energy: 124.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 11 + energy: 136.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 11 + energy: 148.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 11 + energy: 160.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 11 + energy: 172.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 11 + energy: 184.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 11 + energy: 196.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 11 + energy: 208.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 11 + energy: 220.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 11 + energy: 232.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 12 + energy: 101.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 12 + energy: 114.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 12 + energy: 127.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 12 + energy: 140.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 12 + energy: 153.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 12 + energy: 166.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 12 + energy: 179.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 12 + energy: 192.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 12 + energy: 205.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 12 + energy: 218.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 12 + energy: 231.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 12 + energy: 244.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 13 + energy: 102.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 13 + energy: 116.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 13 + energy: 130.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 13 + energy: 144.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 13 + energy: 158.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 13 + energy: 172.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 13 + energy: 186.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 13 + energy: 200.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 13 + energy: 214.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 13 + energy: 228.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 13 + energy: 242.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 13 + energy: 256.5088 + - name: transfer_random + arguments: + n_rows: 1 + n_cols_per_row: 14 + energy: 103.5088 + - name: transfer_random + arguments: + n_rows: 2 + n_cols_per_row: 14 + energy: 118.5088 + - name: transfer_random + arguments: + n_rows: 3 + n_cols_per_row: 14 + energy: 133.5088 + - name: transfer_random + arguments: + n_rows: 4 + n_cols_per_row: 14 + energy: 148.5088 + - name: transfer_random + arguments: + n_rows: 5 + n_cols_per_row: 14 + energy: 163.5088 + - name: transfer_random + arguments: + n_rows: 6 + n_cols_per_row: 14 + energy: 178.5088 + - name: transfer_random + arguments: + n_rows: 7 + n_cols_per_row: 14 + energy: 193.5088 + - name: transfer_random + arguments: + n_rows: 8 + n_cols_per_row: 14 + energy: 208.5088 + - name: transfer_random + arguments: + n_rows: 9 + n_cols_per_row: 14 + energy: 223.5088 + - name: transfer_random + arguments: + n_rows: 10 + n_cols_per_row: 14 + energy: 238.5088 + - name: transfer_random + arguments: + n_rows: 11 + n_cols_per_row: 14 + energy: 253.5088 + - name: transfer_random + arguments: + n_rows: 12 + n_cols_per_row: 14 + energy: 268.5088 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 1 + energy: 2.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 1 + energy: 4.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 1 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 1 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 1 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 1 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 1 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 1 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 1 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 1 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 1 + energy: 22.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 1 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 2 + energy: 3.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 2 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 2 + energy: 9.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 2 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 2 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 2 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 2 + energy: 21.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 2 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 2 + energy: 27.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 2 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 2 + energy: 33.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 2 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 3 + energy: 4.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 3 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 3 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 3 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 3 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 3 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 3 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 3 + energy: 32.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 3 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 3 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 3 + energy: 44.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 3 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 4 + energy: 5.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 4 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 4 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 4 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 4 + energy: 25.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 4 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 4 + energy: 35.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 4 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 4 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 4 + energy: 50.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 4 + energy: 55.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 4 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 5 + energy: 6.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 5 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 5 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 5 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 5 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 5 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 5 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 5 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 5 + energy: 54.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 5 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 5 + energy: 66.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 5 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 6 + energy: 7.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 6 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 6 + energy: 21.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 6 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 6 + energy: 35.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 6 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 6 + energy: 49.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 6 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 6 + energy: 63.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 6 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 6 + energy: 77.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 6 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 7 + energy: 8.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 7 + energy: 16.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 7 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 7 + energy: 32.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 7 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 7 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 7 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 7 + energy: 64.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 7 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 7 + energy: 80.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 7 + energy: 88.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 7 + energy: 96.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 8 + energy: 9.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 8 + energy: 18.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 8 + energy: 27.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 8 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 8 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 8 + energy: 54.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 8 + energy: 63.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 8 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 8 + energy: 81.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 8 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 8 + energy: 99.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 8 + energy: 108.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 9 + energy: 10.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 9 + energy: 20.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 9 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 9 + energy: 40.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 9 + energy: 50.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 9 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 9 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 9 + energy: 80.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 9 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 9 + energy: 100.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 9 + energy: 110.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 9 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 10 + energy: 11.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 10 + energy: 22.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 10 + energy: 33.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 10 + energy: 44.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 10 + energy: 55.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 10 + energy: 66.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 10 + energy: 77.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 10 + energy: 88.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 10 + energy: 99.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 10 + energy: 110.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 10 + energy: 121.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 10 + energy: 132.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 11 + energy: 12.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 11 + energy: 24.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 11 + energy: 36.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 11 + energy: 48.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 11 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 11 + energy: 72.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 11 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 11 + energy: 96.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 11 + energy: 108.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 11 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 11 + energy: 132.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 11 + energy: 144.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 12 + energy: 13.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 12 + energy: 26.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 12 + energy: 39.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 12 + energy: 52.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 12 + energy: 65.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 12 + energy: 78.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 12 + energy: 91.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 12 + energy: 104.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 12 + energy: 117.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 12 + energy: 130.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 12 + energy: 143.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 12 + energy: 156.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 13 + energy: 14.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 13 + energy: 28.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 13 + energy: 42.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 13 + energy: 56.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 13 + energy: 70.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 13 + energy: 84.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 13 + energy: 98.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 13 + energy: 112.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 13 + energy: 126.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 13 + energy: 140.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 13 + energy: 154.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 13 + energy: 168.0 + - name: transfer_repeated + arguments: + n_rows: 1 + n_cols_per_row: 14 + energy: 15.0 + - name: transfer_repeated + arguments: + n_rows: 2 + n_cols_per_row: 14 + energy: 30.0 + - name: transfer_repeated + arguments: + n_rows: 3 + n_cols_per_row: 14 + energy: 45.0 + - name: transfer_repeated + arguments: + n_rows: 4 + n_cols_per_row: 14 + energy: 60.0 + - name: transfer_repeated + arguments: + n_rows: 5 + n_cols_per_row: 14 + energy: 75.0 + - name: transfer_repeated + arguments: + n_rows: 6 + n_cols_per_row: 14 + energy: 90.0 + - name: transfer_repeated + arguments: + n_rows: 7 + n_cols_per_row: 14 + energy: 105.0 + - name: transfer_repeated + arguments: + n_rows: 8 + n_cols_per_row: 14 + energy: 120.0 + - name: transfer_repeated + arguments: + n_rows: 9 + n_cols_per_row: 14 + energy: 135.0 + - name: transfer_repeated + arguments: + n_rows: 10 + n_cols_per_row: 14 + energy: 150.0 + - name: transfer_repeated + arguments: + n_rows: 11 + n_cols_per_row: 14 + energy: 165.0 + - name: transfer_repeated + arguments: + n_rows: 12 + n_cols_per_row: 14 + energy: 180.0 + - name: idle + arguments: {} + energy: 180.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ERT_summary.yaml new file mode 100644 index 00000000..ef393161 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/ERT_summary.yaml @@ -0,0 +1,293 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: eyeriss_like.PE[0..167].mac + actions: + - name: mac_random + energy: 1.0 + - name: mac_reused + energy: 1.0 + - name: mac_gated + energy: 1.0 + - name: idle + energy: 1.0 + primitive_estimation(s): + - name: eyeriss_like.PE[0..167].mac + estimator: dummy_table + - name: eyeriss_like.PE[0..167].ifmap_spad + actions: + - name: write + average_energy: 3.0 + max_energy: 3.0 + min_energy: 3.0 + - name: read + average_energy: 3.0 + max_energy: 3.0 + min_energy: 3.0 + - name: idle + energy: 3.0 + primitive_estimation(s): + - name: storage + estimator: dummy_table + - name: address_generators[0] + estimator: dummy_table + - name: address_generators[1] + estimator: dummy_table + - name: address_generators[0..1] + estimator: dummy_table + - name: eyeriss_like.PE[0..167].weights_spad + actions: + - name: write + average_energy: 3.0 + max_energy: 3.0 + min_energy: 3.0 + - name: read + average_energy: 3.0 + max_energy: 3.0 + min_energy: 3.0 + - name: idle + energy: 3.0 + primitive_estimation(s): + - name: storage + estimator: dummy_table + - name: address_generators[0] + estimator: dummy_table + - name: address_generators[1] + estimator: dummy_table + - name: address_generators[0..1] + estimator: dummy_table + - name: eyeriss_like.PE[0..167].psum_spad + actions: + - name: write + average_energy: 3.0 + max_energy: 3.0 + min_energy: 3.0 + - name: read + average_energy: 3.0 + max_energy: 3.0 + min_energy: 3.0 + - name: idle + energy: 3.0 + primitive_estimation(s): + - name: storage + estimator: dummy_table + - name: address_generators[0] + estimator: dummy_table + - name: address_generators[1] + estimator: dummy_table + - name: address_generators[0..1] + estimator: dummy_table + - name: eyeriss_like.weights_glb + actions: + - name: write + average_energy: 7.64535 + max_energy: 13.2907 + min_energy: 2.0 + - name: read + average_energy: 7.11005 + max_energy: 12.2201 + min_energy: 2.0 + - name: idle + energy: 2.0 + primitive_estimation(s): + - name: storage + estimator: CACTI + - name: address_generators[0] + estimator: dummy_table + - name: address_generators[1] + estimator: dummy_table + - name: address_generators[0..1] + estimator: dummy_table + - name: eyeriss_like.shared_glb + actions: + - name: write + average_energy: 36.3512 + max_energy: 70.7024 + min_energy: 2.0 + - name: read + average_energy: 35.94445 + max_energy: 69.8889 + min_energy: 2.0 + - name: idle + energy: 2.0 + primitive_estimation(s): + - name: storage + estimator: CACTI + - name: address_generators[0] + estimator: dummy_table + - name: address_generators[1] + estimator: dummy_table + - name: address_generators[0..1] + estimator: dummy_table + - name: eyeriss_like.ifmap_NoC + actions: + - name: transfer_random + average_energy: 68.266 + max_energy: 193.016 + min_energy: 15.016 + - name: transfer_repeated + average_energy: 55.25 + max_energy: 180.0 + min_energy: 2.0 + - name: idle + energy: 180.0 + primitive_estimation(s): + - name: Y_memory_controller[0..0] + estimator: dummy_table + - name: X_memory_controller[0] + estimator: dummy_table + - name: Y_X_wire + estimator: Aladdin_table + - name: Y_memory_controller[0..1] + estimator: dummy_table + - name: Y_memory_controller[0..2] + estimator: dummy_table + - name: Y_memory_controller[0..3] + estimator: dummy_table + - name: Y_memory_controller[0..4] + estimator: dummy_table + - name: Y_memory_controller[0..5] + estimator: dummy_table + - name: Y_memory_controller[0..6] + estimator: dummy_table + - name: Y_memory_controller[0..7] + estimator: dummy_table + - name: Y_memory_controller[0..8] + estimator: dummy_table + - name: Y_memory_controller[0..9] + estimator: dummy_table + - name: Y_memory_controller[0..10] + estimator: dummy_table + - name: Y_memory_controller[0..11] + estimator: dummy_table + - name: X_memory_controller[0..167] + estimator: dummy_table + - name: eyeriss_like.weights_NoC + actions: + - name: transfer_random + average_energy: 99.5044 + max_energy: 224.2544 + min_energy: 46.2544 + - name: transfer_repeated + average_energy: 55.25 + max_energy: 180.0 + min_energy: 2.0 + - name: idle + energy: 180.0 + primitive_estimation(s): + - name: Y_memory_controller[0..0] + estimator: dummy_table + - name: X_memory_controller[0] + estimator: dummy_table + - name: Y_X_wire + estimator: Aladdin_table + - name: Y_memory_controller[0..1] + estimator: dummy_table + - name: Y_memory_controller[0..2] + estimator: dummy_table + - name: Y_memory_controller[0..3] + estimator: dummy_table + - name: Y_memory_controller[0..4] + estimator: dummy_table + - name: Y_memory_controller[0..5] + estimator: dummy_table + - name: Y_memory_controller[0..6] + estimator: dummy_table + - name: Y_memory_controller[0..7] + estimator: dummy_table + - name: Y_memory_controller[0..8] + estimator: dummy_table + - name: Y_memory_controller[0..9] + estimator: dummy_table + - name: Y_memory_controller[0..10] + estimator: dummy_table + - name: Y_memory_controller[0..11] + estimator: dummy_table + - name: X_memory_controller[0..167] + estimator: dummy_table + - name: eyeriss_like.psum_write_NoC + actions: + - name: transfer_random + average_energy: 99.5044 + max_energy: 224.2544 + min_energy: 46.2544 + - name: transfer_repeated + average_energy: 55.25 + max_energy: 180.0 + min_energy: 2.0 + - name: idle + energy: 180.0 + primitive_estimation(s): + - name: Y_memory_controller[0..0] + estimator: dummy_table + - name: X_memory_controller[0] + estimator: dummy_table + - name: Y_X_wire + estimator: Aladdin_table + - name: Y_memory_controller[0..1] + estimator: dummy_table + - name: Y_memory_controller[0..2] + estimator: dummy_table + - name: Y_memory_controller[0..3] + estimator: dummy_table + - name: Y_memory_controller[0..4] + estimator: dummy_table + - name: Y_memory_controller[0..5] + estimator: dummy_table + - name: Y_memory_controller[0..6] + estimator: dummy_table + - name: Y_memory_controller[0..7] + estimator: dummy_table + - name: Y_memory_controller[0..8] + estimator: dummy_table + - name: Y_memory_controller[0..9] + estimator: dummy_table + - name: Y_memory_controller[0..10] + estimator: dummy_table + - name: Y_memory_controller[0..11] + estimator: dummy_table + - name: X_memory_controller[0..167] + estimator: dummy_table + - name: eyeriss_like.psum_read_NoC + actions: + - name: transfer_random + average_energy: 143.7588 + max_energy: 268.5088 + min_energy: 90.5088 + - name: transfer_repeated + average_energy: 55.25 + max_energy: 180.0 + min_energy: 2.0 + - name: idle + energy: 180.0 + primitive_estimation(s): + - name: Y_memory_controller[0..0] + estimator: dummy_table + - name: X_memory_controller[0] + estimator: dummy_table + - name: Y_X_wire + estimator: Aladdin_table + - name: Y_memory_controller[0..1] + estimator: dummy_table + - name: Y_memory_controller[0..2] + estimator: dummy_table + - name: Y_memory_controller[0..3] + estimator: dummy_table + - name: Y_memory_controller[0..4] + estimator: dummy_table + - name: Y_memory_controller[0..5] + estimator: dummy_table + - name: Y_memory_controller[0..6] + estimator: dummy_table + - name: Y_memory_controller[0..7] + estimator: dummy_table + - name: Y_memory_controller[0..8] + estimator: dummy_table + - name: Y_memory_controller[0..9] + estimator: dummy_table + - name: Y_memory_controller[0..10] + estimator: dummy_table + - name: Y_memory_controller[0..11] + estimator: dummy_table + - name: X_memory_controller[0..167] + estimator: dummy_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/energy_estimation.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/energy_estimation.yaml new file mode 100644 index 00000000..c25a32de --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/energy_estimation.yaml @@ -0,0 +1,1264 @@ +energy_estimation: + version: '0.4' + components: + - name: eyeriss_like.weights_glb + energy: 80247.3266 + - name: eyeriss_like.shared_glb + energy: 2385777.169152 + - name: eyeriss_like.weights_NoC + energy: 5702549.0688 + - name: eyeriss_like.ifmap_NoC + energy: 4683794.504 + - name: eyeriss_like.psum_write_NoC + energy: 2949615.1808 + - name: eyeriss_like.psum_read_NoC + energy: 3906926.3616 + - name: eyeriss_like.PE[0].weights_spad + energy: 98529.0 + - name: eyeriss_like.PE[0].ifmap_spad + energy: 98811.0 + - name: eyeriss_like.PE[0].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[0].mac + energy: 32460.0 + - name: eyeriss_like.PE[1].weights_spad + energy: 98514.0 + - name: eyeriss_like.PE[1].ifmap_spad + energy: 98814.0 + - name: eyeriss_like.PE[1].psum_spad + energy: 148320.0 + - name: eyeriss_like.PE[1].mac + energy: 32460.0 + - name: eyeriss_like.PE[2].weights_spad + energy: 98487.0 + - name: eyeriss_like.PE[2].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[2].psum_spad + energy: 148353.0 + - name: eyeriss_like.PE[2].mac + energy: 32460.0 + - name: eyeriss_like.PE[3].weights_spad + energy: 98451.0 + - name: eyeriss_like.PE[3].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[3].psum_spad + energy: 148395.0 + - name: eyeriss_like.PE[3].mac + energy: 32460.0 + - name: eyeriss_like.PE[4].weights_spad + energy: 98427.0 + - name: eyeriss_like.PE[4].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[4].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[4].mac + energy: 32460.0 + - name: eyeriss_like.PE[5].weights_spad + energy: 98415.0 + - name: eyeriss_like.PE[5].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[5].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[5].mac + energy: 32460.0 + - name: eyeriss_like.PE[6].weights_spad + energy: 98403.0 + - name: eyeriss_like.PE[6].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[6].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[6].mac + energy: 32460.0 + - name: eyeriss_like.PE[7].weights_spad + energy: 98391.0 + - name: eyeriss_like.PE[7].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[7].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[7].mac + energy: 32460.0 + - name: eyeriss_like.PE[8].weights_spad + energy: 98379.0 + - name: eyeriss_like.PE[8].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[8].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[8].mac + energy: 32460.0 + - name: eyeriss_like.PE[9].weights_spad + energy: 98367.0 + - name: eyeriss_like.PE[9].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[9].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[9].mac + energy: 32460.0 + - name: eyeriss_like.PE[10].weights_spad + energy: 98355.0 + - name: eyeriss_like.PE[10].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[10].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[10].mac + energy: 32460.0 + - name: eyeriss_like.PE[11].weights_spad + energy: 98343.0 + - name: eyeriss_like.PE[11].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[11].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[11].mac + energy: 32460.0 + - name: eyeriss_like.PE[12].weights_spad + energy: 98331.0 + - name: eyeriss_like.PE[12].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[12].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[12].mac + energy: 32460.0 + - name: eyeriss_like.PE[14].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[14].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[14].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[14].mac + energy: 32460.0 + - name: eyeriss_like.PE[15].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[15].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[15].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[15].mac + energy: 32460.0 + - name: eyeriss_like.PE[16].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[16].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[16].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[16].mac + energy: 32460.0 + - name: eyeriss_like.PE[17].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[17].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[17].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[17].mac + energy: 32460.0 + - name: eyeriss_like.PE[18].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[18].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[18].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[18].mac + energy: 32460.0 + - name: eyeriss_like.PE[19].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[19].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[19].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[19].mac + energy: 32460.0 + - name: eyeriss_like.PE[20].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[20].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[20].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[20].mac + energy: 32460.0 + - name: eyeriss_like.PE[21].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[21].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[21].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[21].mac + energy: 32460.0 + - name: eyeriss_like.PE[22].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[22].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[22].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[22].mac + energy: 32460.0 + - name: eyeriss_like.PE[23].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[23].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[23].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[23].mac + energy: 32460.0 + - name: eyeriss_like.PE[24].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[24].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[24].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[24].mac + energy: 32460.0 + - name: eyeriss_like.PE[25].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[25].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[25].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[25].mac + energy: 32460.0 + - name: eyeriss_like.PE[26].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[26].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[26].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[26].mac + energy: 32460.0 + - name: eyeriss_like.PE[28].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[28].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[28].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[28].mac + energy: 32460.0 + - name: eyeriss_like.PE[29].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[29].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[29].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[29].mac + energy: 32460.0 + - name: eyeriss_like.PE[30].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[30].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[30].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[30].mac + energy: 32460.0 + - name: eyeriss_like.PE[31].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[31].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[31].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[31].mac + energy: 32460.0 + - name: eyeriss_like.PE[32].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[32].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[32].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[32].mac + energy: 32460.0 + - name: eyeriss_like.PE[33].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[33].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[33].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[33].mac + energy: 32460.0 + - name: eyeriss_like.PE[34].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[34].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[34].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[34].mac + energy: 32460.0 + - name: eyeriss_like.PE[35].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[35].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[35].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[35].mac + energy: 32460.0 + - name: eyeriss_like.PE[36].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[36].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[36].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[36].mac + energy: 32460.0 + - name: eyeriss_like.PE[37].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[37].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[37].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[37].mac + energy: 32460.0 + - name: eyeriss_like.PE[38].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[38].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[38].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[38].mac + energy: 32460.0 + - name: eyeriss_like.PE[39].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[39].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[39].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[39].mac + energy: 32460.0 + - name: eyeriss_like.PE[40].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[40].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[40].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[40].mac + energy: 32460.0 + - name: eyeriss_like.PE[42].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[42].ifmap_spad + energy: 98808.0 + - name: eyeriss_like.PE[42].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[42].mac + energy: 32460.0 + - name: eyeriss_like.PE[43].weights_spad + energy: 98526.0 + - name: eyeriss_like.PE[43].ifmap_spad + energy: 98811.0 + - name: eyeriss_like.PE[43].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[43].mac + energy: 32460.0 + - name: eyeriss_like.PE[44].weights_spad + energy: 98508.0 + - name: eyeriss_like.PE[44].ifmap_spad + energy: 98814.0 + - name: eyeriss_like.PE[44].psum_spad + energy: 148326.0 + - name: eyeriss_like.PE[44].mac + energy: 32460.0 + - name: eyeriss_like.PE[45].weights_spad + energy: 98478.0 + - name: eyeriss_like.PE[45].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[45].psum_spad + energy: 148362.0 + - name: eyeriss_like.PE[45].mac + energy: 32460.0 + - name: eyeriss_like.PE[46].weights_spad + energy: 98445.0 + - name: eyeriss_like.PE[46].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[46].psum_spad + energy: 148401.0 + - name: eyeriss_like.PE[46].mac + energy: 32460.0 + - name: eyeriss_like.PE[47].weights_spad + energy: 98424.0 + - name: eyeriss_like.PE[47].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[47].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[47].mac + energy: 32460.0 + - name: eyeriss_like.PE[48].weights_spad + energy: 98412.0 + - name: eyeriss_like.PE[48].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[48].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[48].mac + energy: 32460.0 + - name: eyeriss_like.PE[49].weights_spad + energy: 98400.0 + - name: eyeriss_like.PE[49].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[49].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[49].mac + energy: 32460.0 + - name: eyeriss_like.PE[50].weights_spad + energy: 98388.0 + - name: eyeriss_like.PE[50].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[50].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[50].mac + energy: 32460.0 + - name: eyeriss_like.PE[51].weights_spad + energy: 98376.0 + - name: eyeriss_like.PE[51].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[51].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[51].mac + energy: 32460.0 + - name: eyeriss_like.PE[52].weights_spad + energy: 98364.0 + - name: eyeriss_like.PE[52].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[52].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[52].mac + energy: 32460.0 + - name: eyeriss_like.PE[53].weights_spad + energy: 98352.0 + - name: eyeriss_like.PE[53].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[53].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[53].mac + energy: 32460.0 + - name: eyeriss_like.PE[54].weights_spad + energy: 98340.0 + - name: eyeriss_like.PE[54].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[54].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[54].mac + energy: 32460.0 + - name: eyeriss_like.PE[56].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[56].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[56].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[56].mac + energy: 32460.0 + - name: eyeriss_like.PE[57].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[57].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[57].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[57].mac + energy: 32460.0 + - name: eyeriss_like.PE[58].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[58].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[58].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[58].mac + energy: 32460.0 + - name: eyeriss_like.PE[59].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[59].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[59].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[59].mac + energy: 32460.0 + - name: eyeriss_like.PE[60].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[60].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[60].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[60].mac + energy: 32460.0 + - name: eyeriss_like.PE[61].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[61].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[61].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[61].mac + energy: 32460.0 + - name: eyeriss_like.PE[62].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[62].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[62].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[62].mac + energy: 32460.0 + - name: eyeriss_like.PE[63].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[63].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[63].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[63].mac + energy: 32460.0 + - name: eyeriss_like.PE[64].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[64].ifmap_spad + energy: 98793.0 + - name: eyeriss_like.PE[64].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[64].mac + energy: 32460.0 + - name: eyeriss_like.PE[65].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[65].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[65].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[65].mac + energy: 32460.0 + - name: eyeriss_like.PE[66].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[66].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[66].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[66].mac + energy: 32460.0 + - name: eyeriss_like.PE[67].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[67].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[67].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[67].mac + energy: 32460.0 + - name: eyeriss_like.PE[68].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[68].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[68].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[68].mac + energy: 32460.0 + - name: eyeriss_like.PE[70].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[70].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[70].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[70].mac + energy: 32460.0 + - name: eyeriss_like.PE[71].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[71].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[71].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[71].mac + energy: 32460.0 + - name: eyeriss_like.PE[72].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[72].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[72].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[72].mac + energy: 32460.0 + - name: eyeriss_like.PE[73].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[73].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[73].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[73].mac + energy: 32460.0 + - name: eyeriss_like.PE[74].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[74].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[74].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[74].mac + energy: 32460.0 + - name: eyeriss_like.PE[75].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[75].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[75].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[75].mac + energy: 32460.0 + - name: eyeriss_like.PE[76].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[76].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[76].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[76].mac + energy: 32460.0 + - name: eyeriss_like.PE[77].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[77].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[77].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[77].mac + energy: 32460.0 + - name: eyeriss_like.PE[78].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[78].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[78].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[78].mac + energy: 32460.0 + - name: eyeriss_like.PE[79].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[79].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[79].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[79].mac + energy: 32460.0 + - name: eyeriss_like.PE[80].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[80].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[80].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[80].mac + energy: 32460.0 + - name: eyeriss_like.PE[81].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[81].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[81].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[81].mac + energy: 32460.0 + - name: eyeriss_like.PE[82].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[82].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[82].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[82].mac + energy: 32460.0 + - name: eyeriss_like.PE[84].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[84].ifmap_spad + energy: 98814.0 + - name: eyeriss_like.PE[84].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[84].mac + energy: 32460.0 + - name: eyeriss_like.PE[85].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[85].ifmap_spad + energy: 98814.0 + - name: eyeriss_like.PE[85].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[85].mac + energy: 32460.0 + - name: eyeriss_like.PE[86].weights_spad + energy: 98523.0 + - name: eyeriss_like.PE[86].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[86].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[86].mac + energy: 32460.0 + - name: eyeriss_like.PE[87].weights_spad + energy: 98502.0 + - name: eyeriss_like.PE[87].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[87].psum_spad + energy: 148332.0 + - name: eyeriss_like.PE[87].mac + energy: 32460.0 + - name: eyeriss_like.PE[88].weights_spad + energy: 98469.0 + - name: eyeriss_like.PE[88].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[88].psum_spad + energy: 148371.0 + - name: eyeriss_like.PE[88].mac + energy: 32460.0 + - name: eyeriss_like.PE[89].weights_spad + energy: 98439.0 + - name: eyeriss_like.PE[89].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[89].psum_spad + energy: 148407.0 + - name: eyeriss_like.PE[89].mac + energy: 32460.0 + - name: eyeriss_like.PE[90].weights_spad + energy: 98421.0 + - name: eyeriss_like.PE[90].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[90].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[90].mac + energy: 32460.0 + - name: eyeriss_like.PE[91].weights_spad + energy: 98409.0 + - name: eyeriss_like.PE[91].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[91].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[91].mac + energy: 32460.0 + - name: eyeriss_like.PE[92].weights_spad + energy: 98397.0 + - name: eyeriss_like.PE[92].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[92].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[92].mac + energy: 32460.0 + - name: eyeriss_like.PE[93].weights_spad + energy: 98385.0 + - name: eyeriss_like.PE[93].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[93].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[93].mac + energy: 32460.0 + - name: eyeriss_like.PE[94].weights_spad + energy: 98373.0 + - name: eyeriss_like.PE[94].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[94].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[94].mac + energy: 32460.0 + - name: eyeriss_like.PE[95].weights_spad + energy: 98361.0 + - name: eyeriss_like.PE[95].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[95].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[95].mac + energy: 32460.0 + - name: eyeriss_like.PE[96].weights_spad + energy: 98349.0 + - name: eyeriss_like.PE[96].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[96].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[96].mac + energy: 32460.0 + - name: eyeriss_like.PE[98].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[98].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[98].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[98].mac + energy: 32460.0 + - name: eyeriss_like.PE[99].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[99].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[99].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[99].mac + energy: 32460.0 + - name: eyeriss_like.PE[100].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[100].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[100].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[100].mac + energy: 32460.0 + - name: eyeriss_like.PE[101].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[101].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[101].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[101].mac + energy: 32460.0 + - name: eyeriss_like.PE[102].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[102].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[102].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[102].mac + energy: 32460.0 + - name: eyeriss_like.PE[103].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[103].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[103].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[103].mac + energy: 32460.0 + - name: eyeriss_like.PE[104].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[104].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[104].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[104].mac + energy: 32460.0 + - name: eyeriss_like.PE[105].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[105].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[105].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[105].mac + energy: 32460.0 + - name: eyeriss_like.PE[106].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[106].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[106].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[106].mac + energy: 32460.0 + - name: eyeriss_like.PE[107].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[107].ifmap_spad + energy: 98796.0 + - name: eyeriss_like.PE[107].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[107].mac + energy: 32460.0 + - name: eyeriss_like.PE[108].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[108].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[108].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[108].mac + energy: 32460.0 + - name: eyeriss_like.PE[109].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[109].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[109].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[109].mac + energy: 32460.0 + - name: eyeriss_like.PE[110].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[110].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[110].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[110].mac + energy: 32460.0 + - name: eyeriss_like.PE[112].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[112].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[112].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[112].mac + energy: 32460.0 + - name: eyeriss_like.PE[113].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[113].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[113].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[113].mac + energy: 32460.0 + - name: eyeriss_like.PE[114].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[114].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[114].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[114].mac + energy: 32460.0 + - name: eyeriss_like.PE[115].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[115].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[115].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[115].mac + energy: 32460.0 + - name: eyeriss_like.PE[116].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[116].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[116].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[116].mac + energy: 32460.0 + - name: eyeriss_like.PE[117].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[117].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[117].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[117].mac + energy: 32460.0 + - name: eyeriss_like.PE[118].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[118].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[118].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[118].mac + energy: 32460.0 + - name: eyeriss_like.PE[119].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[119].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[119].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[119].mac + energy: 32460.0 + - name: eyeriss_like.PE[120].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[120].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[120].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[120].mac + energy: 32460.0 + - name: eyeriss_like.PE[121].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[121].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[121].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[121].mac + energy: 32460.0 + - name: eyeriss_like.PE[122].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[122].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[122].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[122].mac + energy: 32460.0 + - name: eyeriss_like.PE[123].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[123].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[123].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[123].mac + energy: 32460.0 + - name: eyeriss_like.PE[124].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[124].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[124].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[124].mac + energy: 32460.0 + - name: eyeriss_like.PE[126].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[126].ifmap_spad + energy: 98808.0 + - name: eyeriss_like.PE[126].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[126].mac + energy: 32460.0 + - name: eyeriss_like.PE[127].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[127].ifmap_spad + energy: 98808.0 + - name: eyeriss_like.PE[127].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[127].mac + energy: 32460.0 + - name: eyeriss_like.PE[128].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[128].ifmap_spad + energy: 98808.0 + - name: eyeriss_like.PE[128].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[128].mac + energy: 32460.0 + - name: eyeriss_like.PE[129].weights_spad + energy: 98520.0 + - name: eyeriss_like.PE[129].ifmap_spad + energy: 98811.0 + - name: eyeriss_like.PE[129].psum_spad + energy: 148311.0 + - name: eyeriss_like.PE[129].mac + energy: 32460.0 + - name: eyeriss_like.PE[130].weights_spad + energy: 98496.0 + - name: eyeriss_like.PE[130].ifmap_spad + energy: 98814.0 + - name: eyeriss_like.PE[130].psum_spad + energy: 148338.0 + - name: eyeriss_like.PE[130].mac + energy: 32460.0 + - name: eyeriss_like.PE[131].weights_spad + energy: 98460.0 + - name: eyeriss_like.PE[131].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[131].psum_spad + energy: 148380.0 + - name: eyeriss_like.PE[131].mac + energy: 32460.0 + - name: eyeriss_like.PE[132].weights_spad + energy: 98433.0 + - name: eyeriss_like.PE[132].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[132].psum_spad + energy: 148413.0 + - name: eyeriss_like.PE[132].mac + energy: 32460.0 + - name: eyeriss_like.PE[133].weights_spad + energy: 98418.0 + - name: eyeriss_like.PE[133].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[133].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[133].mac + energy: 32460.0 + - name: eyeriss_like.PE[134].weights_spad + energy: 98406.0 + - name: eyeriss_like.PE[134].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[134].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[134].mac + energy: 32460.0 + - name: eyeriss_like.PE[135].weights_spad + energy: 98394.0 + - name: eyeriss_like.PE[135].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[135].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[135].mac + energy: 32460.0 + - name: eyeriss_like.PE[136].weights_spad + energy: 98382.0 + - name: eyeriss_like.PE[136].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[136].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[136].mac + energy: 32460.0 + - name: eyeriss_like.PE[137].weights_spad + energy: 98370.0 + - name: eyeriss_like.PE[137].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[137].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[137].mac + energy: 32460.0 + - name: eyeriss_like.PE[138].weights_spad + energy: 98358.0 + - name: eyeriss_like.PE[138].ifmap_spad + energy: 98817.0 + - name: eyeriss_like.PE[138].psum_spad + energy: 148422.0 + - name: eyeriss_like.PE[138].mac + energy: 32460.0 + - name: eyeriss_like.PE[140].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[140].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[140].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[140].mac + energy: 32460.0 + - name: eyeriss_like.PE[141].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[141].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[141].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[141].mac + energy: 32460.0 + - name: eyeriss_like.PE[142].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[142].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[142].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[142].mac + energy: 32460.0 + - name: eyeriss_like.PE[143].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[143].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[143].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[143].mac + energy: 32460.0 + - name: eyeriss_like.PE[144].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[144].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[144].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[144].mac + energy: 32460.0 + - name: eyeriss_like.PE[145].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[145].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[145].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[145].mac + energy: 32460.0 + - name: eyeriss_like.PE[146].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[146].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[146].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[146].mac + energy: 32460.0 + - name: eyeriss_like.PE[147].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[147].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[147].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[147].mac + energy: 32460.0 + - name: eyeriss_like.PE[148].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[148].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[148].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[148].mac + energy: 32460.0 + - name: eyeriss_like.PE[149].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[149].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[149].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[149].mac + energy: 32460.0 + - name: eyeriss_like.PE[150].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[150].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[150].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[150].mac + energy: 32460.0 + - name: eyeriss_like.PE[151].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[151].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[151].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[151].mac + energy: 32460.0 + - name: eyeriss_like.PE[152].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[152].ifmap_spad + energy: 98799.0 + - name: eyeriss_like.PE[152].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[152].mac + energy: 32460.0 + - name: eyeriss_like.PE[154].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[154].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[154].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[154].mac + energy: 32460.0 + - name: eyeriss_like.PE[155].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[155].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[155].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[155].mac + energy: 32460.0 + - name: eyeriss_like.PE[156].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[156].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[156].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[156].mac + energy: 32460.0 + - name: eyeriss_like.PE[157].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[157].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[157].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[157].mac + energy: 32460.0 + - name: eyeriss_like.PE[158].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[158].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[158].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[158].mac + energy: 32460.0 + - name: eyeriss_like.PE[159].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[159].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[159].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[159].mac + energy: 32460.0 + - name: eyeriss_like.PE[160].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[160].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[160].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[160].mac + energy: 32460.0 + - name: eyeriss_like.PE[161].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[161].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[161].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[161].mac + energy: 32460.0 + - name: eyeriss_like.PE[162].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[162].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[162].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[162].mac + energy: 32460.0 + - name: eyeriss_like.PE[163].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[163].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[163].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[163].mac + energy: 32460.0 + - name: eyeriss_like.PE[164].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[164].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[164].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[164].mac + energy: 32460.0 + - name: eyeriss_like.PE[165].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[165].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[165].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[165].mac + energy: 32460.0 + - name: eyeriss_like.PE[166].weights_spad + energy: 98532.0 + - name: eyeriss_like.PE[166].ifmap_spad + energy: 98790.0 + - name: eyeriss_like.PE[166].psum_spad + energy: 148308.0 + - name: eyeriss_like.PE[166].mac + energy: 32460.0 + Total: 78691351.61095199 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/flattened_architecture.yaml new file mode 100644 index 00000000..2f350713 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/output/flattened_architecture.yaml @@ -0,0 +1,113 @@ +architecture: + version: '0.4' + local: + - name: eyeriss_like.PE[0..167].ifmap_spad + class: smartbuffer_RF + attributes: + memory_depth: 12 + memory_width: 16 + technology: 45nm + global_cycle_seconds: 1e-09 + n_rdwr_ports: 2 + n_banks: 1 + n_buffets: 1 + - name: eyeriss_like.PE[0..167].weights_spad + class: smartbuffer_RF + attributes: + memory_depth: 192 + memory_width: 16 + technology: 45nm + global_cycle_seconds: 1e-09 + n_rdwr_ports: 2 + n_banks: 1 + n_buffets: 1 + - name: eyeriss_like.PE[0..167].psum_spad + class: smartbuffer_RF + attributes: + memory_depth: 16 + memory_width: 16 + technology: 45nm + global_cycle_seconds: 1e-09 + n_rdwr_ports: 2 + n_banks: 1 + n_buffets: 1 + - name: eyeriss_like.PE[0..167].mac + class: intmac + attributes: + datawidth: 16 + meshX: 14 + technology: 45nm + global_cycle_seconds: 1e-09 + num_pipeline_stages: 2 + latency: "5ns" + - name: eyeriss_like.weights_glb + class: smartbuffer_SRAM + attributes: + memory_width: 64 + memory_depth: 1024 + n_banks: 2 + technology: 45nm + global_cycle_seconds: 1e-09 + n_rdwr_ports: 2 + n_buffets: 1 + - name: eyeriss_like.shared_glb + class: smartbuffer_SRAM + attributes: + memory_width: 64 + n_banks: 25 + bank_depth: 512 + memory_depth: 12800 + n_buffets: 2 + update_fifo_depth: 2 + technology: 45nm + global_cycle_seconds: 1e-09 + n_rdwr_ports: 2 + - name: eyeriss_like.ifmap_NoC + class: XY_NoC + attributes: + datawidth: 16 + col_id_width: 5 + technology: 45nm + global_cycle_seconds: 1e-09 + Y_comparator_width: 4 + X_comparator_width: 4 + n_PE_rows: 12 + n_PE_cols: 14 + total_PEs: 168 + Y_X_wire_avg_length: 2mm + - name: eyeriss_like.weights_NoC + class: XY_NoC + attributes: + datawidth: 64 + technology: 45nm + global_cycle_seconds: 1e-09 + Y_comparator_width: 4 + X_comparator_width: 4 + n_PE_rows: 12 + n_PE_cols: 14 + total_PEs: 168 + Y_X_wire_avg_length: 2mm + - name: eyeriss_like.psum_write_NoC + class: XY_NoC + attributes: + datawidth: 64 + technology: 45nm + global_cycle_seconds: 1e-09 + Y_comparator_width: 4 + X_comparator_width: 4 + n_PE_rows: 12 + n_PE_cols: 14 + total_PEs: 168 + Y_X_wire_avg_length: 2mm + - name: eyeriss_like.psum_read_NoC + class: XY_NoC + attributes: + datawidth: 64 + Y_X_wire_avg_length: 4mm + technology: 45nm + global_cycle_seconds: 1e-09 + Y_comparator_width: 4 + X_comparator_width: 4 + n_PE_rows: 12 + n_PE_cols: 14 + total_PEs: 168 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ART.yaml new file mode 100644 index 00000000..b616f566 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ART.yaml @@ -0,0 +1,23 @@ +ART: + version: 0.3 + tables: + - name: eyeriss_like.PE[0..167].mac + area: 1239.5 + - name: eyeriss_like.PE[0..167].ifmap_spad + area: 379.68 + - name: eyeriss_like.PE[0..167].weights_spad + area: 3634.68 + - name: eyeriss_like.PE[0..167].psum_spad + area: 414.68 + - name: eyeriss_like.weights_glb + area: 77093.2 + - name: eyeriss_like.shared_glb + area: 979377.0 + - name: eyeriss_like.ifmap_NoC + area: 1575.0 + - name: eyeriss_like.weights_NoC + area: 1575.0 + - name: eyeriss_like.psum_write_NoC + area: 1575.0 + - name: eyeriss_like.psum_read_NoC + area: 1575.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ART_summary.yaml new file mode 100644 index 00000000..27e75a4f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ART_summary.yaml @@ -0,0 +1,77 @@ +ART_summary: + version: 0.3 + table_summary: + - name: eyeriss_like.PE[0..167].mac + area: 1239.5 + primitive_estimations: Aladdin_table + - name: eyeriss_like.PE[0..167].ifmap_spad + area: 379.68 + primitive_estimations: + - name: storage + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.PE[0..167].weights_spad + area: 3634.68 + primitive_estimations: + - name: storage + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.PE[0..167].psum_spad + area: 414.68 + primitive_estimations: + - name: storage + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.weights_glb + area: 77093.2 + primitive_estimations: + - name: storage + estimator: Cacti + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.shared_glb + area: 979377.0 + primitive_estimations: + - name: storage + estimator: Cacti + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.ifmap_NoC + area: 1575.0 + primitive_estimations: + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: eyeriss_like.weights_NoC + area: 1575.0 + primitive_estimations: + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: eyeriss_like.psum_write_NoC + area: 1575.0 + primitive_estimations: + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: eyeriss_like.psum_read_NoC + area: 1575.0 + primitive_estimations: + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ERT.yaml new file mode 100644 index 00000000..17da35be --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ERT.yaml @@ -0,0 +1,7482 @@ +ERT: + version: 0.3 + tables: + - name: eyeriss_like.PE[0..167].mac + actions: + - name: mac_random + arguments: null + energy: 2.20035 + - name: mac_reused + arguments: null + energy: 1.87673 + - name: mac_gated + arguments: null + energy: 0.10285 + - name: idle + arguments: null + energy: 0.06595 + - name: eyeriss_like.PE[0..167].ifmap_spad + actions: + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.0549 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.19298 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.09824 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.23632 + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.0549 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.19298 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.09824 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.23632 + - name: idle + arguments: null + energy: 0.018 + - name: eyeriss_like.PE[0..167].weights_spad + actions: + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.06053 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.19861 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 1.44744 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 1.58552 + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.06053 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.19861 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 1.44744 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 1.58552 + - name: idle + arguments: null + energy: 0.02363 + - name: eyeriss_like.PE[0..167].psum_spad + actions: + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.05496 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.19304 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.11275 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.25083 + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.05496 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 0.19304 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.11275 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 0.25083 + - name: idle + arguments: null + energy: 0.01806 + - name: eyeriss_like.weights_glb + actions: + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.04906 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 7.95237 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 1.74263 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 9.64593 + - name: write + arguments: + address_delta: 2 + data_delta: 0 + energy: 3.43619 + - name: write + arguments: + address_delta: 2 + data_delta: 1 + energy: 11.3395 + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.04906 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 7.20295 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 1.58204 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 8.73592 + - name: read + arguments: + address_delta: 2 + data_delta: 0 + energy: 3.11501 + - name: read + arguments: + address_delta: 2 + data_delta: 1 + energy: 10.2689 + - name: idle + arguments: null + energy: 0.01216 + - name: eyeriss_like.shared_glb + actions: + - name: write + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.05383 + - name: write + arguments: + address_delta: 0 + data_delta: 1 + energy: 48.14199 + - name: write + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.8782 + - name: write + arguments: + address_delta: 1 + data_delta: 1 + energy: 48.96636 + - name: write + arguments: + address_delta: 2 + data_delta: 0 + energy: 1.70257 + - name: write + arguments: + address_delta: 2 + data_delta: 1 + energy: 49.79073 + - name: write + arguments: + address_delta: 3 + data_delta: 0 + energy: 2.52694 + - name: write + arguments: + address_delta: 3 + data_delta: 1 + energy: 50.61509 + - name: write + arguments: + address_delta: 4 + data_delta: 0 + energy: 3.3513 + - name: write + arguments: + address_delta: 4 + data_delta: 1 + energy: 51.43946 + - name: write + arguments: + address_delta: 5 + data_delta: 0 + energy: 4.17567 + - name: write + arguments: + address_delta: 5 + data_delta: 1 + energy: 52.26383 + - name: write + arguments: + address_delta: 6 + data_delta: 0 + energy: 5.00004 + - name: write + arguments: + address_delta: 6 + data_delta: 1 + energy: 53.0882 + - name: write + arguments: + address_delta: 7 + data_delta: 0 + energy: 5.82441 + - name: write + arguments: + address_delta: 7 + data_delta: 1 + energy: 53.91257 + - name: write + arguments: + address_delta: 8 + data_delta: 0 + energy: 6.64878 + - name: write + arguments: + address_delta: 8 + data_delta: 1 + energy: 54.73694 + - name: write + arguments: + address_delta: 9 + data_delta: 0 + energy: 7.47315 + - name: write + arguments: + address_delta: 9 + data_delta: 1 + energy: 55.56131 + - name: write + arguments: + address_delta: 10 + data_delta: 0 + energy: 8.29752 + - name: write + arguments: + address_delta: 10 + data_delta: 1 + energy: 56.38567 + - name: write + arguments: + address_delta: 11 + data_delta: 0 + energy: 9.12188 + - name: write + arguments: + address_delta: 11 + data_delta: 1 + energy: 57.21004 + - name: write + arguments: + address_delta: 12 + data_delta: 0 + energy: 9.94625 + - name: write + arguments: + address_delta: 12 + data_delta: 1 + energy: 58.03441 + - name: write + arguments: + address_delta: 13 + data_delta: 0 + energy: 10.77062 + - name: write + arguments: + address_delta: 13 + data_delta: 1 + energy: 58.85878 + - name: write + arguments: + address_delta: 14 + data_delta: 0 + energy: 11.59499 + - name: write + arguments: + address_delta: 14 + data_delta: 1 + energy: 59.68315 + - name: write + arguments: + address_delta: 15 + data_delta: 0 + energy: 12.41936 + - name: write + arguments: + address_delta: 15 + data_delta: 1 + energy: 60.50752 + - name: write + arguments: + address_delta: 16 + data_delta: 0 + energy: 13.24373 + - name: write + arguments: + address_delta: 16 + data_delta: 1 + energy: 61.33188 + - name: write + arguments: + address_delta: 17 + data_delta: 0 + energy: 14.06809 + - name: write + arguments: + address_delta: 17 + data_delta: 1 + energy: 62.15625 + - name: write + arguments: + address_delta: 18 + data_delta: 0 + energy: 14.89246 + - name: write + arguments: + address_delta: 18 + data_delta: 1 + energy: 62.98062 + - name: write + arguments: + address_delta: 19 + data_delta: 0 + energy: 15.71683 + - name: write + arguments: + address_delta: 19 + data_delta: 1 + energy: 63.80499 + - name: write + arguments: + address_delta: 20 + data_delta: 0 + energy: 16.5412 + - name: write + arguments: + address_delta: 20 + data_delta: 1 + energy: 64.62936 + - name: write + arguments: + address_delta: 21 + data_delta: 0 + energy: 17.36557 + - name: write + arguments: + address_delta: 21 + data_delta: 1 + energy: 65.45373 + - name: write + arguments: + address_delta: 22 + data_delta: 0 + energy: 18.18994 + - name: write + arguments: + address_delta: 22 + data_delta: 1 + energy: 66.27809 + - name: write + arguments: + address_delta: 23 + data_delta: 0 + energy: 19.01431 + - name: write + arguments: + address_delta: 23 + data_delta: 1 + energy: 67.10246 + - name: write + arguments: + address_delta: 24 + data_delta: 0 + energy: 19.83867 + - name: write + arguments: + address_delta: 24 + data_delta: 1 + energy: 67.92683 + - name: write + arguments: + address_delta: 25 + data_delta: 0 + energy: 20.66304 + - name: write + arguments: + address_delta: 25 + data_delta: 1 + energy: 68.7512 + - name: read + arguments: + address_delta: 0 + data_delta: 0 + energy: 0.05383 + - name: read + arguments: + address_delta: 0 + data_delta: 1 + energy: 47.57254 + - name: read + arguments: + address_delta: 1 + data_delta: 0 + energy: 0.86844 + - name: read + arguments: + address_delta: 1 + data_delta: 1 + energy: 48.38715 + - name: read + arguments: + address_delta: 2 + data_delta: 0 + energy: 1.68304 + - name: read + arguments: + address_delta: 2 + data_delta: 1 + energy: 49.20175 + - name: read + arguments: + address_delta: 3 + data_delta: 0 + energy: 2.49765 + - name: read + arguments: + address_delta: 3 + data_delta: 1 + energy: 50.01636 + - name: read + arguments: + address_delta: 4 + data_delta: 0 + energy: 3.31226 + - name: read + arguments: + address_delta: 4 + data_delta: 1 + energy: 50.83097 + - name: read + arguments: + address_delta: 5 + data_delta: 0 + energy: 4.12686 + - name: read + arguments: + address_delta: 5 + data_delta: 1 + energy: 51.64557 + - name: read + arguments: + address_delta: 6 + data_delta: 0 + energy: 4.94147 + - name: read + arguments: + address_delta: 6 + data_delta: 1 + energy: 52.46018 + - name: read + arguments: + address_delta: 7 + data_delta: 0 + energy: 5.75608 + - name: read + arguments: + address_delta: 7 + data_delta: 1 + energy: 53.27478 + - name: read + arguments: + address_delta: 8 + data_delta: 0 + energy: 6.57068 + - name: read + arguments: + address_delta: 8 + data_delta: 1 + energy: 54.08939 + - name: read + arguments: + address_delta: 9 + data_delta: 0 + energy: 7.38529 + - name: read + arguments: + address_delta: 9 + data_delta: 1 + energy: 54.904 + - name: read + arguments: + address_delta: 10 + data_delta: 0 + energy: 8.1999 + - name: read + arguments: + address_delta: 10 + data_delta: 1 + energy: 55.7186 + - name: read + arguments: + address_delta: 11 + data_delta: 0 + energy: 9.0145 + - name: read + arguments: + address_delta: 11 + data_delta: 1 + energy: 56.53321 + - name: read + arguments: + address_delta: 12 + data_delta: 0 + energy: 9.82911 + - name: read + arguments: + address_delta: 12 + data_delta: 1 + energy: 57.34782 + - name: read + arguments: + address_delta: 13 + data_delta: 0 + energy: 10.64371 + - name: read + arguments: + address_delta: 13 + data_delta: 1 + energy: 58.16242 + - name: read + arguments: + address_delta: 14 + data_delta: 0 + energy: 11.45832 + - name: read + arguments: + address_delta: 14 + data_delta: 1 + energy: 58.97703 + - name: read + arguments: + address_delta: 15 + data_delta: 0 + energy: 12.27293 + - name: read + arguments: + address_delta: 15 + data_delta: 1 + energy: 59.79164 + - name: read + arguments: + address_delta: 16 + data_delta: 0 + energy: 13.08753 + - name: read + arguments: + address_delta: 16 + data_delta: 1 + energy: 60.60624 + - name: read + arguments: + address_delta: 17 + data_delta: 0 + energy: 13.90214 + - name: read + arguments: + address_delta: 17 + data_delta: 1 + energy: 61.42085 + - name: read + arguments: + address_delta: 18 + data_delta: 0 + energy: 14.71675 + - name: read + arguments: + address_delta: 18 + data_delta: 1 + energy: 62.23546 + - name: read + arguments: + address_delta: 19 + data_delta: 0 + energy: 15.53135 + - name: read + arguments: + address_delta: 19 + data_delta: 1 + energy: 63.05006 + - name: read + arguments: + address_delta: 20 + data_delta: 0 + energy: 16.34596 + - name: read + arguments: + address_delta: 20 + data_delta: 1 + energy: 63.86467 + - name: read + arguments: + address_delta: 21 + data_delta: 0 + energy: 17.16057 + - name: read + arguments: + address_delta: 21 + data_delta: 1 + energy: 64.67927 + - name: read + arguments: + address_delta: 22 + data_delta: 0 + energy: 17.97517 + - name: read + arguments: + address_delta: 22 + data_delta: 1 + energy: 65.49388 + - name: read + arguments: + address_delta: 23 + data_delta: 0 + energy: 18.78978 + - name: read + arguments: + address_delta: 23 + data_delta: 1 + energy: 66.30849 + - name: read + arguments: + address_delta: 24 + data_delta: 0 + energy: 19.60439 + - name: read + arguments: + address_delta: 24 + data_delta: 1 + energy: 67.12309 + - name: read + arguments: + address_delta: 25 + data_delta: 0 + energy: 20.41899 + - name: read + arguments: + address_delta: 25 + data_delta: 1 + energy: 67.9377 + - name: idle + arguments: null + energy: 0.01693 + - name: eyeriss_like.ifmap_NoC + actions: + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 1 + energy: 0.00727 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 2 + energy: 0.01453 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 3 + energy: 0.02179 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 4 + energy: 0.02905 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 5 + energy: 0.03631 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 6 + energy: 0.04357 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 7 + energy: 0.05083 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 8 + energy: 0.05809 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 9 + energy: 0.06535 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 10 + energy: 0.07261 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 11 + energy: 0.07987 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 12 + energy: 0.08713 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 1 + energy: 0.0109 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 2 + energy: 0.02179 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 3 + energy: 0.03268 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 4 + energy: 0.04357 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 5 + energy: 0.05446 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 6 + energy: 0.06535 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 7 + energy: 0.07624 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 8 + energy: 0.08713 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 9 + energy: 0.09802 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 10 + energy: 0.10891 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 11 + energy: 0.1198 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 12 + energy: 0.13069 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 1 + energy: 0.01453 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 2 + energy: 0.02905 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 3 + energy: 0.04357 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 4 + energy: 0.05809 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 5 + energy: 0.07261 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 6 + energy: 0.08713 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 7 + energy: 0.10165 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 8 + energy: 0.11617 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 9 + energy: 0.13069 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 10 + energy: 0.14521 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 11 + energy: 0.15973 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 12 + energy: 0.17425 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 1 + energy: 0.01816 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 2 + energy: 0.03631 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 3 + energy: 0.05446 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 4 + energy: 0.07261 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 5 + energy: 0.09076 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 6 + energy: 0.10891 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 7 + energy: 0.12706 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 8 + energy: 0.14521 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 9 + energy: 0.16336 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 10 + energy: 0.18151 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 11 + energy: 0.19966 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 12 + energy: 0.21781 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 1 + energy: 0.02179 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 2 + energy: 0.04357 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 3 + energy: 0.06535 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 4 + energy: 0.08713 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 5 + energy: 0.10891 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 6 + energy: 0.13069 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 7 + energy: 0.15247 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 8 + energy: 0.17425 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 9 + energy: 0.19603 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 10 + energy: 0.21781 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 11 + energy: 0.23959 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 12 + energy: 0.26137 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 1 + energy: 0.02542 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 2 + energy: 0.05083 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 3 + energy: 0.07624 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 4 + energy: 0.10165 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 5 + energy: 0.12706 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 6 + energy: 0.15247 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 7 + energy: 0.17788 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 8 + energy: 0.20329 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 9 + energy: 0.2287 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 10 + energy: 0.25411 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 11 + energy: 0.27952 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 12 + energy: 0.30493 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 1 + energy: 0.02905 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 2 + energy: 0.05809 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 3 + energy: 0.08713 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 4 + energy: 0.11617 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 5 + energy: 0.14521 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 6 + energy: 0.17425 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 7 + energy: 0.20329 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 8 + energy: 0.23233 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 9 + energy: 0.26137 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 10 + energy: 0.29041 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 11 + energy: 0.31945 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 12 + energy: 0.34849 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 1 + energy: 0.03268 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 2 + energy: 0.06535 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 3 + energy: 0.09802 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 4 + energy: 0.13069 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 5 + energy: 0.16336 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 6 + energy: 0.19603 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 7 + energy: 0.2287 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 8 + energy: 0.26137 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 9 + energy: 0.29404 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 10 + energy: 0.32671 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 11 + energy: 0.35938 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 12 + energy: 0.39205 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 1 + energy: 0.03631 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 2 + energy: 0.07261 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 3 + energy: 0.10891 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 4 + energy: 0.14521 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 5 + energy: 0.18151 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 6 + energy: 0.21781 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 7 + energy: 0.25411 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 8 + energy: 0.29041 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 9 + energy: 0.32671 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 10 + energy: 0.36301 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 11 + energy: 0.39931 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 12 + energy: 0.43561 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 1 + energy: 0.03994 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 2 + energy: 0.07987 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 3 + energy: 0.1198 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 4 + energy: 0.15973 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 5 + energy: 0.19966 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 6 + energy: 0.23959 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 7 + energy: 0.27952 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 8 + energy: 0.31945 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 9 + energy: 0.35938 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 10 + energy: 0.39931 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 11 + energy: 0.43924 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 12 + energy: 0.47917 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 1 + energy: 0.04357 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 2 + energy: 0.08713 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 3 + energy: 0.13069 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 4 + energy: 0.17425 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 5 + energy: 0.21781 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 6 + energy: 0.26137 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 7 + energy: 0.30493 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 8 + energy: 0.34849 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 9 + energy: 0.39205 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 10 + energy: 0.43561 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 11 + energy: 0.47917 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 12 + energy: 0.52273 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 1 + energy: 0.0472 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 2 + energy: 0.09439 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 3 + energy: 0.14158 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 4 + energy: 0.18877 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 5 + energy: 0.23596 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 6 + energy: 0.28315 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 7 + energy: 0.33034 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 8 + energy: 0.37753 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 9 + energy: 0.42472 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 10 + energy: 0.47191 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 11 + energy: 0.5191 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 12 + energy: 0.56629 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 1 + energy: 0.05083 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 2 + energy: 0.10165 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 3 + energy: 0.15247 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 4 + energy: 0.20329 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 5 + energy: 0.25411 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 6 + energy: 0.30493 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 7 + energy: 0.35575 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 8 + energy: 0.40657 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 9 + energy: 0.45739 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 10 + energy: 0.50821 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 11 + energy: 0.55903 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 12 + energy: 0.60985 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 1 + energy: 0.05446 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 2 + energy: 0.10891 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 3 + energy: 0.16336 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 4 + energy: 0.21781 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 5 + energy: 0.27226 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 6 + energy: 0.32671 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 7 + energy: 0.38116 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 8 + energy: 0.43561 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 9 + energy: 0.49006 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 10 + energy: 0.54451 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 11 + energy: 0.59896 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 12 + energy: 0.65341 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 1 + energy: 0.00726 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 2 + energy: 0.01452 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 3 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 4 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 5 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 6 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 7 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 8 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 9 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 10 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 11 + energy: 0.07986 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 12 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 1 + energy: 0.01089 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 2 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 3 + energy: 0.03267 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 4 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 5 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 6 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 7 + energy: 0.07623 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 8 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 9 + energy: 0.09801 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 10 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 11 + energy: 0.11979 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 12 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 1 + energy: 0.01452 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 2 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 3 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 4 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 5 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 6 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 7 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 8 + energy: 0.11616 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 9 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 10 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 11 + energy: 0.15972 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 12 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 1 + energy: 0.01815 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 2 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 3 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 4 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 5 + energy: 0.09075 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 6 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 7 + energy: 0.12705 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 8 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 9 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 10 + energy: 0.1815 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 11 + energy: 0.19965 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 12 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 1 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 2 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 3 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 4 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 5 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 6 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 7 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 8 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 9 + energy: 0.19602 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 10 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 11 + energy: 0.23958 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 12 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 1 + energy: 0.02541 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 2 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 3 + energy: 0.07623 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 4 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 5 + energy: 0.12705 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 6 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 7 + energy: 0.17787 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 8 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 9 + energy: 0.22869 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 10 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 11 + energy: 0.27951 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 12 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 1 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 2 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 3 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 4 + energy: 0.11616 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 5 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 6 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 7 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 8 + energy: 0.23232 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 9 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 10 + energy: 0.2904 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 11 + energy: 0.31944 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 12 + energy: 0.34848 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 1 + energy: 0.03267 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 2 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 3 + energy: 0.09801 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 4 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 5 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 6 + energy: 0.19602 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 7 + energy: 0.22869 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 8 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 9 + energy: 0.29403 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 10 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 11 + energy: 0.35937 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 12 + energy: 0.39204 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 1 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 2 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 3 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 4 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 5 + energy: 0.1815 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 6 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 7 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 8 + energy: 0.2904 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 9 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 10 + energy: 0.363 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 11 + energy: 0.3993 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 12 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 1 + energy: 0.03993 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 2 + energy: 0.07986 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 3 + energy: 0.11979 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 4 + energy: 0.15972 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 5 + energy: 0.19965 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 6 + energy: 0.23958 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 7 + energy: 0.27951 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 8 + energy: 0.31944 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 9 + energy: 0.35937 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 10 + energy: 0.3993 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 11 + energy: 0.43923 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 12 + energy: 0.47916 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 1 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 2 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 3 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 4 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 5 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 6 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 7 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 8 + energy: 0.34848 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 9 + energy: 0.39204 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 10 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 11 + energy: 0.47916 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 12 + energy: 0.52272 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 1 + energy: 0.04719 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 2 + energy: 0.09438 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 3 + energy: 0.14157 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 4 + energy: 0.18876 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 5 + energy: 0.23595 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 6 + energy: 0.28314 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 7 + energy: 0.33033 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 8 + energy: 0.37752 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 9 + energy: 0.42471 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 10 + energy: 0.4719 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 11 + energy: 0.51909 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 12 + energy: 0.56628 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 1 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 2 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 3 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 4 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 5 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 6 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 7 + energy: 0.35574 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 8 + energy: 0.40656 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 9 + energy: 0.45738 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 10 + energy: 0.5082 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 11 + energy: 0.55902 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 12 + energy: 0.60984 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 1 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 2 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 3 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 4 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 5 + energy: 0.27225 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 6 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 7 + energy: 0.38115 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 8 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 9 + energy: 0.49005 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 10 + energy: 0.5445 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 11 + energy: 0.59895 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 12 + energy: 0.6534 + - name: idle + arguments: null + energy: 0.0036 + - name: eyeriss_like.weights_NoC + actions: + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 1 + energy: 0.0073 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 2 + energy: 0.01456 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 3 + energy: 0.02182 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 4 + energy: 0.02908 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 5 + energy: 0.03634 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 6 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 7 + energy: 0.05086 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 8 + energy: 0.05812 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 9 + energy: 0.06538 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 10 + energy: 0.07264 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 11 + energy: 0.0799 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 12 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 1 + energy: 0.01093 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 2 + energy: 0.02182 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 3 + energy: 0.03271 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 4 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 5 + energy: 0.05449 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 6 + energy: 0.06538 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 7 + energy: 0.07627 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 8 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 9 + energy: 0.09805 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 10 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 11 + energy: 0.11983 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 12 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 1 + energy: 0.01456 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 2 + energy: 0.02908 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 3 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 4 + energy: 0.05812 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 5 + energy: 0.07264 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 6 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 7 + energy: 0.10168 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 8 + energy: 0.1162 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 9 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 10 + energy: 0.14524 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 11 + energy: 0.15976 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 12 + energy: 0.17428 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 1 + energy: 0.01819 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 2 + energy: 0.03634 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 3 + energy: 0.05449 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 4 + energy: 0.07264 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 5 + energy: 0.09079 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 6 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 7 + energy: 0.12709 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 8 + energy: 0.14524 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 9 + energy: 0.16339 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 10 + energy: 0.18154 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 11 + energy: 0.19969 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 12 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 1 + energy: 0.02182 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 2 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 3 + energy: 0.06538 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 4 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 5 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 6 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 7 + energy: 0.1525 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 8 + energy: 0.17428 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 9 + energy: 0.19606 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 10 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 11 + energy: 0.23962 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 12 + energy: 0.2614 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 1 + energy: 0.02545 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 2 + energy: 0.05086 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 3 + energy: 0.07627 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 4 + energy: 0.10168 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 5 + energy: 0.12709 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 6 + energy: 0.1525 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 7 + energy: 0.17791 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 8 + energy: 0.20332 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 9 + energy: 0.22873 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 10 + energy: 0.25414 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 11 + energy: 0.27955 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 12 + energy: 0.30496 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 1 + energy: 0.02908 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 2 + energy: 0.05812 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 3 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 4 + energy: 0.1162 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 5 + energy: 0.14524 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 6 + energy: 0.17428 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 7 + energy: 0.20332 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 8 + energy: 0.23236 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 9 + energy: 0.2614 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 10 + energy: 0.29044 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 11 + energy: 0.31948 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 12 + energy: 0.34852 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 1 + energy: 0.03271 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 2 + energy: 0.06538 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 3 + energy: 0.09805 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 4 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 5 + energy: 0.16339 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 6 + energy: 0.19606 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 7 + energy: 0.22873 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 8 + energy: 0.2614 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 9 + energy: 0.29407 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 10 + energy: 0.32674 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 11 + energy: 0.35941 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 12 + energy: 0.39208 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 1 + energy: 0.03634 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 2 + energy: 0.07264 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 3 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 4 + energy: 0.14524 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 5 + energy: 0.18154 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 6 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 7 + energy: 0.25414 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 8 + energy: 0.29044 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 9 + energy: 0.32674 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 10 + energy: 0.36304 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 11 + energy: 0.39934 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 12 + energy: 0.43564 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 1 + energy: 0.03997 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 2 + energy: 0.0799 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 3 + energy: 0.11983 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 4 + energy: 0.15976 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 5 + energy: 0.19969 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 6 + energy: 0.23962 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 7 + energy: 0.27955 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 8 + energy: 0.31948 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 9 + energy: 0.35941 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 10 + energy: 0.39934 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 11 + energy: 0.43927 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 12 + energy: 0.4792 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 1 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 2 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 3 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 4 + energy: 0.17428 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 5 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 6 + energy: 0.2614 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 7 + energy: 0.30496 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 8 + energy: 0.34852 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 9 + energy: 0.39208 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 10 + energy: 0.43564 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 11 + energy: 0.4792 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 12 + energy: 0.52276 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 1 + energy: 0.04723 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 2 + energy: 0.09442 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 3 + energy: 0.14161 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 4 + energy: 0.1888 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 5 + energy: 0.23599 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 6 + energy: 0.28318 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 7 + energy: 0.33037 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 8 + energy: 0.37756 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 9 + energy: 0.42475 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 10 + energy: 0.47194 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 11 + energy: 0.51913 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 12 + energy: 0.56632 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 1 + energy: 0.05086 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 2 + energy: 0.10168 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 3 + energy: 0.1525 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 4 + energy: 0.20332 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 5 + energy: 0.25414 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 6 + energy: 0.30496 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 7 + energy: 0.35578 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 8 + energy: 0.4066 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 9 + energy: 0.45742 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 10 + energy: 0.50824 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 11 + energy: 0.55906 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 12 + energy: 0.60988 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 1 + energy: 0.05449 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 2 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 3 + energy: 0.16339 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 4 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 5 + energy: 0.27229 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 6 + energy: 0.32674 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 7 + energy: 0.38119 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 8 + energy: 0.43564 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 9 + energy: 0.49009 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 10 + energy: 0.54454 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 11 + energy: 0.59899 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 12 + energy: 0.65344 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 1 + energy: 0.00726 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 2 + energy: 0.01452 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 3 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 4 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 5 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 6 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 7 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 8 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 9 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 10 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 11 + energy: 0.07986 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 12 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 1 + energy: 0.01089 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 2 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 3 + energy: 0.03267 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 4 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 5 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 6 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 7 + energy: 0.07623 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 8 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 9 + energy: 0.09801 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 10 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 11 + energy: 0.11979 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 12 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 1 + energy: 0.01452 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 2 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 3 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 4 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 5 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 6 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 7 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 8 + energy: 0.11616 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 9 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 10 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 11 + energy: 0.15972 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 12 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 1 + energy: 0.01815 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 2 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 3 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 4 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 5 + energy: 0.09075 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 6 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 7 + energy: 0.12705 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 8 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 9 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 10 + energy: 0.1815 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 11 + energy: 0.19965 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 12 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 1 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 2 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 3 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 4 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 5 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 6 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 7 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 8 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 9 + energy: 0.19602 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 10 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 11 + energy: 0.23958 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 12 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 1 + energy: 0.02541 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 2 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 3 + energy: 0.07623 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 4 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 5 + energy: 0.12705 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 6 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 7 + energy: 0.17787 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 8 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 9 + energy: 0.22869 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 10 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 11 + energy: 0.27951 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 12 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 1 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 2 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 3 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 4 + energy: 0.11616 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 5 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 6 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 7 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 8 + energy: 0.23232 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 9 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 10 + energy: 0.2904 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 11 + energy: 0.31944 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 12 + energy: 0.34848 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 1 + energy: 0.03267 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 2 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 3 + energy: 0.09801 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 4 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 5 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 6 + energy: 0.19602 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 7 + energy: 0.22869 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 8 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 9 + energy: 0.29403 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 10 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 11 + energy: 0.35937 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 12 + energy: 0.39204 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 1 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 2 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 3 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 4 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 5 + energy: 0.1815 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 6 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 7 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 8 + energy: 0.2904 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 9 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 10 + energy: 0.363 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 11 + energy: 0.3993 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 12 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 1 + energy: 0.03993 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 2 + energy: 0.07986 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 3 + energy: 0.11979 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 4 + energy: 0.15972 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 5 + energy: 0.19965 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 6 + energy: 0.23958 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 7 + energy: 0.27951 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 8 + energy: 0.31944 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 9 + energy: 0.35937 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 10 + energy: 0.3993 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 11 + energy: 0.43923 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 12 + energy: 0.47916 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 1 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 2 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 3 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 4 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 5 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 6 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 7 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 8 + energy: 0.34848 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 9 + energy: 0.39204 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 10 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 11 + energy: 0.47916 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 12 + energy: 0.52272 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 1 + energy: 0.04719 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 2 + energy: 0.09438 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 3 + energy: 0.14157 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 4 + energy: 0.18876 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 5 + energy: 0.23595 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 6 + energy: 0.28314 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 7 + energy: 0.33033 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 8 + energy: 0.37752 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 9 + energy: 0.42471 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 10 + energy: 0.4719 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 11 + energy: 0.51909 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 12 + energy: 0.56628 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 1 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 2 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 3 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 4 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 5 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 6 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 7 + energy: 0.35574 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 8 + energy: 0.40656 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 9 + energy: 0.45738 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 10 + energy: 0.5082 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 11 + energy: 0.55902 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 12 + energy: 0.60984 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 1 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 2 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 3 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 4 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 5 + energy: 0.27225 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 6 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 7 + energy: 0.38115 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 8 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 9 + energy: 0.49005 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 10 + energy: 0.5445 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 11 + energy: 0.59895 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 12 + energy: 0.6534 + - name: idle + arguments: null + energy: 0.0036 + - name: eyeriss_like.psum_write_NoC + actions: + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 1 + energy: 0.0073 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 2 + energy: 0.01456 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 3 + energy: 0.02182 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 4 + energy: 0.02908 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 5 + energy: 0.03634 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 6 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 7 + energy: 0.05086 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 8 + energy: 0.05812 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 9 + energy: 0.06538 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 10 + energy: 0.07264 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 11 + energy: 0.0799 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 12 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 1 + energy: 0.01093 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 2 + energy: 0.02182 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 3 + energy: 0.03271 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 4 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 5 + energy: 0.05449 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 6 + energy: 0.06538 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 7 + energy: 0.07627 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 8 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 9 + energy: 0.09805 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 10 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 11 + energy: 0.11983 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 12 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 1 + energy: 0.01456 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 2 + energy: 0.02908 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 3 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 4 + energy: 0.05812 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 5 + energy: 0.07264 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 6 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 7 + energy: 0.10168 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 8 + energy: 0.1162 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 9 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 10 + energy: 0.14524 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 11 + energy: 0.15976 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 12 + energy: 0.17428 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 1 + energy: 0.01819 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 2 + energy: 0.03634 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 3 + energy: 0.05449 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 4 + energy: 0.07264 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 5 + energy: 0.09079 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 6 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 7 + energy: 0.12709 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 8 + energy: 0.14524 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 9 + energy: 0.16339 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 10 + energy: 0.18154 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 11 + energy: 0.19969 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 12 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 1 + energy: 0.02182 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 2 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 3 + energy: 0.06538 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 4 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 5 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 6 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 7 + energy: 0.1525 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 8 + energy: 0.17428 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 9 + energy: 0.19606 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 10 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 11 + energy: 0.23962 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 12 + energy: 0.2614 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 1 + energy: 0.02545 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 2 + energy: 0.05086 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 3 + energy: 0.07627 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 4 + energy: 0.10168 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 5 + energy: 0.12709 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 6 + energy: 0.1525 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 7 + energy: 0.17791 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 8 + energy: 0.20332 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 9 + energy: 0.22873 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 10 + energy: 0.25414 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 11 + energy: 0.27955 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 12 + energy: 0.30496 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 1 + energy: 0.02908 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 2 + energy: 0.05812 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 3 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 4 + energy: 0.1162 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 5 + energy: 0.14524 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 6 + energy: 0.17428 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 7 + energy: 0.20332 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 8 + energy: 0.23236 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 9 + energy: 0.2614 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 10 + energy: 0.29044 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 11 + energy: 0.31948 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 12 + energy: 0.34852 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 1 + energy: 0.03271 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 2 + energy: 0.06538 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 3 + energy: 0.09805 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 4 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 5 + energy: 0.16339 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 6 + energy: 0.19606 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 7 + energy: 0.22873 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 8 + energy: 0.2614 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 9 + energy: 0.29407 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 10 + energy: 0.32674 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 11 + energy: 0.35941 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 12 + energy: 0.39208 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 1 + energy: 0.03634 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 2 + energy: 0.07264 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 3 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 4 + energy: 0.14524 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 5 + energy: 0.18154 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 6 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 7 + energy: 0.25414 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 8 + energy: 0.29044 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 9 + energy: 0.32674 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 10 + energy: 0.36304 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 11 + energy: 0.39934 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 12 + energy: 0.43564 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 1 + energy: 0.03997 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 2 + energy: 0.0799 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 3 + energy: 0.11983 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 4 + energy: 0.15976 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 5 + energy: 0.19969 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 6 + energy: 0.23962 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 7 + energy: 0.27955 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 8 + energy: 0.31948 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 9 + energy: 0.35941 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 10 + energy: 0.39934 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 11 + energy: 0.43927 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 12 + energy: 0.4792 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 1 + energy: 0.0436 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 2 + energy: 0.08716 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 3 + energy: 0.13072 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 4 + energy: 0.17428 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 5 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 6 + energy: 0.2614 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 7 + energy: 0.30496 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 8 + energy: 0.34852 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 9 + energy: 0.39208 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 10 + energy: 0.43564 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 11 + energy: 0.4792 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 12 + energy: 0.52276 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 1 + energy: 0.04723 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 2 + energy: 0.09442 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 3 + energy: 0.14161 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 4 + energy: 0.1888 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 5 + energy: 0.23599 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 6 + energy: 0.28318 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 7 + energy: 0.33037 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 8 + energy: 0.37756 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 9 + energy: 0.42475 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 10 + energy: 0.47194 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 11 + energy: 0.51913 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 12 + energy: 0.56632 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 1 + energy: 0.05086 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 2 + energy: 0.10168 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 3 + energy: 0.1525 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 4 + energy: 0.20332 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 5 + energy: 0.25414 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 6 + energy: 0.30496 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 7 + energy: 0.35578 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 8 + energy: 0.4066 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 9 + energy: 0.45742 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 10 + energy: 0.50824 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 11 + energy: 0.55906 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 12 + energy: 0.60988 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 1 + energy: 0.05449 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 2 + energy: 0.10894 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 3 + energy: 0.16339 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 4 + energy: 0.21784 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 5 + energy: 0.27229 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 6 + energy: 0.32674 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 7 + energy: 0.38119 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 8 + energy: 0.43564 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 9 + energy: 0.49009 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 10 + energy: 0.54454 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 11 + energy: 0.59899 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 12 + energy: 0.65344 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 1 + energy: 0.00726 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 2 + energy: 0.01452 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 3 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 4 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 5 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 6 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 7 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 8 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 9 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 10 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 11 + energy: 0.07986 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 12 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 1 + energy: 0.01089 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 2 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 3 + energy: 0.03267 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 4 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 5 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 6 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 7 + energy: 0.07623 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 8 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 9 + energy: 0.09801 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 10 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 11 + energy: 0.11979 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 12 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 1 + energy: 0.01452 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 2 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 3 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 4 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 5 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 6 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 7 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 8 + energy: 0.11616 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 9 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 10 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 11 + energy: 0.15972 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 12 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 1 + energy: 0.01815 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 2 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 3 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 4 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 5 + energy: 0.09075 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 6 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 7 + energy: 0.12705 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 8 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 9 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 10 + energy: 0.1815 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 11 + energy: 0.19965 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 12 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 1 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 2 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 3 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 4 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 5 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 6 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 7 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 8 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 9 + energy: 0.19602 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 10 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 11 + energy: 0.23958 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 12 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 1 + energy: 0.02541 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 2 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 3 + energy: 0.07623 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 4 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 5 + energy: 0.12705 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 6 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 7 + energy: 0.17787 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 8 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 9 + energy: 0.22869 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 10 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 11 + energy: 0.27951 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 12 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 1 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 2 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 3 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 4 + energy: 0.11616 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 5 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 6 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 7 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 8 + energy: 0.23232 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 9 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 10 + energy: 0.2904 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 11 + energy: 0.31944 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 12 + energy: 0.34848 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 1 + energy: 0.03267 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 2 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 3 + energy: 0.09801 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 4 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 5 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 6 + energy: 0.19602 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 7 + energy: 0.22869 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 8 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 9 + energy: 0.29403 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 10 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 11 + energy: 0.35937 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 12 + energy: 0.39204 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 1 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 2 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 3 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 4 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 5 + energy: 0.1815 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 6 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 7 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 8 + energy: 0.2904 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 9 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 10 + energy: 0.363 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 11 + energy: 0.3993 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 12 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 1 + energy: 0.03993 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 2 + energy: 0.07986 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 3 + energy: 0.11979 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 4 + energy: 0.15972 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 5 + energy: 0.19965 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 6 + energy: 0.23958 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 7 + energy: 0.27951 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 8 + energy: 0.31944 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 9 + energy: 0.35937 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 10 + energy: 0.3993 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 11 + energy: 0.43923 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 12 + energy: 0.47916 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 1 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 2 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 3 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 4 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 5 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 6 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 7 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 8 + energy: 0.34848 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 9 + energy: 0.39204 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 10 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 11 + energy: 0.47916 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 12 + energy: 0.52272 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 1 + energy: 0.04719 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 2 + energy: 0.09438 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 3 + energy: 0.14157 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 4 + energy: 0.18876 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 5 + energy: 0.23595 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 6 + energy: 0.28314 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 7 + energy: 0.33033 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 8 + energy: 0.37752 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 9 + energy: 0.42471 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 10 + energy: 0.4719 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 11 + energy: 0.51909 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 12 + energy: 0.56628 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 1 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 2 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 3 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 4 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 5 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 6 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 7 + energy: 0.35574 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 8 + energy: 0.40656 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 9 + energy: 0.45738 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 10 + energy: 0.5082 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 11 + energy: 0.55902 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 12 + energy: 0.60984 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 1 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 2 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 3 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 4 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 5 + energy: 0.27225 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 6 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 7 + energy: 0.38115 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 8 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 9 + energy: 0.49005 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 10 + energy: 0.5445 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 11 + energy: 0.59895 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 12 + energy: 0.6534 + - name: idle + arguments: null + energy: 0.0036 + - name: eyeriss_like.psum_read_NoC + actions: + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 1 + energy: 0.00735 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 2 + energy: 0.01461 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 3 + energy: 0.02187 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 4 + energy: 0.02913 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 5 + energy: 0.03639 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 6 + energy: 0.04365 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 7 + energy: 0.05091 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 8 + energy: 0.05817 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 9 + energy: 0.06543 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 10 + energy: 0.07269 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 11 + energy: 0.07995 + - name: transfer_random + arguments: + n_cols_per_row: 1 + n_rows: 12 + energy: 0.08721 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 1 + energy: 0.01098 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 2 + energy: 0.02187 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 3 + energy: 0.03276 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 4 + energy: 0.04365 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 5 + energy: 0.05454 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 6 + energy: 0.06543 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 7 + energy: 0.07632 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 8 + energy: 0.08721 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 9 + energy: 0.0981 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 10 + energy: 0.10899 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 11 + energy: 0.11988 + - name: transfer_random + arguments: + n_cols_per_row: 2 + n_rows: 12 + energy: 0.13077 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 1 + energy: 0.01461 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 2 + energy: 0.02913 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 3 + energy: 0.04365 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 4 + energy: 0.05817 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 5 + energy: 0.07269 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 6 + energy: 0.08721 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 7 + energy: 0.10173 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 8 + energy: 0.11625 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 9 + energy: 0.13077 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 10 + energy: 0.14529 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 11 + energy: 0.15981 + - name: transfer_random + arguments: + n_cols_per_row: 3 + n_rows: 12 + energy: 0.17433 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 1 + energy: 0.01824 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 2 + energy: 0.03639 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 3 + energy: 0.05454 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 4 + energy: 0.07269 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 5 + energy: 0.09084 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 6 + energy: 0.10899 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 7 + energy: 0.12714 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 8 + energy: 0.14529 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 9 + energy: 0.16344 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 10 + energy: 0.18159 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 11 + energy: 0.19974 + - name: transfer_random + arguments: + n_cols_per_row: 4 + n_rows: 12 + energy: 0.21789 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 1 + energy: 0.02187 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 2 + energy: 0.04365 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 3 + energy: 0.06543 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 4 + energy: 0.08721 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 5 + energy: 0.10899 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 6 + energy: 0.13077 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 7 + energy: 0.15255 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 8 + energy: 0.17433 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 9 + energy: 0.19611 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 10 + energy: 0.21789 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 11 + energy: 0.23967 + - name: transfer_random + arguments: + n_cols_per_row: 5 + n_rows: 12 + energy: 0.26145 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 1 + energy: 0.0255 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 2 + energy: 0.05091 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 3 + energy: 0.07632 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 4 + energy: 0.10173 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 5 + energy: 0.12714 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 6 + energy: 0.15255 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 7 + energy: 0.17796 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 8 + energy: 0.20337 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 9 + energy: 0.22878 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 10 + energy: 0.25419 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 11 + energy: 0.2796 + - name: transfer_random + arguments: + n_cols_per_row: 6 + n_rows: 12 + energy: 0.30501 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 1 + energy: 0.02913 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 2 + energy: 0.05817 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 3 + energy: 0.08721 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 4 + energy: 0.11625 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 5 + energy: 0.14529 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 6 + energy: 0.17433 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 7 + energy: 0.20337 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 8 + energy: 0.23241 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 9 + energy: 0.26145 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 10 + energy: 0.29049 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 11 + energy: 0.31953 + - name: transfer_random + arguments: + n_cols_per_row: 7 + n_rows: 12 + energy: 0.34857 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 1 + energy: 0.03276 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 2 + energy: 0.06543 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 3 + energy: 0.0981 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 4 + energy: 0.13077 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 5 + energy: 0.16344 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 6 + energy: 0.19611 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 7 + energy: 0.22878 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 8 + energy: 0.26145 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 9 + energy: 0.29412 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 10 + energy: 0.32679 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 11 + energy: 0.35946 + - name: transfer_random + arguments: + n_cols_per_row: 8 + n_rows: 12 + energy: 0.39213 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 1 + energy: 0.03639 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 2 + energy: 0.07269 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 3 + energy: 0.10899 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 4 + energy: 0.14529 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 5 + energy: 0.18159 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 6 + energy: 0.21789 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 7 + energy: 0.25419 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 8 + energy: 0.29049 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 9 + energy: 0.32679 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 10 + energy: 0.36309 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 11 + energy: 0.39939 + - name: transfer_random + arguments: + n_cols_per_row: 9 + n_rows: 12 + energy: 0.43569 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 1 + energy: 0.04002 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 2 + energy: 0.07995 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 3 + energy: 0.11988 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 4 + energy: 0.15981 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 5 + energy: 0.19974 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 6 + energy: 0.23967 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 7 + energy: 0.2796 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 8 + energy: 0.31953 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 9 + energy: 0.35946 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 10 + energy: 0.39939 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 11 + energy: 0.43932 + - name: transfer_random + arguments: + n_cols_per_row: 10 + n_rows: 12 + energy: 0.47925 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 1 + energy: 0.04365 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 2 + energy: 0.08721 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 3 + energy: 0.13077 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 4 + energy: 0.17433 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 5 + energy: 0.21789 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 6 + energy: 0.26145 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 7 + energy: 0.30501 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 8 + energy: 0.34857 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 9 + energy: 0.39213 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 10 + energy: 0.43569 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 11 + energy: 0.47925 + - name: transfer_random + arguments: + n_cols_per_row: 11 + n_rows: 12 + energy: 0.52281 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 1 + energy: 0.04728 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 2 + energy: 0.09447 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 3 + energy: 0.14166 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 4 + energy: 0.18885 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 5 + energy: 0.23604 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 6 + energy: 0.28323 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 7 + energy: 0.33042 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 8 + energy: 0.37761 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 9 + energy: 0.4248 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 10 + energy: 0.47199 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 11 + energy: 0.51918 + - name: transfer_random + arguments: + n_cols_per_row: 12 + n_rows: 12 + energy: 0.56637 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 1 + energy: 0.05091 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 2 + energy: 0.10173 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 3 + energy: 0.15255 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 4 + energy: 0.20337 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 5 + energy: 0.25419 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 6 + energy: 0.30501 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 7 + energy: 0.35583 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 8 + energy: 0.40665 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 9 + energy: 0.45747 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 10 + energy: 0.50829 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 11 + energy: 0.55911 + - name: transfer_random + arguments: + n_cols_per_row: 13 + n_rows: 12 + energy: 0.60993 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 1 + energy: 0.05454 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 2 + energy: 0.10899 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 3 + energy: 0.16344 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 4 + energy: 0.21789 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 5 + energy: 0.27234 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 6 + energy: 0.32679 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 7 + energy: 0.38124 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 8 + energy: 0.43569 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 9 + energy: 0.49014 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 10 + energy: 0.54459 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 11 + energy: 0.59904 + - name: transfer_random + arguments: + n_cols_per_row: 14 + n_rows: 12 + energy: 0.65349 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 1 + energy: 0.00726 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 2 + energy: 0.01452 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 3 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 4 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 5 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 6 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 7 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 8 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 9 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 10 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 11 + energy: 0.07986 + - name: transfer_repeated + arguments: + n_cols_per_row: 1 + n_rows: 12 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 1 + energy: 0.01089 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 2 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 3 + energy: 0.03267 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 4 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 5 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 6 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 7 + energy: 0.07623 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 8 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 9 + energy: 0.09801 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 10 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 11 + energy: 0.11979 + - name: transfer_repeated + arguments: + n_cols_per_row: 2 + n_rows: 12 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 1 + energy: 0.01452 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 2 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 3 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 4 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 5 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 6 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 7 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 8 + energy: 0.11616 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 9 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 10 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 11 + energy: 0.15972 + - name: transfer_repeated + arguments: + n_cols_per_row: 3 + n_rows: 12 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 1 + energy: 0.01815 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 2 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 3 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 4 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 5 + energy: 0.09075 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 6 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 7 + energy: 0.12705 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 8 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 9 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 10 + energy: 0.1815 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 11 + energy: 0.19965 + - name: transfer_repeated + arguments: + n_cols_per_row: 4 + n_rows: 12 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 1 + energy: 0.02178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 2 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 3 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 4 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 5 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 6 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 7 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 8 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 9 + energy: 0.19602 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 10 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 11 + energy: 0.23958 + - name: transfer_repeated + arguments: + n_cols_per_row: 5 + n_rows: 12 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 1 + energy: 0.02541 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 2 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 3 + energy: 0.07623 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 4 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 5 + energy: 0.12705 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 6 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 7 + energy: 0.17787 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 8 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 9 + energy: 0.22869 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 10 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 11 + energy: 0.27951 + - name: transfer_repeated + arguments: + n_cols_per_row: 6 + n_rows: 12 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 1 + energy: 0.02904 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 2 + energy: 0.05808 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 3 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 4 + energy: 0.11616 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 5 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 6 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 7 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 8 + energy: 0.23232 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 9 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 10 + energy: 0.2904 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 11 + energy: 0.31944 + - name: transfer_repeated + arguments: + n_cols_per_row: 7 + n_rows: 12 + energy: 0.34848 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 1 + energy: 0.03267 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 2 + energy: 0.06534 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 3 + energy: 0.09801 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 4 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 5 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 6 + energy: 0.19602 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 7 + energy: 0.22869 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 8 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 9 + energy: 0.29403 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 10 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 11 + energy: 0.35937 + - name: transfer_repeated + arguments: + n_cols_per_row: 8 + n_rows: 12 + energy: 0.39204 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 1 + energy: 0.0363 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 2 + energy: 0.0726 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 3 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 4 + energy: 0.1452 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 5 + energy: 0.1815 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 6 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 7 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 8 + energy: 0.2904 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 9 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 10 + energy: 0.363 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 11 + energy: 0.3993 + - name: transfer_repeated + arguments: + n_cols_per_row: 9 + n_rows: 12 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 1 + energy: 0.03993 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 2 + energy: 0.07986 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 3 + energy: 0.11979 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 4 + energy: 0.15972 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 5 + energy: 0.19965 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 6 + energy: 0.23958 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 7 + energy: 0.27951 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 8 + energy: 0.31944 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 9 + energy: 0.35937 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 10 + energy: 0.3993 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 11 + energy: 0.43923 + - name: transfer_repeated + arguments: + n_cols_per_row: 10 + n_rows: 12 + energy: 0.47916 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 1 + energy: 0.04356 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 2 + energy: 0.08712 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 3 + energy: 0.13068 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 4 + energy: 0.17424 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 5 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 6 + energy: 0.26136 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 7 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 8 + energy: 0.34848 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 9 + energy: 0.39204 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 10 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 11 + energy: 0.47916 + - name: transfer_repeated + arguments: + n_cols_per_row: 11 + n_rows: 12 + energy: 0.52272 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 1 + energy: 0.04719 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 2 + energy: 0.09438 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 3 + energy: 0.14157 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 4 + energy: 0.18876 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 5 + energy: 0.23595 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 6 + energy: 0.28314 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 7 + energy: 0.33033 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 8 + energy: 0.37752 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 9 + energy: 0.42471 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 10 + energy: 0.4719 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 11 + energy: 0.51909 + - name: transfer_repeated + arguments: + n_cols_per_row: 12 + n_rows: 12 + energy: 0.56628 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 1 + energy: 0.05082 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 2 + energy: 0.10164 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 3 + energy: 0.15246 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 4 + energy: 0.20328 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 5 + energy: 0.2541 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 6 + energy: 0.30492 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 7 + energy: 0.35574 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 8 + energy: 0.40656 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 9 + energy: 0.45738 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 10 + energy: 0.5082 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 11 + energy: 0.55902 + - name: transfer_repeated + arguments: + n_cols_per_row: 13 + n_rows: 12 + energy: 0.60984 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 1 + energy: 0.05445 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 2 + energy: 0.1089 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 3 + energy: 0.16335 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 4 + energy: 0.2178 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 5 + energy: 0.27225 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 6 + energy: 0.3267 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 7 + energy: 0.38115 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 8 + energy: 0.4356 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 9 + energy: 0.49005 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 10 + energy: 0.5445 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 11 + energy: 0.59895 + - name: transfer_repeated + arguments: + n_cols_per_row: 14 + n_rows: 12 + energy: 0.6534 + - name: idle + arguments: null + energy: 0.0036 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ERT_summary.yaml new file mode 100644 index 00000000..512cd500 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/ERT_summary.yaml @@ -0,0 +1,293 @@ +ERT_summary: + version: 0.3 + table_summary: + - name: eyeriss_like.PE[0..167].mac + actions: + - name: mac_random + energy: 2.20035 + - name: mac_reused + energy: 1.87673 + - name: mac_gated + energy: 0.10285 + - name: idle + energy: 0.06595 + primitive_estimation(s): + - name: eyeriss_like.PE[0..167].mac + estimator: Aladdin_table + - name: eyeriss_like.PE[0..167].ifmap_spad + actions: + - name: write + average_energy: 0.14561 + max_energy: 0.23632 + min_energy: 0.0549 + - name: read + average_energy: 0.14561 + max_energy: 0.23632 + min_energy: 0.0549 + - name: idle + energy: 0.018 + primitive_estimation(s): + - name: storage + estimator: Aladdin_table + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.PE[0..167].weights_spad + actions: + - name: write + average_energy: 0.82303 + max_energy: 1.58552 + min_energy: 0.06053 + - name: read + average_energy: 0.82303 + max_energy: 1.58552 + min_energy: 0.06053 + - name: idle + energy: 0.02363 + primitive_estimation(s): + - name: storage + estimator: Aladdin_table + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.PE[0..167].psum_spad + actions: + - name: write + average_energy: 0.1529 + max_energy: 0.25083 + min_energy: 0.05496 + - name: read + average_energy: 0.1529 + max_energy: 0.25083 + min_energy: 0.05496 + - name: idle + energy: 0.01806 + primitive_estimation(s): + - name: storage + estimator: Aladdin_table + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.weights_glb + actions: + - name: write + average_energy: 5.69428 + max_energy: 11.3395 + min_energy: 0.04906 + - name: read + average_energy: 5.15898 + max_energy: 10.2689 + min_energy: 0.04906 + - name: idle + energy: 0.01216 + primitive_estimation(s): + - name: storage + estimator: Cacti + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.shared_glb + actions: + - name: write + average_energy: 34.40252 + max_energy: 68.7512 + min_energy: 0.05383 + - name: read + average_energy: 33.99577 + max_energy: 67.9377 + min_energy: 0.05383 + - name: idle + energy: 0.01693 + primitive_estimation(s): + - name: storage + estimator: Cacti + - name: address_generators[0] + estimator: Aladdin_table + - name: address_generators[1] + estimator: Aladdin_table + - name: address_generators[0..1] + estimator: Aladdin_table + - name: eyeriss_like.ifmap_NoC + actions: + - name: transfer_random + average_energy: 0.20057 + max_energy: 0.65341 + min_energy: 0.00727 + - name: transfer_repeated + average_energy: 0.20056 + max_energy: 0.6534 + min_energy: 0.00726 + - name: idle + energy: 0.0036 + primitive_estimation(s): + - name: Y_memory_controller[0..0] + estimator: Aladdin_table + - name: X_memory_controller[0] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: Y_memory_controller[0..1] + estimator: Aladdin_table + - name: Y_memory_controller[0..2] + estimator: Aladdin_table + - name: Y_memory_controller[0..3] + estimator: Aladdin_table + - name: Y_memory_controller[0..4] + estimator: Aladdin_table + - name: Y_memory_controller[0..5] + estimator: Aladdin_table + - name: Y_memory_controller[0..6] + estimator: Aladdin_table + - name: Y_memory_controller[0..7] + estimator: Aladdin_table + - name: Y_memory_controller[0..8] + estimator: Aladdin_table + - name: Y_memory_controller[0..9] + estimator: Aladdin_table + - name: Y_memory_controller[0..10] + estimator: Aladdin_table + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: eyeriss_like.weights_NoC + actions: + - name: transfer_random + average_energy: 0.2006 + max_energy: 0.65344 + min_energy: 0.0073 + - name: transfer_repeated + average_energy: 0.20056 + max_energy: 0.6534 + min_energy: 0.00726 + - name: idle + energy: 0.0036 + primitive_estimation(s): + - name: Y_memory_controller[0..0] + estimator: Aladdin_table + - name: X_memory_controller[0] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: Y_memory_controller[0..1] + estimator: Aladdin_table + - name: Y_memory_controller[0..2] + estimator: Aladdin_table + - name: Y_memory_controller[0..3] + estimator: Aladdin_table + - name: Y_memory_controller[0..4] + estimator: Aladdin_table + - name: Y_memory_controller[0..5] + estimator: Aladdin_table + - name: Y_memory_controller[0..6] + estimator: Aladdin_table + - name: Y_memory_controller[0..7] + estimator: Aladdin_table + - name: Y_memory_controller[0..8] + estimator: Aladdin_table + - name: Y_memory_controller[0..9] + estimator: Aladdin_table + - name: Y_memory_controller[0..10] + estimator: Aladdin_table + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: eyeriss_like.psum_write_NoC + actions: + - name: transfer_random + average_energy: 0.2006 + max_energy: 0.65344 + min_energy: 0.0073 + - name: transfer_repeated + average_energy: 0.20056 + max_energy: 0.6534 + min_energy: 0.00726 + - name: idle + energy: 0.0036 + primitive_estimation(s): + - name: Y_memory_controller[0..0] + estimator: Aladdin_table + - name: X_memory_controller[0] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: Y_memory_controller[0..1] + estimator: Aladdin_table + - name: Y_memory_controller[0..2] + estimator: Aladdin_table + - name: Y_memory_controller[0..3] + estimator: Aladdin_table + - name: Y_memory_controller[0..4] + estimator: Aladdin_table + - name: Y_memory_controller[0..5] + estimator: Aladdin_table + - name: Y_memory_controller[0..6] + estimator: Aladdin_table + - name: Y_memory_controller[0..7] + estimator: Aladdin_table + - name: Y_memory_controller[0..8] + estimator: Aladdin_table + - name: Y_memory_controller[0..9] + estimator: Aladdin_table + - name: Y_memory_controller[0..10] + estimator: Aladdin_table + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table + - name: eyeriss_like.psum_read_NoC + actions: + - name: transfer_random + average_energy: 0.20065 + max_energy: 0.65349 + min_energy: 0.00735 + - name: transfer_repeated + average_energy: 0.20056 + max_energy: 0.6534 + min_energy: 0.00726 + - name: idle + energy: 0.0036 + primitive_estimation(s): + - name: Y_memory_controller[0..0] + estimator: Aladdin_table + - name: X_memory_controller[0] + estimator: Aladdin_table + - name: Y_X_wire + estimator: Aladdin_table + - name: Y_memory_controller[0..1] + estimator: Aladdin_table + - name: Y_memory_controller[0..2] + estimator: Aladdin_table + - name: Y_memory_controller[0..3] + estimator: Aladdin_table + - name: Y_memory_controller[0..4] + estimator: Aladdin_table + - name: Y_memory_controller[0..5] + estimator: Aladdin_table + - name: Y_memory_controller[0..6] + estimator: Aladdin_table + - name: Y_memory_controller[0..7] + estimator: Aladdin_table + - name: Y_memory_controller[0..8] + estimator: Aladdin_table + - name: Y_memory_controller[0..9] + estimator: Aladdin_table + - name: Y_memory_controller[0..10] + estimator: Aladdin_table + - name: Y_memory_controller[0..11] + estimator: Aladdin_table + - name: X_memory_controller[0..167] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/energy_estimation.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/energy_estimation.yaml new file mode 100644 index 00000000..b393c82a --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/energy_estimation.yaml @@ -0,0 +1,1264 @@ +energy_estimation: + version: 0.3 + components: + - name: eyeriss_like.weights_glb + energy: 13520.741759999999 + - name: eyeriss_like.shared_glb + energy: 2294329.8613600004 + - name: eyeriss_like.weights_NoC + energy: 171.29952 + - name: eyeriss_like.ifmap_NoC + energy: 388.92859 + - name: eyeriss_like.psum_write_NoC + energy: 196.89440000000002 + - name: eyeriss_like.psum_read_NoC + energy: 197.976 + - name: eyeriss_like.PE[0].weights_spad + energy: 3195.41269 + - name: eyeriss_like.PE[0].ifmap_spad + energy: 1593.29928 + - name: eyeriss_like.PE[0].psum_spad + energy: 6825.66864 + - name: eyeriss_like.PE[0].mac + energy: 2877.5562 + - name: eyeriss_like.PE[1].weights_spad + energy: 13977.6975 + - name: eyeriss_like.PE[1].ifmap_spad + energy: 1630.69362 + - name: eyeriss_like.PE[1].psum_spad + energy: 8983.93128 + - name: eyeriss_like.PE[1].mac + energy: 16110.883899999999 + - name: eyeriss_like.PE[2].weights_spad + energy: 11595.54087 + - name: eyeriss_like.PE[2].ifmap_spad + energy: 1623.21196 + - name: eyeriss_like.PE[2].psum_spad + energy: 8614.765940000001 + - name: eyeriss_like.PE[2].mac + energy: 13211.6082 + - name: eyeriss_like.PE[3].weights_spad + energy: 12661.37607 + - name: eyeriss_like.PE[3].ifmap_spad + energy: 1625.5593199999998 + - name: eyeriss_like.PE[3].psum_spad + energy: 8796.041659999999 + - name: eyeriss_like.PE[3].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[4].weights_spad + energy: 15321.171590000002 + - name: eyeriss_like.PE[4].ifmap_spad + energy: 1631.49676 + - name: eyeriss_like.PE[4].psum_spad + energy: 8925.999399999999 + - name: eyeriss_like.PE[4].mac + energy: 17345.229 + - name: eyeriss_like.PE[5].weights_spad + energy: 15226.625670000001 + - name: eyeriss_like.PE[5].ifmap_spad + energy: 1630.5302000000001 + - name: eyeriss_like.PE[5].psum_spad + energy: 8889.13204 + - name: eyeriss_like.PE[5].mac + energy: 17115.5834 + - name: eyeriss_like.PE[6].weights_spad + energy: 15576.39451 + - name: eyeriss_like.PE[6].ifmap_spad + energy: 1631.7729199999999 + - name: eyeriss_like.PE[6].psum_spad + energy: 8892.30788 + - name: eyeriss_like.PE[6].mac + energy: 17517.4632 + - name: eyeriss_like.PE[7].weights_spad + energy: 14901.563510000002 + - name: eyeriss_like.PE[7].ifmap_spad + energy: 1629.8398000000002 + - name: eyeriss_like.PE[7].psum_spad + energy: 8864.001479999999 + - name: eyeriss_like.PE[7].mac + energy: 16627.5865 + - name: eyeriss_like.PE[8].weights_spad + energy: 15851.09811 + - name: eyeriss_like.PE[8].ifmap_spad + energy: 1631.6348400000002 + - name: eyeriss_like.PE[8].psum_spad + energy: 8921.1666 + - name: eyeriss_like.PE[8].mac + energy: 17804.5202 + - name: eyeriss_like.PE[9].weights_spad + energy: 16375.79863 + - name: eyeriss_like.PE[9].ifmap_spad + energy: 1631.08252 + - name: eyeriss_like.PE[9].psum_spad + energy: 8893.5506 + - name: eyeriss_like.PE[9].mac + energy: 18378.6342 + - name: eyeriss_like.PE[10].weights_spad + energy: 15151.182350000001 + - name: eyeriss_like.PE[10].ifmap_spad + energy: 1629.97788 + - name: eyeriss_like.PE[10].psum_spad + energy: 8867.59156 + - name: eyeriss_like.PE[10].mac + energy: 17000.7606 + - name: eyeriss_like.PE[11].weights_spad + energy: 13351.79055 + - name: eyeriss_like.PE[11].ifmap_spad + energy: 1625.1450800000002 + - name: eyeriss_like.PE[11].psum_spad + energy: 8680.49316 + - name: eyeriss_like.PE[11].mac + energy: 15048.773 + - name: eyeriss_like.PE[12].weights_spad + energy: 12502.02787 + - name: eyeriss_like.PE[12].ifmap_spad + energy: 1624.0404400000002 + - name: eyeriss_like.PE[12].psum_spad + energy: 8696.648519999999 + - name: eyeriss_like.PE[12].mac + energy: 13957.9564 + - name: eyeriss_like.PE[14].weights_spad + energy: 13935.139560000001 + - name: eyeriss_like.PE[14].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[14].psum_spad + energy: 8996.01008 + - name: eyeriss_like.PE[14].mac + energy: 16110.883899999999 + - name: eyeriss_like.PE[15].weights_spad + energy: 11486.09604 + - name: eyeriss_like.PE[15].ifmap_spad + energy: 1623.4128 + - name: eyeriss_like.PE[15].psum_spad + energy: 8623.88448 + - name: eyeriss_like.PE[15].mac + energy: 13211.6082 + - name: eyeriss_like.PE[16].weights_spad + energy: 12460.715400000001 + - name: eyeriss_like.PE[16].ifmap_spad + energy: 1625.7601599999998 + - name: eyeriss_like.PE[16].psum_spad + energy: 8800.76496 + - name: eyeriss_like.PE[16].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[17].weights_spad + energy: 15059.70036 + - name: eyeriss_like.PE[17].ifmap_spad + energy: 1631.6976 + - name: eyeriss_like.PE[17].psum_spad + energy: 8928.07472 + - name: eyeriss_like.PE[17].mac + energy: 17345.229 + - name: eyeriss_like.PE[18].weights_spad + energy: 14934.749160000001 + - name: eyeriss_like.PE[18].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[18].psum_spad + energy: 8892.86432 + - name: eyeriss_like.PE[18].mac + energy: 17115.5834 + - name: eyeriss_like.PE[19].weights_spad + energy: 15284.61252 + - name: eyeriss_like.PE[19].ifmap_spad + energy: 1631.97376 + - name: eyeriss_like.PE[19].psum_spad + energy: 8890.79312 + - name: eyeriss_like.PE[19].mac + energy: 17517.4632 + - name: eyeriss_like.PE[20].weights_spad + energy: 14609.876040000001 + - name: eyeriss_like.PE[20].ifmap_spad + energy: 1630.04064 + - name: eyeriss_like.PE[20].psum_spad + energy: 8862.90096 + - name: eyeriss_like.PE[20].mac + energy: 16627.5865 + - name: eyeriss_like.PE[21].weights_spad + energy: 15559.50516 + - name: eyeriss_like.PE[21].ifmap_spad + energy: 1631.8356800000001 + - name: eyeriss_like.PE[21].psum_spad + energy: 8923.380000000001 + - name: eyeriss_like.PE[21].mac + energy: 17804.5202 + - name: eyeriss_like.PE[22].weights_spad + energy: 16084.3002 + - name: eyeriss_like.PE[22].ifmap_spad + energy: 1631.33736 + - name: eyeriss_like.PE[22].psum_spad + energy: 8896.04016 + - name: eyeriss_like.PE[22].mac + energy: 18378.6342 + - name: eyeriss_like.PE[23].weights_spad + energy: 14859.77844 + - name: eyeriss_like.PE[23].ifmap_spad + energy: 1630.23272 + - name: eyeriss_like.PE[23].psum_spad + energy: 8865.248319999999 + - name: eyeriss_like.PE[23].mac + energy: 17000.7606 + - name: eyeriss_like.PE[24].weights_spad + energy: 13060.481160000001 + - name: eyeriss_like.PE[24].ifmap_spad + energy: 1625.39992 + - name: eyeriss_like.PE[24].psum_spad + energy: 8684.63968 + - name: eyeriss_like.PE[24].mac + energy: 15048.773 + - name: eyeriss_like.PE[25].weights_spad + energy: 12210.813 + - name: eyeriss_like.PE[25].ifmap_spad + energy: 1624.29528 + - name: eyeriss_like.PE[25].psum_spad + energy: 8692.64832 + - name: eyeriss_like.PE[25].mac + energy: 13957.9564 + - name: eyeriss_like.PE[26].weights_spad + energy: 14484.924840000001 + - name: eyeriss_like.PE[26].ifmap_spad + energy: 1631.19928 + - name: eyeriss_like.PE[26].psum_spad + energy: 8851.85456 + - name: eyeriss_like.PE[26].mac + energy: 16857.2321 + - name: eyeriss_like.PE[28].weights_spad + energy: 11485.81988 + - name: eyeriss_like.PE[28].ifmap_spad + energy: 1623.4128 + - name: eyeriss_like.PE[28].psum_spad + energy: 8615.04736 + - name: eyeriss_like.PE[28].mac + energy: 13211.6082 + - name: eyeriss_like.PE[29].weights_spad + energy: 12460.43924 + - name: eyeriss_like.PE[29].ifmap_spad + energy: 1625.7601599999998 + - name: eyeriss_like.PE[29].psum_spad + energy: 8794.82752 + - name: eyeriss_like.PE[29].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[30].weights_spad + energy: 15059.424200000001 + - name: eyeriss_like.PE[30].ifmap_spad + energy: 1631.6976 + - name: eyeriss_like.PE[30].psum_spad + energy: 8920.480319999999 + - name: eyeriss_like.PE[30].mac + energy: 17345.229 + - name: eyeriss_like.PE[31].weights_spad + energy: 14934.473 + - name: eyeriss_like.PE[31].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[31].psum_spad + energy: 8887.75536 + - name: eyeriss_like.PE[31].mac + energy: 17115.5834 + - name: eyeriss_like.PE[32].weights_spad + energy: 15284.336360000001 + - name: eyeriss_like.PE[32].ifmap_spad + energy: 1631.97376 + - name: eyeriss_like.PE[32].psum_spad + energy: 8888.44576 + - name: eyeriss_like.PE[32].mac + energy: 17517.4632 + - name: eyeriss_like.PE[33].weights_spad + energy: 14609.599880000002 + - name: eyeriss_like.PE[33].ifmap_spad + energy: 1630.04064 + - name: eyeriss_like.PE[33].psum_spad + energy: 8858.34432 + - name: eyeriss_like.PE[33].mac + energy: 16627.5865 + - name: eyeriss_like.PE[34].weights_spad + energy: 15559.229000000001 + - name: eyeriss_like.PE[34].ifmap_spad + energy: 1631.8356800000001 + - name: eyeriss_like.PE[34].psum_spad + energy: 8921.03264 + - name: eyeriss_like.PE[34].mac + energy: 17804.5202 + - name: eyeriss_like.PE[35].weights_spad + energy: 16084.02404 + - name: eyeriss_like.PE[35].ifmap_spad + energy: 1631.28336 + - name: eyeriss_like.PE[35].psum_spad + energy: 8891.6216 + - name: eyeriss_like.PE[35].mac + energy: 18378.6342 + - name: eyeriss_like.PE[36].weights_spad + energy: 14859.50228 + - name: eyeriss_like.PE[36].ifmap_spad + energy: 1630.1787199999999 + - name: eyeriss_like.PE[36].psum_spad + energy: 8851.99264 + - name: eyeriss_like.PE[36].mac + energy: 17000.7606 + - name: eyeriss_like.PE[37].weights_spad + energy: 13060.205000000002 + - name: eyeriss_like.PE[37].ifmap_spad + energy: 1625.34592 + - name: eyeriss_like.PE[37].psum_spad + energy: 8679.94496 + - name: eyeriss_like.PE[37].mac + energy: 15048.773 + - name: eyeriss_like.PE[38].weights_spad + energy: 12210.53684 + - name: eyeriss_like.PE[38].ifmap_spad + energy: 1624.24128 + - name: eyeriss_like.PE[38].psum_spad + energy: 8703.28048 + - name: eyeriss_like.PE[38].mac + energy: 13957.9564 + - name: eyeriss_like.PE[39].weights_spad + energy: 14484.64868 + - name: eyeriss_like.PE[39].ifmap_spad + energy: 1631.14528 + - name: eyeriss_like.PE[39].psum_spad + energy: 8847.85024 + - name: eyeriss_like.PE[39].mac + energy: 16857.2321 + - name: eyeriss_like.PE[40].weights_spad + energy: 3189.0602 + - name: eyeriss_like.PE[40].ifmap_spad + energy: 1593.1732799999997 + - name: eyeriss_like.PE[40].psum_spad + energy: 6825.66864 + - name: eyeriss_like.PE[40].mac + energy: 2877.5562 + - name: eyeriss_like.PE[42].weights_spad + energy: 3189.3363600000002 + - name: eyeriss_like.PE[42].ifmap_spad + energy: 1593.28128 + - name: eyeriss_like.PE[42].psum_spad + energy: 6825.66864 + - name: eyeriss_like.PE[42].mac + energy: 2877.5562 + - name: eyeriss_like.PE[43].weights_spad + energy: 13947.29222 + - name: eyeriss_like.PE[43].ifmap_spad + energy: 1630.8570399999999 + - name: eyeriss_like.PE[43].psum_spad + energy: 8984.27328 + - name: eyeriss_like.PE[43].mac + energy: 16110.883899999999 + - name: eyeriss_like.PE[44].weights_spad + energy: 11540.80664 + - name: eyeriss_like.PE[44].ifmap_spad + energy: 1623.37538 + - name: eyeriss_like.PE[44].psum_spad + energy: 8619.85044 + - name: eyeriss_like.PE[44].mac + energy: 13211.6082 + - name: eyeriss_like.PE[45].weights_spad + energy: 12588.38922 + - name: eyeriss_like.PE[45].ifmap_spad + energy: 1625.5593199999998 + - name: eyeriss_like.PE[45].psum_spad + energy: 8794.73836 + - name: eyeriss_like.PE[45].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[46].weights_spad + energy: 15272.51369 + - name: eyeriss_like.PE[46].ifmap_spad + energy: 1631.49676 + - name: eyeriss_like.PE[46].psum_spad + energy: 8924.63026 + - name: eyeriss_like.PE[46].mac + energy: 17345.229 + - name: eyeriss_like.PE[47].weights_spad + energy: 15202.29672 + - name: eyeriss_like.PE[47].ifmap_spad + energy: 1630.5302000000001 + - name: eyeriss_like.PE[47].psum_spad + energy: 8892.99828 + - name: eyeriss_like.PE[47].mac + energy: 17115.5834 + - name: eyeriss_like.PE[48].weights_spad + energy: 15576.465400000001 + - name: eyeriss_like.PE[48].ifmap_spad + energy: 1631.7729199999999 + - name: eyeriss_like.PE[48].psum_spad + energy: 8882.64228 + - name: eyeriss_like.PE[48].mac + energy: 17517.4632 + - name: eyeriss_like.PE[49].weights_spad + energy: 14901.6344 + - name: eyeriss_like.PE[49].ifmap_spad + energy: 1629.8398000000002 + - name: eyeriss_like.PE[49].psum_spad + energy: 8855.16436 + - name: eyeriss_like.PE[49].mac + energy: 16627.5865 + - name: eyeriss_like.PE[50].weights_spad + energy: 15851.169 + - name: eyeriss_like.PE[50].ifmap_spad + energy: 1631.6348400000002 + - name: eyeriss_like.PE[50].psum_spad + energy: 8916.748039999999 + - name: eyeriss_like.PE[50].mac + energy: 17804.5202 + - name: eyeriss_like.PE[51].weights_spad + energy: 16375.86952 + - name: eyeriss_like.PE[51].ifmap_spad + energy: 1631.08252 + - name: eyeriss_like.PE[51].psum_spad + energy: 8883.74692 + - name: eyeriss_like.PE[51].mac + energy: 18378.6342 + - name: eyeriss_like.PE[52].weights_spad + energy: 15151.25324 + - name: eyeriss_like.PE[52].ifmap_spad + energy: 1629.97788 + - name: eyeriss_like.PE[52].psum_spad + energy: 8863.58724 + - name: eyeriss_like.PE[52].mac + energy: 17000.7606 + - name: eyeriss_like.PE[53].weights_spad + energy: 13351.861439999999 + - name: eyeriss_like.PE[53].ifmap_spad + energy: 1625.1450800000002 + - name: eyeriss_like.PE[53].psum_spad + energy: 8682.288199999999 + - name: eyeriss_like.PE[53].mac + energy: 15048.773 + - name: eyeriss_like.PE[54].weights_spad + energy: 12502.09876 + - name: eyeriss_like.PE[54].ifmap_spad + energy: 1624.0404400000002 + - name: eyeriss_like.PE[54].psum_spad + energy: 8704.65716 + - name: eyeriss_like.PE[54].mac + energy: 13957.9564 + - name: eyeriss_like.PE[56].weights_spad + energy: 13934.8634 + - name: eyeriss_like.PE[56].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[56].psum_spad + energy: 9007.05648 + - name: eyeriss_like.PE[56].mac + energy: 16110.883899999999 + - name: eyeriss_like.PE[57].weights_spad + energy: 11485.81988 + - name: eyeriss_like.PE[57].ifmap_spad + energy: 1623.4128 + - name: eyeriss_like.PE[57].psum_spad + energy: 8637.96864 + - name: eyeriss_like.PE[57].mac + energy: 13211.6082 + - name: eyeriss_like.PE[58].weights_spad + energy: 12460.43924 + - name: eyeriss_like.PE[58].ifmap_spad + energy: 1625.7601599999998 + - name: eyeriss_like.PE[58].psum_spad + energy: 8802.14576 + - name: eyeriss_like.PE[58].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[59].weights_spad + energy: 15059.424200000001 + - name: eyeriss_like.PE[59].ifmap_spad + energy: 1631.6976 + - name: eyeriss_like.PE[59].psum_spad + energy: 8941.19232 + - name: eyeriss_like.PE[59].mac + energy: 17345.229 + - name: eyeriss_like.PE[60].weights_spad + energy: 14934.473 + - name: eyeriss_like.PE[60].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[60].psum_spad + energy: 8905.4296 + - name: eyeriss_like.PE[60].mac + energy: 17115.5834 + - name: eyeriss_like.PE[61].weights_spad + energy: 15284.336360000001 + - name: eyeriss_like.PE[61].ifmap_spad + energy: 1631.97376 + - name: eyeriss_like.PE[61].psum_spad + energy: 8899.354080000001 + - name: eyeriss_like.PE[61].mac + energy: 17517.4632 + - name: eyeriss_like.PE[62].weights_spad + energy: 14609.599880000002 + - name: eyeriss_like.PE[62].ifmap_spad + energy: 1630.04064 + - name: eyeriss_like.PE[62].psum_spad + energy: 8870.77152 + - name: eyeriss_like.PE[62].mac + energy: 16627.5865 + - name: eyeriss_like.PE[63].weights_spad + energy: 15559.229000000001 + - name: eyeriss_like.PE[63].ifmap_spad + energy: 1631.8356800000001 + - name: eyeriss_like.PE[63].psum_spad + energy: 8926.00352 + - name: eyeriss_like.PE[63].mac + energy: 17804.5202 + - name: eyeriss_like.PE[64].weights_spad + energy: 16084.02404 + - name: eyeriss_like.PE[64].ifmap_spad + energy: 1631.30136 + - name: eyeriss_like.PE[64].psum_spad + energy: 8894.935519999999 + - name: eyeriss_like.PE[64].mac + energy: 18378.6342 + - name: eyeriss_like.PE[65].weights_spad + energy: 14859.50228 + - name: eyeriss_like.PE[65].ifmap_spad + energy: 1630.23272 + - name: eyeriss_like.PE[65].psum_spad + energy: 8867.18144 + - name: eyeriss_like.PE[65].mac + energy: 17000.7606 + - name: eyeriss_like.PE[66].weights_spad + energy: 13060.205000000002 + - name: eyeriss_like.PE[66].ifmap_spad + energy: 1625.39992 + - name: eyeriss_like.PE[66].psum_spad + energy: 8693.891039999999 + - name: eyeriss_like.PE[66].mac + energy: 15048.773 + - name: eyeriss_like.PE[67].weights_spad + energy: 12210.53684 + - name: eyeriss_like.PE[67].ifmap_spad + energy: 1624.29528 + - name: eyeriss_like.PE[67].psum_spad + energy: 8708.11328 + - name: eyeriss_like.PE[67].mac + energy: 13957.9564 + - name: eyeriss_like.PE[68].weights_spad + energy: 14484.64868 + - name: eyeriss_like.PE[68].ifmap_spad + energy: 1631.19928 + - name: eyeriss_like.PE[68].psum_spad + energy: 8860.69168 + - name: eyeriss_like.PE[68].mac + energy: 16857.2321 + - name: eyeriss_like.PE[70].weights_spad + energy: 11486.09604 + - name: eyeriss_like.PE[70].ifmap_spad + energy: 1623.4128 + - name: eyeriss_like.PE[70].psum_spad + energy: 8624.29872 + - name: eyeriss_like.PE[70].mac + energy: 13211.6082 + - name: eyeriss_like.PE[71].weights_spad + energy: 12460.715400000001 + - name: eyeriss_like.PE[71].ifmap_spad + energy: 1625.7601599999998 + - name: eyeriss_like.PE[71].psum_spad + energy: 8795.51792 + - name: eyeriss_like.PE[71].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[72].weights_spad + energy: 15059.70036 + - name: eyeriss_like.PE[72].ifmap_spad + energy: 1631.6976 + - name: eyeriss_like.PE[72].psum_spad + energy: 8928.35088 + - name: eyeriss_like.PE[72].mac + energy: 17345.229 + - name: eyeriss_like.PE[73].weights_spad + energy: 14934.749160000001 + - name: eyeriss_like.PE[73].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[73].psum_spad + energy: 8889.68848 + - name: eyeriss_like.PE[73].mac + energy: 17115.5834 + - name: eyeriss_like.PE[74].weights_spad + energy: 15284.61252 + - name: eyeriss_like.PE[74].ifmap_spad + energy: 1631.97376 + - name: eyeriss_like.PE[74].psum_spad + energy: 8891.759680000001 + - name: eyeriss_like.PE[74].mac + energy: 17517.4632 + - name: eyeriss_like.PE[75].weights_spad + energy: 14609.876040000001 + - name: eyeriss_like.PE[75].ifmap_spad + energy: 1630.04064 + - name: eyeriss_like.PE[75].psum_spad + energy: 8863.45328 + - name: eyeriss_like.PE[75].mac + energy: 16627.5865 + - name: eyeriss_like.PE[76].weights_spad + energy: 15559.50516 + - name: eyeriss_like.PE[76].ifmap_spad + energy: 1631.8356800000001 + - name: eyeriss_like.PE[76].psum_spad + energy: 8921.9992 + - name: eyeriss_like.PE[76].mac + energy: 17804.5202 + - name: eyeriss_like.PE[77].weights_spad + energy: 16084.3002 + - name: eyeriss_like.PE[77].ifmap_spad + energy: 1631.28336 + - name: eyeriss_like.PE[77].psum_spad + energy: 8888.03152 + - name: eyeriss_like.PE[77].mac + energy: 18378.6342 + - name: eyeriss_like.PE[78].weights_spad + energy: 14859.77844 + - name: eyeriss_like.PE[78].ifmap_spad + energy: 1630.1787199999999 + - name: eyeriss_like.PE[78].psum_spad + energy: 8847.436 + - name: eyeriss_like.PE[78].mac + energy: 17000.7606 + - name: eyeriss_like.PE[79].weights_spad + energy: 13060.481160000001 + - name: eyeriss_like.PE[79].ifmap_spad + energy: 1625.34592 + - name: eyeriss_like.PE[79].psum_spad + energy: 8683.8112 + - name: eyeriss_like.PE[79].mac + energy: 15048.773 + - name: eyeriss_like.PE[80].weights_spad + energy: 12210.813 + - name: eyeriss_like.PE[80].ifmap_spad + energy: 1624.24128 + - name: eyeriss_like.PE[80].psum_spad + energy: 8707.00864 + - name: eyeriss_like.PE[80].mac + energy: 13957.9564 + - name: eyeriss_like.PE[81].weights_spad + energy: 14484.924840000001 + - name: eyeriss_like.PE[81].ifmap_spad + energy: 1631.14528 + - name: eyeriss_like.PE[81].psum_spad + energy: 8854.892319999999 + - name: eyeriss_like.PE[81].mac + energy: 16857.2321 + - name: eyeriss_like.PE[82].weights_spad + energy: 3189.3363600000002 + - name: eyeriss_like.PE[82].ifmap_spad + energy: 1593.1732799999997 + - name: eyeriss_like.PE[82].psum_spad + energy: 6825.66864 + - name: eyeriss_like.PE[82].mac + energy: 2877.5562 + - name: eyeriss_like.PE[84].weights_spad + energy: 3189.3363600000002 + - name: eyeriss_like.PE[84].ifmap_spad + energy: 1593.3172799999998 + - name: eyeriss_like.PE[84].psum_spad + energy: 6825.66864 + - name: eyeriss_like.PE[84].mac + energy: 2877.5562 + - name: eyeriss_like.PE[85].weights_spad + energy: 13935.139560000001 + - name: eyeriss_like.PE[85].ifmap_spad + energy: 1630.87504 + - name: eyeriss_like.PE[85].psum_spad + energy: 8995.595839999998 + - name: eyeriss_like.PE[85].mac + energy: 16110.883899999999 + - name: eyeriss_like.PE[86].weights_spad + energy: 11504.32503 + - name: eyeriss_like.PE[86].ifmap_spad + energy: 1623.5747999999999 + - name: eyeriss_like.PE[86].psum_spad + energy: 8627.8888 + - name: eyeriss_like.PE[86].mac + energy: 13211.6082 + - name: eyeriss_like.PE[87].weights_spad + energy: 12527.578660000001 + - name: eyeriss_like.PE[87].ifmap_spad + energy: 1625.7407399999997 + - name: eyeriss_like.PE[87].psum_spad + energy: 8789.03456 + - name: eyeriss_like.PE[87].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[88].weights_spad + energy: 15205.60317 + - name: eyeriss_like.PE[88].ifmap_spad + energy: 1631.49676 + - name: eyeriss_like.PE[88].psum_spad + energy: 8921.68806 + - name: eyeriss_like.PE[88].mac + energy: 17345.229 + - name: eyeriss_like.PE[89].weights_spad + energy: 15159.71515 + - name: eyeriss_like.PE[89].ifmap_spad + energy: 1630.5302000000001 + - name: eyeriss_like.PE[89].psum_spad + energy: 8895.80766 + - name: eyeriss_like.PE[89].mac + energy: 17115.5834 + - name: eyeriss_like.PE[90].weights_spad + energy: 15558.23641 + - name: eyeriss_like.PE[90].ifmap_spad + energy: 1631.7729199999999 + - name: eyeriss_like.PE[90].psum_spad + energy: 8891.75556 + - name: eyeriss_like.PE[90].mac + energy: 17517.4632 + - name: eyeriss_like.PE[91].weights_spad + energy: 14901.705290000002 + - name: eyeriss_like.PE[91].ifmap_spad + energy: 1629.8398000000002 + - name: eyeriss_like.PE[91].psum_spad + energy: 8858.89252 + - name: eyeriss_like.PE[91].mac + energy: 16627.5865 + - name: eyeriss_like.PE[92].weights_spad + energy: 15851.239889999999 + - name: eyeriss_like.PE[92].ifmap_spad + energy: 1631.6348400000002 + - name: eyeriss_like.PE[92].psum_spad + energy: 8918.128840000001 + - name: eyeriss_like.PE[92].mac + energy: 17804.5202 + - name: eyeriss_like.PE[93].weights_spad + energy: 16375.940410000001 + - name: eyeriss_like.PE[93].ifmap_spad + energy: 1631.08252 + - name: eyeriss_like.PE[93].psum_spad + energy: 8885.12772 + - name: eyeriss_like.PE[93].mac + energy: 18378.6342 + - name: eyeriss_like.PE[94].weights_spad + energy: 15151.32413 + - name: eyeriss_like.PE[94].ifmap_spad + energy: 1629.97788 + - name: eyeriss_like.PE[94].psum_spad + energy: 8857.6498 + - name: eyeriss_like.PE[94].mac + energy: 17000.7606 + - name: eyeriss_like.PE[95].weights_spad + energy: 13351.93233 + - name: eyeriss_like.PE[95].ifmap_spad + energy: 1625.1450800000002 + - name: eyeriss_like.PE[95].psum_spad + energy: 8679.94084 + - name: eyeriss_like.PE[95].mac + energy: 15048.773 + - name: eyeriss_like.PE[96].weights_spad + energy: 12502.169650000002 + - name: eyeriss_like.PE[96].ifmap_spad + energy: 1624.0404400000002 + - name: eyeriss_like.PE[96].psum_spad + energy: 8707.833 + - name: eyeriss_like.PE[96].mac + energy: 13957.9564 + - name: eyeriss_like.PE[98].weights_spad + energy: 13935.139560000001 + - name: eyeriss_like.PE[98].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[98].psum_spad + energy: 9001.53328 + - name: eyeriss_like.PE[98].mac + energy: 16110.883899999999 + - name: eyeriss_like.PE[99].weights_spad + energy: 11486.09604 + - name: eyeriss_like.PE[99].ifmap_spad + energy: 1623.4128 + - name: eyeriss_like.PE[99].psum_spad + energy: 8636.03552 + - name: eyeriss_like.PE[99].mac + energy: 13211.6082 + - name: eyeriss_like.PE[100].weights_spad + energy: 12460.715400000001 + - name: eyeriss_like.PE[100].ifmap_spad + energy: 1625.7601599999998 + - name: eyeriss_like.PE[100].psum_spad + energy: 8806.840479999999 + - name: eyeriss_like.PE[100].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[101].weights_spad + energy: 15059.70036 + - name: eyeriss_like.PE[101].ifmap_spad + energy: 1631.6976 + - name: eyeriss_like.PE[101].psum_spad + energy: 8938.568800000001 + - name: eyeriss_like.PE[101].mac + energy: 17345.229 + - name: eyeriss_like.PE[102].weights_spad + energy: 14934.749160000001 + - name: eyeriss_like.PE[102].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[102].psum_spad + energy: 8896.17824 + - name: eyeriss_like.PE[102].mac + energy: 17115.5834 + - name: eyeriss_like.PE[103].weights_spad + energy: 15284.61252 + - name: eyeriss_like.PE[103].ifmap_spad + energy: 1631.97376 + - name: eyeriss_like.PE[103].psum_spad + energy: 8907.22464 + - name: eyeriss_like.PE[103].mac + energy: 17517.4632 + - name: eyeriss_like.PE[104].weights_spad + energy: 14609.876040000001 + - name: eyeriss_like.PE[104].ifmap_spad + energy: 1630.04064 + - name: eyeriss_like.PE[104].psum_spad + energy: 8877.26128 + - name: eyeriss_like.PE[104].mac + energy: 16627.5865 + - name: eyeriss_like.PE[105].weights_spad + energy: 15559.50516 + - name: eyeriss_like.PE[105].ifmap_spad + energy: 1631.8356800000001 + - name: eyeriss_like.PE[105].psum_spad + energy: 8934.70256 + - name: eyeriss_like.PE[105].mac + energy: 17804.5202 + - name: eyeriss_like.PE[106].weights_spad + energy: 16084.3002 + - name: eyeriss_like.PE[106].ifmap_spad + energy: 1631.28336 + - name: eyeriss_like.PE[106].psum_spad + energy: 8899.35408 + - name: eyeriss_like.PE[106].mac + energy: 18378.6342 + - name: eyeriss_like.PE[107].weights_spad + energy: 14859.77844 + - name: eyeriss_like.PE[107].ifmap_spad + energy: 1630.21472 + - name: eyeriss_like.PE[107].psum_spad + energy: 8864.55792 + - name: eyeriss_like.PE[107].mac + energy: 17000.7606 + - name: eyeriss_like.PE[108].weights_spad + energy: 13060.481160000001 + - name: eyeriss_like.PE[108].ifmap_spad + energy: 1625.39992 + - name: eyeriss_like.PE[108].psum_spad + energy: 8690.024800000001 + - name: eyeriss_like.PE[108].mac + energy: 15048.773 + - name: eyeriss_like.PE[109].weights_spad + energy: 12210.813 + - name: eyeriss_like.PE[109].ifmap_spad + energy: 1624.29528 + - name: eyeriss_like.PE[109].psum_spad + energy: 8713.91264 + - name: eyeriss_like.PE[109].mac + energy: 13957.9564 + - name: eyeriss_like.PE[110].weights_spad + energy: 14484.924840000001 + - name: eyeriss_like.PE[110].ifmap_spad + energy: 1631.19928 + - name: eyeriss_like.PE[110].psum_spad + energy: 8860.27744 + - name: eyeriss_like.PE[110].mac + energy: 16857.2321 + - name: eyeriss_like.PE[112].weights_spad + energy: 11485.95796 + - name: eyeriss_like.PE[112].ifmap_spad + energy: 1623.4128 + - name: eyeriss_like.PE[112].psum_spad + energy: 8631.75504 + - name: eyeriss_like.PE[112].mac + energy: 13211.6082 + - name: eyeriss_like.PE[113].weights_spad + energy: 12460.57732 + - name: eyeriss_like.PE[113].ifmap_spad + energy: 1625.7601599999998 + - name: eyeriss_like.PE[113].psum_spad + energy: 8793.170559999999 + - name: eyeriss_like.PE[113].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[114].weights_spad + energy: 15059.56228 + - name: eyeriss_like.PE[114].ifmap_spad + energy: 1631.6976 + - name: eyeriss_like.PE[114].psum_spad + energy: 8936.221440000001 + - name: eyeriss_like.PE[114].mac + energy: 17345.229 + - name: eyeriss_like.PE[115].weights_spad + energy: 14934.61108 + - name: eyeriss_like.PE[115].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[115].psum_spad + energy: 8895.34976 + - name: eyeriss_like.PE[115].mac + energy: 17115.5834 + - name: eyeriss_like.PE[116].weights_spad + energy: 15284.47444 + - name: eyeriss_like.PE[116].ifmap_spad + energy: 1631.97376 + - name: eyeriss_like.PE[116].psum_spad + energy: 8905.01536 + - name: eyeriss_like.PE[116].mac + energy: 17517.4632 + - name: eyeriss_like.PE[117].weights_spad + energy: 14609.73796 + - name: eyeriss_like.PE[117].ifmap_spad + energy: 1630.04064 + - name: eyeriss_like.PE[117].psum_spad + energy: 8868.976480000001 + - name: eyeriss_like.PE[117].mac + energy: 16627.5865 + - name: eyeriss_like.PE[118].weights_spad + energy: 15559.367080000002 + - name: eyeriss_like.PE[118].ifmap_spad + energy: 1631.8356800000001 + - name: eyeriss_like.PE[118].psum_spad + energy: 8920.480319999999 + - name: eyeriss_like.PE[118].mac + energy: 17804.5202 + - name: eyeriss_like.PE[119].weights_spad + energy: 16084.162119999999 + - name: eyeriss_like.PE[119].ifmap_spad + energy: 1631.28336 + - name: eyeriss_like.PE[119].psum_spad + energy: 8890.37888 + - name: eyeriss_like.PE[119].mac + energy: 18378.6342 + - name: eyeriss_like.PE[120].weights_spad + energy: 14859.64036 + - name: eyeriss_like.PE[120].ifmap_spad + energy: 1630.1787199999999 + - name: eyeriss_like.PE[120].psum_spad + energy: 8862.76288 + - name: eyeriss_like.PE[120].mac + energy: 17000.7606 + - name: eyeriss_like.PE[121].weights_spad + energy: 13060.34308 + - name: eyeriss_like.PE[121].ifmap_spad + energy: 1625.34592 + - name: eyeriss_like.PE[121].psum_spad + energy: 8691.95792 + - name: eyeriss_like.PE[121].mac + energy: 15048.773 + - name: eyeriss_like.PE[122].weights_spad + energy: 12210.674920000001 + - name: eyeriss_like.PE[122].ifmap_spad + energy: 1624.24128 + - name: eyeriss_like.PE[122].psum_spad + energy: 8712.39376 + - name: eyeriss_like.PE[122].mac + energy: 13957.9564 + - name: eyeriss_like.PE[123].weights_spad + energy: 14484.78676 + - name: eyeriss_like.PE[123].ifmap_spad + energy: 1631.14528 + - name: eyeriss_like.PE[123].psum_spad + energy: 8854.75424 + - name: eyeriss_like.PE[123].mac + energy: 16857.2321 + - name: eyeriss_like.PE[124].weights_spad + energy: 3189.19828 + - name: eyeriss_like.PE[124].ifmap_spad + energy: 1593.1732799999997 + - name: eyeriss_like.PE[124].psum_spad + energy: 6825.66864 + - name: eyeriss_like.PE[124].mac + energy: 2877.5562 + - name: eyeriss_like.PE[126].weights_spad + energy: 3189.3363600000002 + - name: eyeriss_like.PE[126].ifmap_spad + energy: 1593.28128 + - name: eyeriss_like.PE[126].psum_spad + energy: 6825.66864 + - name: eyeriss_like.PE[126].mac + energy: 2877.5562 + - name: eyeriss_like.PE[127].weights_spad + energy: 13935.139560000001 + - name: eyeriss_like.PE[127].ifmap_spad + energy: 1630.8390399999998 + - name: eyeriss_like.PE[127].psum_spad + energy: 9005.12336 + - name: eyeriss_like.PE[127].mac + energy: 16110.883899999999 + - name: eyeriss_like.PE[128].weights_spad + energy: 11486.09604 + - name: eyeriss_like.PE[128].ifmap_spad + energy: 1623.5208 + - name: eyeriss_like.PE[128].psum_spad + energy: 8628.44112 + - name: eyeriss_like.PE[128].mac + energy: 13211.6082 + - name: eyeriss_like.PE[129].weights_spad + energy: 12485.02072 + - name: eyeriss_like.PE[129].ifmap_spad + energy: 1625.7047399999997 + - name: eyeriss_like.PE[129].psum_spad + energy: 8799.126059999999 + - name: eyeriss_like.PE[129].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[130].weights_spad + energy: 15138.71628 + - name: eyeriss_like.PE[130].ifmap_spad + energy: 1631.47876 + - name: eyeriss_like.PE[130].psum_spad + energy: 8931.845399999998 + - name: eyeriss_like.PE[130].mac + energy: 17345.229 + - name: eyeriss_like.PE[131].weights_spad + energy: 15098.88096 + - name: eyeriss_like.PE[131].ifmap_spad + energy: 1630.5302000000001 + - name: eyeriss_like.PE[131].psum_spad + energy: 8894.26432 + - name: eyeriss_like.PE[131].mac + energy: 17115.5834 + - name: eyeriss_like.PE[132].weights_spad + energy: 15521.731170000001 + - name: eyeriss_like.PE[132].ifmap_spad + energy: 1631.7729199999999 + - name: eyeriss_like.PE[132].psum_spad + energy: 8899.1577 + - name: eyeriss_like.PE[132].mac + energy: 17517.4632 + - name: eyeriss_like.PE[133].weights_spad + energy: 14889.57626 + - name: eyeriss_like.PE[133].ifmap_spad + energy: 1629.8398000000002 + - name: eyeriss_like.PE[133].psum_spad + energy: 8864.96804 + - name: eyeriss_like.PE[133].mac + energy: 16627.5865 + - name: eyeriss_like.PE[134].weights_spad + energy: 15851.31078 + - name: eyeriss_like.PE[134].ifmap_spad + energy: 1631.6348400000002 + - name: eyeriss_like.PE[134].psum_spad + energy: 8928.89908 + - name: eyeriss_like.PE[134].mac + energy: 17804.5202 + - name: eyeriss_like.PE[135].weights_spad + energy: 16376.0113 + - name: eyeriss_like.PE[135].ifmap_spad + energy: 1631.08252 + - name: eyeriss_like.PE[135].psum_spad + energy: 8897.96916 + - name: eyeriss_like.PE[135].mac + energy: 18378.6342 + - name: eyeriss_like.PE[136].weights_spad + energy: 15151.39502 + - name: eyeriss_like.PE[136].ifmap_spad + energy: 1629.97788 + - name: eyeriss_like.PE[136].psum_spad + energy: 8864.553799999998 + - name: eyeriss_like.PE[136].mac + energy: 17000.7606 + - name: eyeriss_like.PE[137].weights_spad + energy: 13352.00322 + - name: eyeriss_like.PE[137].ifmap_spad + energy: 1625.1450800000002 + - name: eyeriss_like.PE[137].psum_spad + energy: 8688.91604 + - name: eyeriss_like.PE[137].mac + energy: 15048.773 + - name: eyeriss_like.PE[138].weights_spad + energy: 12502.24054 + - name: eyeriss_like.PE[138].ifmap_spad + energy: 1624.0404400000002 + - name: eyeriss_like.PE[138].psum_spad + energy: 8717.91284 + - name: eyeriss_like.PE[138].mac + energy: 13957.9564 + - name: eyeriss_like.PE[140].weights_spad + energy: 13935.139560000001 + - name: eyeriss_like.PE[140].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[140].psum_spad + energy: 8996.83856 + - name: eyeriss_like.PE[140].mac + energy: 16110.883899999999 + - name: eyeriss_like.PE[141].weights_spad + energy: 11486.09604 + - name: eyeriss_like.PE[141].ifmap_spad + energy: 1623.4128 + - name: eyeriss_like.PE[141].psum_spad + energy: 8617.25664 + - name: eyeriss_like.PE[141].mac + energy: 13211.6082 + - name: eyeriss_like.PE[142].weights_spad + energy: 12460.715400000001 + - name: eyeriss_like.PE[142].ifmap_spad + energy: 1625.7601599999998 + - name: eyeriss_like.PE[142].psum_spad + energy: 8798.27952 + - name: eyeriss_like.PE[142].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[143].weights_spad + energy: 15059.70036 + - name: eyeriss_like.PE[143].ifmap_spad + energy: 1631.6976 + - name: eyeriss_like.PE[143].psum_spad + energy: 8931.6648 + - name: eyeriss_like.PE[143].mac + energy: 17345.229 + - name: eyeriss_like.PE[144].weights_spad + energy: 14934.749160000001 + - name: eyeriss_like.PE[144].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[144].psum_spad + energy: 8898.80176 + - name: eyeriss_like.PE[144].mac + energy: 17115.5834 + - name: eyeriss_like.PE[145].weights_spad + energy: 15284.61252 + - name: eyeriss_like.PE[145].ifmap_spad + energy: 1631.97376 + - name: eyeriss_like.PE[145].psum_spad + energy: 8898.66368 + - name: eyeriss_like.PE[145].mac + energy: 17517.4632 + - name: eyeriss_like.PE[146].weights_spad + energy: 14609.876040000001 + - name: eyeriss_like.PE[146].ifmap_spad + energy: 1630.04064 + - name: eyeriss_like.PE[146].psum_spad + energy: 8863.17712 + - name: eyeriss_like.PE[146].mac + energy: 16627.5865 + - name: eyeriss_like.PE[147].weights_spad + energy: 15559.50516 + - name: eyeriss_like.PE[147].ifmap_spad + energy: 1631.8356800000001 + - name: eyeriss_like.PE[147].psum_spad + energy: 8923.24192 + - name: eyeriss_like.PE[147].mac + energy: 17804.5202 + - name: eyeriss_like.PE[148].weights_spad + energy: 16084.3002 + - name: eyeriss_like.PE[148].ifmap_spad + energy: 1631.28336 + - name: eyeriss_like.PE[148].psum_spad + energy: 8888.86 + - name: eyeriss_like.PE[148].mac + energy: 18378.6342 + - name: eyeriss_like.PE[149].weights_spad + energy: 14859.77844 + - name: eyeriss_like.PE[149].ifmap_spad + energy: 1630.1787199999999 + - name: eyeriss_like.PE[149].psum_spad + energy: 8855.0304 + - name: eyeriss_like.PE[149].mac + energy: 17000.7606 + - name: eyeriss_like.PE[150].weights_spad + energy: 13060.481160000001 + - name: eyeriss_like.PE[150].ifmap_spad + energy: 1625.39992 + - name: eyeriss_like.PE[150].psum_spad + energy: 8679.39264 + - name: eyeriss_like.PE[150].mac + energy: 15048.773 + - name: eyeriss_like.PE[151].weights_spad + energy: 12210.813 + - name: eyeriss_like.PE[151].ifmap_spad + energy: 1624.29528 + - name: eyeriss_like.PE[151].psum_spad + energy: 8721.0928 + - name: eyeriss_like.PE[151].mac + energy: 13957.9564 + - name: eyeriss_like.PE[152].weights_spad + energy: 14484.924840000001 + - name: eyeriss_like.PE[152].ifmap_spad + energy: 1631.19928 + - name: eyeriss_like.PE[152].psum_spad + energy: 8850.74992 + - name: eyeriss_like.PE[152].mac + energy: 16857.2321 + - name: eyeriss_like.PE[154].weights_spad + energy: 11486.09604 + - name: eyeriss_like.PE[154].ifmap_spad + energy: 1623.4128 + - name: eyeriss_like.PE[154].psum_spad + energy: 8627.8888 + - name: eyeriss_like.PE[154].mac + energy: 13211.6082 + - name: eyeriss_like.PE[155].weights_spad + energy: 12460.715400000001 + - name: eyeriss_like.PE[155].ifmap_spad + energy: 1625.7601599999998 + - name: eyeriss_like.PE[155].psum_spad + energy: 8806.97856 + - name: eyeriss_like.PE[155].mac + energy: 14503.364699999998 + - name: eyeriss_like.PE[156].weights_spad + energy: 15059.70036 + - name: eyeriss_like.PE[156].ifmap_spad + energy: 1631.6976 + - name: eyeriss_like.PE[156].psum_spad + energy: 8937.740319999999 + - name: eyeriss_like.PE[156].mac + energy: 17345.229 + - name: eyeriss_like.PE[157].weights_spad + energy: 14934.749160000001 + - name: eyeriss_like.PE[157].ifmap_spad + energy: 1630.73104 + - name: eyeriss_like.PE[157].psum_spad + energy: 8896.73056 + - name: eyeriss_like.PE[157].mac + energy: 17115.5834 + - name: eyeriss_like.PE[158].weights_spad + energy: 15284.61252 + - name: eyeriss_like.PE[158].ifmap_spad + energy: 1631.97376 + - name: eyeriss_like.PE[158].psum_spad + energy: 8900.596800000001 + - name: eyeriss_like.PE[158].mac + energy: 17517.4632 + - name: eyeriss_like.PE[159].weights_spad + energy: 14609.876040000001 + - name: eyeriss_like.PE[159].ifmap_spad + energy: 1630.04064 + - name: eyeriss_like.PE[159].psum_spad + energy: 8874.3616 + - name: eyeriss_like.PE[159].mac + energy: 16627.5865 + - name: eyeriss_like.PE[160].weights_spad + energy: 15559.50516 + - name: eyeriss_like.PE[160].ifmap_spad + energy: 1631.8356800000001 + - name: eyeriss_like.PE[160].psum_spad + energy: 8928.35088 + - name: eyeriss_like.PE[160].mac + energy: 17804.5202 + - name: eyeriss_like.PE[161].weights_spad + energy: 16084.3002 + - name: eyeriss_like.PE[161].ifmap_spad + energy: 1631.28336 + - name: eyeriss_like.PE[161].psum_spad + energy: 8896.17824 + - name: eyeriss_like.PE[161].mac + energy: 18378.6342 + - name: eyeriss_like.PE[162].weights_spad + energy: 14859.77844 + - name: eyeriss_like.PE[162].ifmap_spad + energy: 1630.1787199999999 + - name: eyeriss_like.PE[162].psum_spad + energy: 8870.35728 + - name: eyeriss_like.PE[162].mac + energy: 17000.7606 + - name: eyeriss_like.PE[163].weights_spad + energy: 13060.481160000001 + - name: eyeriss_like.PE[163].ifmap_spad + energy: 1625.34592 + - name: eyeriss_like.PE[163].psum_spad + energy: 8695.13376 + - name: eyeriss_like.PE[163].mac + energy: 15048.773 + - name: eyeriss_like.PE[164].weights_spad + energy: 12210.813 + - name: eyeriss_like.PE[164].ifmap_spad + energy: 1624.24128 + - name: eyeriss_like.PE[164].psum_spad + energy: 8715.84576 + - name: eyeriss_like.PE[164].mac + energy: 13957.9564 + - name: eyeriss_like.PE[165].weights_spad + energy: 14484.924840000001 + - name: eyeriss_like.PE[165].ifmap_spad + energy: 1631.14528 + - name: eyeriss_like.PE[165].psum_spad + energy: 8847.15984 + - name: eyeriss_like.PE[165].mac + energy: 16857.2321 + - name: eyeriss_like.PE[166].weights_spad + energy: 3189.3363600000002 + - name: eyeriss_like.PE[166].ifmap_spad + energy: 1593.1732799999997 + - name: eyeriss_like.PE[166].psum_spad + energy: 6825.66864 + - name: eyeriss_like.PE[166].mac + energy: 2877.5562 + Total: 8484502.549990004 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/flattened_architecture.yaml new file mode 100644 index 00000000..82d57123 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/accelergy/04_eyeriss_like/ref-output/flattened_architecture.yaml @@ -0,0 +1,103 @@ +architecture: + version: 0.3 + local: + - name: eyeriss_like.PE[0..167].ifmap_spad + class: smartbuffer_RF + attributes: + memory_depth: 12 + memory_width: 16 + n_banks: 1 + n_buffets: 1 + n_rdwr_ports: 2 + technology: 45nm + - name: eyeriss_like.PE[0..167].weights_spad + class: smartbuffer_RF + attributes: + memory_depth: 192 + memory_width: 16 + n_banks: 1 + n_buffets: 1 + n_rdwr_ports: 2 + technology: 45nm + - name: eyeriss_like.PE[0..167].psum_spad + class: smartbuffer_RF + attributes: + memory_depth: 16 + memory_width: 16 + n_banks: 1 + n_buffets: 1 + n_rdwr_ports: 2 + technology: 45nm + - name: eyeriss_like.PE[0..167].mac + class: intmac + attributes: + datawidth: 16 + latency: 5ns + meshX: 14 + num_pipeline_stages: 2 + technology: 45nm + - name: eyeriss_like.weights_glb + class: smartbuffer_SRAM + attributes: + memory_depth: 1024 + memory_width: 64 + n_banks: 2 + n_buffets: 1 + n_rdwr_ports: 2 + technology: 45nm + - name: eyeriss_like.shared_glb + class: smartbuffer_SRAM + attributes: + bank_depth: 512 + memory_depth: 12800 + memory_width: 64 + n_banks: 25 + n_buffets: 2 + n_rdwr_ports: 2 + technology: 45nm + update_fifo_depth: 2 + - name: eyeriss_like.ifmap_NoC + class: XY_NoC + attributes: + X_comparator_width: 4 + Y_X_wire_avg_length: 2mm + Y_comparator_width: 4 + col_id_width: 5 + datawidth: 16 + n_PE_cols: 14 + n_PE_rows: 12 + technology: 45nm + total_PEs: 168 + - name: eyeriss_like.weights_NoC + class: XY_NoC + attributes: + X_comparator_width: 4 + Y_X_wire_avg_length: 2mm + Y_comparator_width: 4 + datawidth: 64 + n_PE_cols: 14 + n_PE_rows: 12 + technology: 45nm + total_PEs: 168 + - name: eyeriss_like.psum_write_NoC + class: XY_NoC + attributes: + X_comparator_width: 4 + Y_X_wire_avg_length: 2mm + Y_comparator_width: 4 + datawidth: 64 + n_PE_cols: 14 + n_PE_rows: 12 + technology: 45nm + total_PEs: 168 + - name: eyeriss_like.psum_read_NoC + class: XY_NoC + attributes: + X_comparator_width: 4 + Y_X_wire_avg_length: 4mm + Y_comparator_width: 4 + datawidth: 64 + n_PE_cols: 14 + n_PE_rows: 12 + technology: 45nm + total_PEs: 168 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/README.md new file mode 100644 index 00000000..8be11db1 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/README.md @@ -0,0 +1,52 @@ +Timeloop + Accelergy Free Lab +========== + +## Overview +In this final exercise, we show how to use features from both Timeloop and Accelergy to evaluate DNN accelerators systematically, efficiently, and accurately. This exercise combines the last exercises from the two previous sessions: + +1. How to map a CNN layer onto a Eyeriss-like architecture (timeloop/06). +2. How to model a complex accelerator with user-defined components (accelergy/04). + +To combine them, we will provide detailed design descriptions for the system and compound components, like in Accelergy, and descriptions of problem, mapping, and constraints, to Timeloop. + +## Evaluate a complex DNN accelerator running a CNN layer +The following command uses Timeloop to find a good mapping to run on an Eyeriss-like architecture: + +``` +timeloop-mapper arch/eyeriss_like-int16.yaml \ + arch/components/*.yaml \ + prob/prob.yaml \ + mapper/mapper.yaml \ + constraints/*.yaml +``` + +Take a look at `timeloop-mapper.stats.txt` output file. What's the energy breakdown and system utilization? + +## Example experiments +Using those provided files, there are many interesting experiments we can explore. + +1. An Eyeriss-like architecture for floating-point data: + + Data type and precision are critical to DNN accelerators. What if we want to build an accelerator operate on different data types? The following command evaluate running an Eyeriss-like architecture with floating-point input, weights, and output: + + ``` + python3 run_example.py fpmac + ``` + + As before, Timeloop produces a `timeloop-mapper.stats.txt` file with detailed execution statistics. You should see MAC energy increases significantly, showing the cost of operating on floating-point data. Compare two arch.yaml and see how they are different from each other. What if we use the same bandwidth for the floating-point design at the PE level? + + > Note: Search for `Bandwidth throttling` to see how memory hierarchy bandwidth becomes a bottle neck when using the same bandwidth. + + Now, you can imagine doing a small research project with this framework: Implemente a MAC unit for a new data type (e.g., 8-bit FP), provide the energy consumption in Accelergy, and then use timeloop to evaluate how this new data type improves overall performance and energy efficiency. + + ``` + python3 run_example.py intmac + ``` + +2. Using different DRAM type: + + Main memory is often the bottleneck of performance and energy efficiency. Architects might want to improve performance and energy efficiency of their accelerators by using an advanced DRAM technology that has lower energy consumption. You can do that easily here by modifying the type in DRAM to other types (e.g., "HBM2") and rerun timeloop. Observe how the DRAM energy changes. + + You can also imagine that if Accelergy can use plug-ins for other memory technologies, we can quickly evaluate how Eyeriss performs with new technologies. + +There are many more interesting research questions regarding DNN accelerators. Timeloop+Accelergy is a great framework to help researchers answer those questions. diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/arch.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/arch.yaml new file mode 100644 index 00000000..b05f710b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/arch.yaml @@ -0,0 +1,113 @@ +variables: + version: 0.4 + PSUM_DATAWIDTH: {{psum_datawidth}} + INPUT_WEIGHT_DATAWIDTH: {{input_weight_datawidth}} + global_cycle_seconds: 1e-09 + technology: "45nm" + +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: INPUT_WEIGHT_DATAWIDTH + + - !Container # Eyeriss accelerator + name: eyeriss + + - !Component # Global buffer for inputs & outputs + name: shared_glb + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: INPUT_WEIGHT_DATAWIDTH + read_bandwidth: 16 + write_bandwidth: 16 + constraints: + dataspace: {keep: [Inputs, Outputs], bypass: [Weights]} + + - !Container # Each column of PEs produces a different psum row + name: PE_column + spatial: {meshX: 14} + constraints: + spatial: + permutation: [N, C, P, R, S, Q, M] + factors: [N=1, C=1, P=1, R=1, S=1] + split: 7 + + - !Container # Each PE in the column receives a different filter row + name: PE + spatial: {meshY: 12} + constraints: + spatial: + split: 4 + permutation: [N, P, Q, R, S, C, M] + factors: [N=1, P=1, Q=1, R=1] + + - !Parallel # Input/Output/Weight scratchpads in parallel + nodes: + - !Component # Input scratchpad + name: ifmap_spad + class: smartbuffer_RF + attributes: + depth: 12 + width: max(INPUT_WEIGHT_DATAWIDTH, 16) + datawidth: INPUT_WEIGHT_DATAWIDTH + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Inputs]} + temporal: + permutation: [N, M, C, P, Q, R, S] + factors: [N=1, M=1, C=1, P=1, Q=1, R=1, S=1] + + - !Component # Weight scratchpad + name: weights_spad + class: smartbuffer_RF + attributes: + depth: 192 + width: max(INPUT_WEIGHT_DATAWIDTH, 16) + datawidth: INPUT_WEIGHT_DATAWIDTH + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Weights]} + temporal: + permutation: [N, M, P, Q, S, C, R] + factors: [N=1, M=1, P=1, Q=1, S=1] + + - !Component # Output scratchpad + name: psum_spad + class: smartbuffer_RF + attributes: + depth: 16 + width: max(PSUM_DATAWIDTH, 16) + update_fifo_depth: 2 + datawidth: PSUM_DATAWIDTH + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Outputs]} + temporal: + permutation: [N, C, P, Q, R, S, M] + factors: [N=1, C=1, R=1, S=1, P=1, Q=1] + + - !Component # MAC unit + name: mac + class: {{mac_class}} + attributes: + multiplier_width: INPUT_WEIGHT_DATAWIDTH + adder_width: PSUM_DATAWIDTH + datawidth: PSUM_DATAWIDTH \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/intmac.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/intmac.yaml new file mode 100644 index 00000000..9cbc5e82 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/intmac.yaml @@ -0,0 +1,62 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + + subcomponents: + - name: intadder + class: aladdin_adder + attributes: {width: adder_width} + + - name: intmultiplier + class: aladdin_adder + attributes: {width_a: multiplier_width, width_b: multiplier_width} + + actions: + - name: compute + subcomponents: + - name: intadder + actions: [{name: read}] + - name: intmultiplier + actions: [{name: read}] + - name: leak + subcomponents: + - name: intadder + actions: [{name: leak}] + - name: intmultiplier + actions: [{name: leak}] + + - name: fpmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + + subcomponents: + - name: fpadder + class: fpadder + attributes: {exponent: 8, mantissa: adder_width - exponent} + + - name: fpmultiplier + class: fpmultiplier + attributes: {exponent: 8, mantissa: multiplier_width - exponent} + + actions: + - name: compute + subcomponents: + - name: fpadder + actions: [{name: add}] + - name: fpmultiplier + actions: [{name: multiply}] + - name: leak + subcomponents: + - name: fpadder + actions: [{name: leak}] + - name: fpmultiplier + actions: [{name: leak}] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/regfile.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/regfile.yaml new file mode 100644 index 00000000..006ce976 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/regfile.yaml @@ -0,0 +1,45 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + + + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage[1..width] + actions: [{name: write}] + - name: comparator[1..depth] + actions: [{name: compare}] + - name: read + subcomponents: + - name: storage[1..width] + actions: [{name: read}] + - name: comparator[1..depth] + actions: [{name: compare}] + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}] + - name: comparator[1..depth] + actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/smartbuffer_RF.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/smartbuffer_RF.yaml new file mode 100644 index 00000000..0ed5d7d4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/smartbuffer_RF.yaml @@ -0,0 +1,63 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + # CACTI requires >= 4B wide and >= 64 entries deep + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + + area_scale: widthscale * depthscale + # CACTI scaling: 2x depth --> 1.56x dynamic power + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale # Leakage proportional to area + n_rdwr_ports: 1 # Can be overwridden + global_cycle_seconds: "must_specify" + + + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage + actions: [{name: write, energy_scale: dynamic_energy_scale}] + - name: address_generators[0] + actions: [{name: add}] + - name: read + subcomponents: + - name: storage + actions: [{name: read, energy_scale: dynamic_energy_scale}] + - name: address_generators[1] + actions: [{name: add}] + - name: leak + subcomponents: + - name: storage + actions: [{name: leak, energy_scale: static_energy_scale}] + - name: address_generators[0..1] + actions: [{name: leak}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/smartbuffer_SRAM.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/smartbuffer_SRAM.yaml new file mode 100644 index 00000000..33069be6 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/components/smartbuffer_SRAM.yaml @@ -0,0 +1,63 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + # CACTI requires >= 4B wide and >= 64 entries deep + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + + area_scale: widthscale * depthscale + # CACTI scaling: 2x depth --> 1.56x dynamic power + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale # Leakage proportional to area + n_rdwr_ports: 1 # Can be overwridden + global_cycle_seconds: "must_specify" + + + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage + actions: [{name: write, energy_scale: dynamic_energy_scale}] + - name: address_generators[0] + actions: [{name: add}] + - name: read + subcomponents: + - name: storage + actions: [{name: read, energy_scale: dynamic_energy_scale}] + - name: address_generators[1] + actions: [{name: add}] + - name: leak + subcomponents: + - name: storage + actions: [{name: leak, energy_scale: static_energy_scale}] + - name: address_generators[0..1] + actions: [{name: leak}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/eyeriss_like-float32.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/eyeriss_like-float32.yaml new file mode 100644 index 00000000..a37c5130 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/eyeriss_like-float32.yaml @@ -0,0 +1,71 @@ +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.3 + subtree: + - name: system + local: + - name: DRAM + class: DRAM + attributes: + type: LPDDR4 + width: 64 + word_bits: 32 + subtree: + - name: eyeriss + attributes: + technology: 45nm + local: + - name: shared_glb + class: smartbuffer_SRAM + attributes: + memory_depth: 16384 + memory_width: 64 + n_banks: 32 + word_bits: 32 + read_bandwidth: 16 + write_bandwidth: 16 + - name: DummyBuffer[0..13] # for better mapping + class: regfile + attributes: + depth: 16 + width: 32 + word_bits: 32 + meshX: 14 + subtree: + - name: PE[0..167] + local: + - name: ifmap_spad + class: smartbuffer_RF + attributes: + memory_depth: 12 + memory_width: 32 + word_bits: 32 + meshX: 14 + read_bandwidth: 2 + write_bandwidth: 2 + - name: weights_spad + class: smartbuffer_RF + attributes: + memory_depth: 192 + memory_width: 32 + word_bits: 32 + meshX: 14 + read_bandwidth: 2 + write_bandwidth: 2 + - name: psum_spad + class: smartbuffer_RF + attributes: + memory_depth: 16 + memory_width: 32 + update_fifo_depth: 2 + word_bits: 32 + meshX: 14 + read_bandwidth: 2 + write_bandwidth: 2 + - name: mac + class: fpmac + attributes: + datawidth: 32 + meshX : 14 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/eyeriss_like-int16.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/eyeriss_like-int16.yaml new file mode 100644 index 00000000..6e55346f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/arch/eyeriss_like-int16.yaml @@ -0,0 +1,71 @@ +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.3 + subtree: + - name: system + local: + - name: DRAM + class: DRAM + attributes: + type: LPDDR4 + width: 64 + word_bits: 16 + subtree: + - name: eyeriss + attributes: + technology: 45nm + local: + - name: shared_glb + class: smartbuffer_SRAM + attributes: + memory_depth: 16384 + memory_width: 64 + n_banks: 32 + word_bits: 16 + read_bandwidth: 16 + write_bandwidth: 16 + - name: DummyBuffer[0..13] # for better mapping + class: regfile + attributes: + depth: 16 + width: 16 + word_bits: 16 + meshX: 14 + subtree: + - name: PE[0..167] + local: + - name: ifmap_spad + class: smartbuffer_RF + attributes: + memory_depth: 12 + memory_width: 16 + word_bits: 16 + meshX: 14 + read_bandwidth: 2 + write_bandwidth: 2 + - name: weights_spad + class: smartbuffer_RF + attributes: + memory_depth: 192 + memory_width: 16 + word_bits: 16 + meshX: 14 + read_bandwidth: 2 + write_bandwidth: 2 + - name: psum_spad + class: smartbuffer_RF + attributes: + memory_depth: 16 + memory_width: 16 + update_fifo_depth: 2 + word_bits: 16 + meshX: 14 + read_bandwidth: 2 + write_bandwidth: 2 + - name: mac + class: intmac + attributes: + width: 16 + meshX : 14 \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/mapper/mapper.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/mapper/mapper.yaml new file mode 100644 index 00000000..00f6b69f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/mapper/mapper.yaml @@ -0,0 +1,9 @@ +mapper: + version: 0.4 + optimization_metrics: [ delay, energy ] + live_status: False + num_threads: 8 + timeout: 15000 + victory_condition: 500 + algorithm: random_pruned + max_permutations_per_if_visit: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/prob/prob.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/prob/prob.yaml new file mode 100644 index 00000000..ad835e64 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/prob/prob.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/parsed-processed-input.yaml new file mode 100644 index 00000000..12caa620 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/parsed-processed-input.yaml @@ -0,0 +1,614 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + technology: "45nm" + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 32 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 32 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 32 + datawidth: 32 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 32 + datawidth: 32 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 32 + update_fifo_depth: 2 + datawidth: 32 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: mac[1..168] + class: fpmac + attributes: + multiplier_width: 32 + adder_width: 32 + datawidth: 32 + has_power_gating: false + meshX: 14 + meshY: 12 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - type: temporal + permutation: N + target: shared_glb + - type: spatial + factors: N=1,C=1,P=1,R=1,S=1 + permutation: NCPRSQM + split: 7 + target: inter_PE_column_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + factors: N=1,P=1,Q=1,R=1 + permutation: NPQRSCM + split: 4 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + bypass: + - Outputs + - Weights + target: ifmap_spad + - permutation: NMCPQRS + factors: N=1,M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + bypass: + - Inputs + - Outputs + target: weights_spad + - permutation: NMPQSCR + factors: N=1,M=1,P=1,Q=1,S=1 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + bypass: + - Inputs + - Weights + target: psum_spad + - permutation: NCPQRSM + factors: N=1,C=1,R=1,S=1,P=1,Q=1 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: fpmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: fpadder + class: fpadder + attributes: + exponent: 8 + mantissa: adder_width - exponent + - name: fpmultiplier + class: fpmultiplier + attributes: + exponent: 8 + mantissa: multiplier_width - exponent + actions: + - name: compute + subcomponents: + - name: fpadder + actions: + - name: add + - name: fpmultiplier + actions: + - name: multiply + - name: leak + subcomponents: + - name: fpadder + actions: + - name: leak + - name: fpmultiplier + actions: + - name: leak + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - delay + - energy + version: '0.4' + live_status: false + num_threads: 8 + timeout: 15000 + victory_condition: 500 + algorithm: random_pruned + max_permutations_per_if_visit: 16 + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..a44216bd --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 429751.88776 + - name: system_top_level.ifmap_spad[1..168] + area: 599.03613 + - name: system_top_level.weights_spad[1..168] + area: 50466.19872 + - name: system_top_level.psum_spad[1..168] + area: 1061.07484 + - name: system_top_level.mac[1..168] + area: 4120.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..f9876320 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.shared_glb[1..1] + area: 429751.88776 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 599.03613 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 50466.19872 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 1061.07484 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 4120.0 + primitive_estimations: + - name: fpadder + estimator: Aladdin_table + - name: fpmultiplier + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..391827c5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 26.121552 + - name: read + arguments: {} + energy: 32.342452 + - name: leak + arguments: {} + energy: 0.003351 + - name: update + arguments: {} + energy: 26.121552 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.527449 + - name: read + arguments: {} + energy: 0.605492 + - name: leak + arguments: {} + energy: 0.000304 + - name: update + arguments: {} + energy: 0.527449 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 5.690674 + - name: read + arguments: {} + energy: 5.978674 + - name: leak + arguments: {} + energy: 0.004825 + - name: update + arguments: {} + energy: 5.690674 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.656021 + - name: read + arguments: {} + energy: 0.753696 + - name: leak + arguments: {} + energy: 0.000405 + - name: update + arguments: {} + energy: 0.656021 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 51.979 + - name: leak + arguments: {} + energy: 0.518524 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..99cef10b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + energy: 0.0 + - name: update + energy: 512.0 + - name: write + energy: 512.0 + - name: read + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 26.121552 + - name: read + energy: 32.342452 + - name: leak + energy: 0.003351 + - name: update + energy: 26.121552 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.527449 + - name: read + energy: 0.605492 + - name: leak + energy: 0.000304 + - name: update + energy: 0.527449 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 5.690674 + - name: read + energy: 5.978674 + - name: leak + energy: 0.004825 + - name: update + energy: 5.690674 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.656021 + - name: read + energy: 0.753696 + - name: leak + energy: 0.000405 + - name: update + energy: 0.656021 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 51.979 + - name: leak + energy: 0.518524 + primitive_estimation(s): + - name: fpadder + estimator: Aladdin_table + - name: fpmultiplier + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.accelergy.log b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..5e251689 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.accelergy.log @@ -0,0 +1,863 @@ +2024-05-29 16:51:54 INFO _ _ +2024-05-29 16:51:54 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:51:54 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:51:54 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:51:54 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:51:54 INFO |___/ |___/ +2024-05-29 16:51:54 INFO generating outputs according to the following specified output flags... +2024-05-29 16:51:54 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:51:54 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:51:54 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:51:54 INFO config file located: +2024-05-29 16:51:54 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:51:54 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:51:54 WARNING Please update the file to the latest version. +2024-05-29 16:51:54 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/parsed-processed-input.yaml for architecture info +2024-05-29 16:51:54 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/parsed-processed-input.yaml for compound_components info +2024-05-29 16:51:54 INFO Adding required action "leak" to class DRAM +2024-05-29 16:51:54 INFO Adding required action "update" to class DRAM +2024-05-29 16:51:54 INFO Adding required action "write" to class DRAM +2024-05-29 16:51:54 INFO Adding required action "read" to class DRAM +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_SRAM attributes"memory_width" as "max(32, width)" = 64. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_SRAM attributes"memory_depth" as "max(64, depth)" = 16384. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_SRAM attributes"widthscale" as "width / memory_width" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_SRAM attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_SRAM attributes"real_depth" as "depth" = 16384. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_SRAM attributes"area_scale" as "widthscale * depthscale" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_SRAM attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_SRAM attributes"static_energy_scale" as "area_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.1875. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 12. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.1875. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.2709823421926786. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.1875. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 192. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 192. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 1.0. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.25. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 16. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.25. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.33915108186191795. +2024-05-29 16:51:54 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.25. +2024-05-29 16:51:54 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:51:54 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:51:54 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:51:54 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:51:54 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:51:54 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:51:54 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:51:54 INFO Getting all estimators in module +2024-05-29 16:51:54 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:51:54 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:51:54 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:51:54 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:51:54 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:51:54 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:51:54 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:51:54 INFO Found estimator plug-in: Library () +2024-05-29 16:51:54 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:51:54 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:51:54 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:51:54 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:51:54 INFO Calculated storage."width" as "memory_width" = 64. +2024-05-29 16:51:54 INFO Calculated storage."depth" as "memory_depth" = 16384. +2024-05-29 16:51:54 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:51:54 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated storage.area_scale as "area_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 14. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 14. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated action leak energy_scale as "static_energy_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:51:54 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:51:54 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:51:54 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated storage.area_scale as "area_scale" = 0.1875. +2024-05-29 16:51:54 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:51:54 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.2709823421926786. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.2709823421926786. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.1875. +2024-05-29 16:51:54 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:51:54 INFO Calculated system_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated system_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.2709823421926786. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:51:54 INFO Calculated storage."depth" as "memory_depth" = 192. +2024-05-29 16:51:54 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:51:54 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated storage.area_scale as "area_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated list index expression as "width*depth" = 6144. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:54 INFO Calculated storage.storage[1..6144]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated storage.comparator[1..192]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2024-05-29 16:51:54 INFO Calculated storage.comparator[1..192]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:54 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:54 INFO Calculated action leak energy_scale as "static_energy_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated list index expression as "width*depth" = 6144. +2024-05-29 16:51:54 INFO Calculated system_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:54 INFO Calculated system_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:54 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:51:54 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:51:54 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:51:54 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated storage.area_scale as "area_scale" = 0.25. +2024-05-29 16:51:54 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:51:54 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:51:54 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.33915108186191795. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.33915108186191795. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.25. +2024-05-29 16:51:54 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:51:54 INFO Calculated system_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated system_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:54 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.33915108186191795. +2024-05-29 16:51:54 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:54 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:54 INFO Calculated fpadder."mantissa" as "adder_width - exponent" = 24. +2024-05-29 16:51:54 INFO Calculated fpmultiplier."mantissa" as "multiplier_width - exponent" = 24. +2024-05-29 16:51:54 INFO +2024-05-29 16:51:54 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=32, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=32, INPUT_WEIGHT_DATAWIDTH=32, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:51:54 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:51:54 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:54 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:51:54 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:54 INFO +2024-05-29 16:51:54 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=32, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=32, INPUT_WEIGHT_DATAWIDTH=32, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:51:54 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:51:54 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:54 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:51:54 INFO +2024-05-29 16:51:54 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=32, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=32, INPUT_WEIGHT_DATAWIDTH=32, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:51:54 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:51:54 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:54 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:51:54 INFO +2024-05-29 16:51:54 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=32, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=32, INPUT_WEIGHT_DATAWIDTH=32, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:51:54 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:51:54 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:54 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:51:54 INFO +2024-05-29 16:51:54 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:54 INFO CactiSRAM estimated 2.6065000000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:51:54 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:54 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:51:54 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:54 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpw0e6q7pl +2024-05-29 16:51:54 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpt68fvlq4 +2024-05-29 16:51:54 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:54 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpw0e6q7pl >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpt68fvlq4 2>&1 +2024-05-29 16:51:54 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:54 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:54 INFO +2024-05-29 16:51:54 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:55 INFO Neurosim Plug-In estimated 0.05655207999999999p with accuracy 70%. Messages: +2024-05-29 16:51:55 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:55 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:51:55 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:51:55 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:51:55 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:51:55 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:51:55 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_20498.cfg +2024-05-29 16:51:55 INFO | Crossbar minimum latency is 2.808 ns to read 8.0 columns at once. +2024-05-29 16:51:55 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:55 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:55 INFO +2024-05-29 16:51:55 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:55 INFO CactiSRAM estimated 3.2285900000000004e-11 with accuracy 80%. Messages: +2024-05-29 16:51:55 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:55 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:51:55 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:55 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjlgvotug +2024-05-29 16:51:55 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpyezitlul +2024-05-29 16:51:55 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:55 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjlgvotug >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpyezitlul 2>&1 +2024-05-29 16:51:55 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:55 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:55 INFO +2024-05-29 16:51:55 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:55 INFO Neurosim Plug-In estimated 0.05655207999999999p with accuracy 70%. Messages: +2024-05-29 16:51:55 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:55 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:55 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:55 INFO +2024-05-29 16:51:55 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:55 INFO CactiSRAM estimated 3.34055e-15 with accuracy 80%. Messages: +2024-05-29 16:51:55 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:55 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:51:55 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:55 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbqgryqmp +2024-05-29 16:51:55 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdxn0e9w4 +2024-05-29 16:51:55 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:55 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpbqgryqmp >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpdxn0e9w4 2>&1 +2024-05-29 16:51:55 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:55 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:55 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.65095 +2024-05-29 16:51:55 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:55 INFO +2024-05-29 16:51:55 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:55 INFO Neurosim Plug-In estimated 5.182512000000001e-06p with accuracy 70%. Messages: +2024-05-29 16:51:55 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:55 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:55 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:55 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:55 INFO +2024-05-29 16:51:55 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO CactiSRAM estimated 2.6065000000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:51:56 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:56 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:51:56 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwa4nrm4g +2024-05-29 16:51:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp56i5k40c +2024-05-29 16:51:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpwa4nrm4g >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp56i5k40c 2>&1 +2024-05-29 16:51:56 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:56 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.05655207999999999p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:51:56 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:51:56 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:51:56 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_20498.cfg +2024-05-29 16:51:56 INFO | Crossbar minimum latency is 2.808 ns to read 8.0 columns at once. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:56 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:56 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 1.4807179999999997e-06p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.03243378p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:51:56 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:51:56 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:51:56 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:51:56 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:51:56 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_20498.cfg +2024-05-29 16:51:56 INFO | Crossbar minimum latency is 2.808 ns to read 8.0 columns at once. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.03243378p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:56 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:56 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 2.9614360000000003e-06p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.03243378p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:56 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:56 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 1.4807179999999997e-06p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:56 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for fpadder(exponent=8, mantissa=24, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Aladdin_table estimated 16.679p with accuracy 70%. +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for fpmultiplier(exponent=8, mantissa=24, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).multiply(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Aladdin_table estimated 35.3p with accuracy 70%. +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for fpadder(exponent=8, mantissa=24, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Aladdin_table estimated 0.159p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO ENERGY ESTIMATION for fpmultiplier(exponent=8, mantissa=24, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Aladdin_table estimated 0.3595236p with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 WARNING No action counts are specified as yaml input +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=32, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=32, INPUT_WEIGHT_DATAWIDTH=32, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:51:56 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:51:56 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=32, INPUT_WEIGHT_DATAWIDTH=32, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:51:56 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=14, meshY=1, version=0.4, PSUM_DATAWIDTH=32, INPUT_WEIGHT_DATAWIDTH=32, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:51:56 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO CactiSRAM estimated 4.29589e-07 with accuracy 80%. Messages: +2024-05-29 16:51:56 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:56 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:56 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgqxm7726 +2024-05-29 16:51:56 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjrj5pk1d +2024-05-29 16:51:56 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:56 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpgqxm7726 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjrj5pk1d 2>&1 +2024-05-29 16:51:56 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:56 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 81.44387999999998u^2 with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:56 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:56 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 23.26968u^2 with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:56 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:56 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 46.53936u^2 with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:56 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:51:56 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:56 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:56 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:56 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:56 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Neurosim Plug-In estimated 23.26968u^2 with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:56 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for fpadder(exponent=8, mantissa=24, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Aladdin_table estimated 2060.0u^2 with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO +2024-05-29 16:51:56 INFO AREA ESTIMATION for fpmultiplier(exponent=8, mantissa=24, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:56 INFO Aladdin_table estimated 2060.0u^2 with accuracy 70%. Messages: +2024-05-29 16:51:56 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:56 INFO flattened architecture is saved to: +2024-05-29 16:51:56 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:51:56 INFO energy reference table is saved to: +2024-05-29 16:51:56 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:51:56 INFO energy reference table summary is saved to: +2024-05-29 16:51:56 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:51:56 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:51:56 INFO area reference table is saved to: +2024-05-29 16:51:56 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:51:56 INFO area reference table summary is saved to: +2024-05-29 16:51:56 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..e2653b99 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,269 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 32 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 32 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 32 + datawidth: 32 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 1.0 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.1875 + dynamic_energy_scale: 0.2709823421926786 + static_energy_scale: 0.1875 + n_rdwr_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 32 + datawidth: 32 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 192 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 32 + update_fifo_depth: 2 + datawidth: 32 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 1.0 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.25 + dynamic_energy_scale: 0.33915108186191795 + static_energy_scale: 0.25 + n_rdwr_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.mac[1..168] + class: fpmac + attributes: + multiplier_width: 32 + adder_width: 32 + datawidth: 32 + has_power_gating: false + meshX: 14 + meshY: 12 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 32 + INPUT_WEIGHT_DATAWIDTH: 32 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..9dadf965 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 32 M 16 R 1 S 1 N 1 P 7 Q 4 +CQPM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 1 M 1 R 1 S 1 N 1 P 8 Q 1 +P +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 14 +Q +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 4 M 1 R 1 S 3 N 1 P 1 Q 1 +SC +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 1 M 1 R 3 S 1 N 1 P 1 Q 1 +R +t0 +C 1 M 16 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.oaves.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/fpmac/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/parsed-processed-input.yaml new file mode 100644 index 00000000..c4c26a47 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/parsed-processed-input.yaml @@ -0,0 +1,614 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + technology: "45nm" + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + required_actions: + - leak + - update + - write + - read + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + datawidth: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - type: temporal + permutation: N + target: shared_glb + - type: spatial + factors: N=1,C=1,P=1,R=1,S=1 + permutation: NCPRSQM + split: 7 + target: inter_PE_column_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + factors: N=1,P=1,Q=1,R=1 + permutation: NPQRSCM + split: 4 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + bypass: + - Outputs + - Weights + target: ifmap_spad + - permutation: NMCPQRS + factors: N=1,M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + bypass: + - Inputs + - Outputs + target: weights_spad + - permutation: NMPQSCR + factors: N=1,M=1,P=1,Q=1,S=1 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + bypass: + - Inputs + - Weights + target: psum_spad + - permutation: NCPQRSM + factors: N=1,C=1,R=1,S=1,P=1,Q=1 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: fpmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: fpadder + class: fpadder + attributes: + exponent: 8 + mantissa: adder_width - exponent + - name: fpmultiplier + class: fpmultiplier + attributes: + exponent: 8 + mantissa: multiplier_width - exponent + actions: + - name: compute + subcomponents: + - name: fpadder + actions: + - name: add + - name: fpmultiplier + actions: + - name: multiply + - name: leak + subcomponents: + - name: fpadder + actions: + - name: leak + - name: fpmultiplier + actions: + - name: leak + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - delay + - energy + version: '0.4' + live_status: false + num_threads: 8 + timeout: 15000 + victory_condition: 500 + algorithm: random_pruned + max_permutations_per_if_visit: 16 + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..b7d7e529 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 429751.88776 + - name: system_top_level.ifmap_spad[1..168] + area: 151.940565 + - name: system_top_level.weights_spad[1..168] + area: 12639.81936 + - name: system_top_level.psum_spad[1..168] + area: 268.17742 + - name: system_top_level.mac[1..168] + area: 417.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..415cd28f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.shared_glb[1..1] + area: 429751.88776 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 151.940565 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 12639.81936 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 268.17742 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 417.0 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..aa4778ba --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 26.121552 + - name: read + arguments: {} + energy: 32.342452 + - name: leak + arguments: {} + energy: 0.003351 + - name: update + arguments: {} + energy: 26.121552 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.271902 + - name: read + arguments: {} + energy: 0.310924 + - name: leak + arguments: {} + energy: 0.000154 + - name: update + arguments: {} + energy: 0.271902 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 2.861554 + - name: read + arguments: {} + energy: 3.005554 + - name: leak + arguments: {} + energy: 0.002416 + - name: update + arguments: {} + energy: 2.861554 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.336188 + - name: read + arguments: {} + energy: 0.385026 + - name: leak + arguments: {} + energy: 0.000204 + - name: update + arguments: {} + energy: 0.336188 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.315 + - name: leak + arguments: {} + energy: 0.0036 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..1e5693bb --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + energy: 0.0 + - name: update + energy: 512.0 + - name: write + energy: 512.0 + - name: read + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 26.121552 + - name: read + energy: 32.342452 + - name: leak + energy: 0.003351 + - name: update + energy: 26.121552 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.271902 + - name: read + energy: 0.310924 + - name: leak + energy: 0.000154 + - name: update + energy: 0.271902 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 2.861554 + - name: read + energy: 3.005554 + - name: leak + energy: 0.002416 + - name: update + energy: 2.861554 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.336188 + - name: read + energy: 0.385026 + - name: leak + energy: 0.000204 + - name: update + energy: 0.336188 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.315 + - name: leak + energy: 0.0036 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.accelergy.log b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..4a18fe99 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.accelergy.log @@ -0,0 +1,928 @@ +2024-05-29 16:51:24 INFO _ _ +2024-05-29 16:51:24 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 16:51:24 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 16:51:24 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 16:51:24 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 16:51:24 INFO |___/ |___/ +2024-05-29 16:51:24 INFO generating outputs according to the following specified output flags... +2024-05-29 16:51:24 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 16:51:24 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 16:51:24 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 16:51:24 INFO config file located: +2024-05-29 16:51:24 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 16:51:24 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 16:51:24 WARNING Please update the file to the latest version. +2024-05-29 16:51:24 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/parsed-processed-input.yaml for architecture info +2024-05-29 16:51:24 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/parsed-processed-input.yaml for compound_components info +2024-05-29 16:51:24 INFO Adding required action "leak" to class DRAM +2024-05-29 16:51:24 INFO Adding required action "update" to class DRAM +2024-05-29 16:51:24 INFO Adding required action "write" to class DRAM +2024-05-29 16:51:24 INFO Adding required action "read" to class DRAM +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_SRAM attributes"memory_width" as "max(32, width)" = 64. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_SRAM attributes"memory_depth" as "max(64, depth)" = 16384. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_SRAM attributes"widthscale" as "width / memory_width" = 1.0. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_SRAM attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_SRAM attributes"real_depth" as "depth" = 16384. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_SRAM attributes"area_scale" as "widthscale * depthscale" = 1.0. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_SRAM attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 1.0. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_SRAM attributes"static_energy_scale" as "area_scale" = 1.0. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.1875. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 12. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.09375. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.1354911710963393. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.09375. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 192. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 1.0. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 192. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.5. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.5. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.5. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"memory_width" as "max(32, width)" = 32. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"memory_depth" as "max(64, depth)" = 64. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"widthscale" as "width / memory_width" = 0.5. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"depthscale" as "depth / memory_depth" = 0.25. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"real_depth" as "depth" = 16. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"area_scale" as "widthscale * depthscale" = 0.125. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"dynamic_energy_scale" as "widthscale * (depthscale ** (1.56 / 2))" = 0.16957554093095897. +2024-05-29 16:51:24 INFO Calculated Architecture class smartbuffer_RF attributes"static_energy_scale" as "area_scale" = 0.125. +2024-05-29 16:51:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 16:51:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 16:51:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 16:51:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 16:51:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 16:51:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 16:51:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 16:51:24 INFO Getting all estimators in module +2024-05-29 16:51:24 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 16:51:24 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 16:51:24 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 16:51:24 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 16:51:24 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 16:51:24 INFO Found estimator plug-in: dummy_table () +2024-05-29 16:51:24 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 16:51:24 INFO Found estimator plug-in: Library () +2024-05-29 16:51:24 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 16:51:24 INFO Found estimator plug-in: CactiCache () +2024-05-29 16:51:24 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 16:51:24 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 16:51:24 INFO Calculated storage."width" as "memory_width" = 64. +2024-05-29 16:51:24 INFO Calculated storage."depth" as "memory_depth" = 16384. +2024-05-29 16:51:24 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:51:24 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated storage.area_scale as "area_scale" = 1.0. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 14. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 14. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:24 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:24 INFO Calculated action leak energy_scale as "static_energy_scale" = 1.0. +2024-05-29 16:51:24 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 1.0. +2024-05-29 16:51:24 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:51:24 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:51:24 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:51:24 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated storage.area_scale as "area_scale" = 0.09375. +2024-05-29 16:51:24 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:51:24 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.09375. +2024-05-29 16:51:24 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:51:24 INFO Calculated system_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated system_top_level.ifmap_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.1354911710963393. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:51:24 INFO Calculated storage."depth" as "memory_depth" = 192. +2024-05-29 16:51:24 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:51:24 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated storage.area_scale as "area_scale" = 0.5. +2024-05-29 16:51:24 INFO Calculated list index expression as "width*depth" = 6144. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:24 INFO Calculated storage.storage[1..6144]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated storage.comparator[1..192]."n_bits" as "max(1, ceil(log2(depth)))" = 8. +2024-05-29 16:51:24 INFO Calculated storage.comparator[1..192]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 8. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:24 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:24 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.5. +2024-05-29 16:51:24 INFO Calculated list index expression as "width*depth" = 6144. +2024-05-29 16:51:24 INFO Calculated system_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:24 INFO Calculated system_top_level.weights_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.5. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 192. +2024-05-29 16:51:24 INFO Calculated storage."width" as "memory_width" = 32. +2024-05-29 16:51:24 INFO Calculated storage."depth" as "memory_depth" = 64. +2024-05-29 16:51:24 INFO Calculated storage."n_rdwr_ports" as "n_rdwr_ports" = 1. +2024-05-29 16:51:24 INFO Calculated storage."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated storage.area_scale as "area_scale" = 0.125. +2024-05-29 16:51:24 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated storage.storage[1..2048]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated storage.comparator[1..64]."n_bits" as "max(1, ceil(log2(depth)))" = 6. +2024-05-29 16:51:24 INFO Calculated storage.comparator[1..64]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."n_bits" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."precision" as "max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1" = 4. +2024-05-29 16:51:24 INFO Calculated address_generators[0..1]."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated action read energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated action leak energy_scale as "static_energy_scale" = 0.125. +2024-05-29 16:51:24 INFO Calculated list index expression as "width*depth" = 2048. +2024-05-29 16:51:24 INFO Calculated system_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated system_top_level.psum_spad[1..168].leak.leak."global_cycle_seconds" as "global_cycle_seconds" = 1e-09. +2024-05-29 16:51:24 INFO Calculated action write energy_scale as "dynamic_energy_scale" = 0.16957554093095897. +2024-05-29 16:51:24 INFO Calculated list index expression as "width" = 32. +2024-05-29 16:51:24 INFO Calculated list index expression as "depth" = 64. +2024-05-29 16:51:24 INFO Calculated intadder."width" as "adder_width" = 16. +2024-05-29 16:51:24 INFO Calculated intmultiplier."width_a" as "multiplier_width" = 8. +2024-05-29 16:51:24 INFO Calculated intmultiplier."width_b" as "multiplier_width" = 8. +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=16, INPUT_WEIGHT_DATAWIDTH=8, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:51:24 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:51:24 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:24 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:51:24 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=16, INPUT_WEIGHT_DATAWIDTH=8, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:51:24 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:51:24 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=16, INPUT_WEIGHT_DATAWIDTH=8, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:51:24 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:51:24 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=16, INPUT_WEIGHT_DATAWIDTH=8, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 16:51:24 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 16:51:24 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:24 INFO CactiSRAM estimated 2.6065000000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:51:24 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:51:24 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:24 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpp1ymv_i_ +2024-05-29 16:51:24 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpztyt3j9g +2024-05-29 16:51:24 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:24 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpp1ymv_i_ >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpztyt3j9g 2>&1 +2024-05-29 16:51:24 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:24 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:24 INFO Neurosim Plug-In estimated 0.05655207999999999p with accuracy 70%. Messages: +2024-05-29 16:51:24 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:24 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:51:24 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:51:24 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:51:24 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:51:24 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:51:24 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_19705.cfg +2024-05-29 16:51:24 INFO | Crossbar minimum latency is 2.808 ns to read 8.0 columns at once. +2024-05-29 16:51:24 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:24 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:24 INFO CactiSRAM estimated 3.2285900000000004e-11 with accuracy 80%. Messages: +2024-05-29 16:51:24 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.read. Arguments used: () +2024-05-29 16:51:24 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:24 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6lb_144v +2024-05-29 16:51:24 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_gpa3gfr +2024-05-29 16:51:24 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:24 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6lb_144v >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_gpa3gfr 2>&1 +2024-05-29 16:51:24 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:24 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:24 INFO Neurosim Plug-In estimated 0.05655207999999999p with accuracy 70%. Messages: +2024-05-29 16:51:24 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:24 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:24 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:24 INFO +2024-05-29 16:51:24 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO CactiSRAM estimated 3.34055e-15 with accuracy 80%. Messages: +2024-05-29 16:51:25 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:25 INFO | Unused arguments (action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 16:51:25 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:25 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7rz0t31j +2024-05-29 16:51:25 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjd_bdi9o +2024-05-29 16:51:25 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:25 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp7rz0t31j >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpjd_bdi9o 2>&1 +2024-05-29 16:51:25 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:25 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:25 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 1.65095 +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 5.182512000000001e-06p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO CactiSRAM estimated 2.6065000000000003e-11 with accuracy 80%. Messages: +2024-05-29 16:51:25 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:25 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for SRAM.write. Arguments used: () +2024-05-29 16:51:25 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:25 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_gk873lq +2024-05-29 16:51:25 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl5ef45yy +2024-05-29 16:51:25 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:25 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_gk873lq >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl5ef45yy 2>&1 +2024-05-29 16:51:25 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:25 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.05655207999999999p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:51:25 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:51:25 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:51:25 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_19705.cfg +2024-05-29 16:51:25 INFO | Crossbar minimum latency is 2.808 ns to read 8.0 columns at once. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:25 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:25 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 1.4807179999999997e-06p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.03243378p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO | Building a crossbar with cell file /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/cells/placeholder.cell +2024-05-29 16:51:25 INFO | Neurosim Plugin parsing cell file... +2024-05-29 16:51:25 INFO | Failed to calculate "widthSRAMCellNMOS:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -SRAMCellNMOSWidth (F): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "widthSRAMCellPMOS:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -SRAMCellPMOSWidth (F): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "minSenseVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -MinSenseVoltage (mV): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "accessTransistorResistance:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -AccessTransistorResistance (ohm): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "WriteVoltage:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -WriteVoltage (V): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "SET_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -SetCurrent (uA): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "SET_POWER". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -SetPower (uW): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "READ_CURRENT". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -ReadCurrent (uA): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "READ_ENERGY". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -ReadEnergy (pJ): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "cellCapacitanceMultiplier:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -CellCapacitanceMultiplier: in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "cellCapacitanceAdjust:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -CellCapacitanceAdjust (F): in cell file. +2024-05-29 16:51:25 INFO | Failed to calculate "deviceRoadmap:". Ignore if this value is not needed. +2024-05-29 16:51:25 INFO | Could not find -DeviceRoadmap -1LP 1HP 2LSTP: in cell file. +2024-05-29 16:51:25 INFO | Running /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/NeuroSim/main /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim_input_19705.cfg +2024-05-29 16:51:25 INFO | Crossbar minimum latency is 2.808 ns to read 8.0 columns at once. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.03243378p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:25 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:25 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 2.9614360000000003e-06p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.03243378p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.009p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.read. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.009, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.leak. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_register leak has been scaled 1.0x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:25 INFO | aladdin_register leak has been scaled 1.0x +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 2.51e-05p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.leak. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=2.51e-05, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_comparator leak has been scaled 1.0x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:25 INFO | aladdin_comparator leak has been scaled 1.0x +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 1.4807179999999997e-06p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_register.write. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_register energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_register energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).compare(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.02947p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_comparator.compare. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.02947, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_comparator energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_comparator energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Neurosim Plug-In estimated 0.016354909999999997p with accuracy 70%. Messages: +2024-05-29 16:51:25 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:25 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:25 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling width from 32 to 16 +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 16:51:25 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.21p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_adder.read. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.21, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 1x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 16:51:25 INFO | aladdin_adder energy has been scaled 1x +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0012p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0024, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 0.5x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling width from 32 to 16 +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x leak +2024-05-29 16:51:25 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:25 INFO | aladdin_adder leak has been scaled 0.5x +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO ENERGY ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:25 INFO Library estimated 0.0024p with accuracy 90%. Messages: +2024-05-29 16:51:25 INFO | Found 1 entries for aladdin_adder.leak. +2024-05-29 16:51:25 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | value=0.0024, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak', 'aladdin_adder leak has been scaled 1.0x'] +2024-05-29 16:51:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:25 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1.0x leak +2024-05-29 16:51:25 INFO | aladdin_adder leak has been scaled 1.0x +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 WARNING No action counts are specified as yaml input +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=16, INPUT_WEIGHT_DATAWIDTH=8, global_cycle_seconds=1e-09, technology=45nm, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:51:25 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 16:51:25 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, PSUM_DATAWIDTH, INPUT_WEIGHT_DATAWIDTH, global_cycle_seconds, technology, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, PSUM_DATAWIDTH=16, INPUT_WEIGHT_DATAWIDTH=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:51:25 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=14, meshY=1, version=0.4, PSUM_DATAWIDTH=16, INPUT_WEIGHT_DATAWIDTH=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 16:51:25 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 16:51:25 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:25 INFO +2024-05-29 16:51:25 INFO AREA ESTIMATION for SRAM(width=64, depth=16384, n_rdwr_ports=1, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO CactiSRAM estimated 4.29589e-07 with accuracy 80%. Messages: +2024-05-29 16:51:26 INFO | Unused arguments (n_rdwr_ports, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (width, depth, technology) +2024-05-29 16:51:26 INFO | Calling CACTI with cache_size=131072 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-05-29 16:51:26 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppga_8wgn +2024-05-29 16:51:26 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp51cux54w +2024-05-29 16:51:26 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 16:51:26 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmppga_8wgn >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp51cux54w 2>&1 +2024-05-29 16:51:26 INFO | Cache bandwidth: 8.0 bits/cycle +2024-05-29 16:51:26 INFO | Cache bandwidth: 38.765559223477396 bits/second +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for intadder(n_bits=14, precision=14, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Neurosim Plug-In estimated 81.44387999999998u^2 with accuracy 70%. Messages: +2024-05-29 16:51:26 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:26 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:51:26 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:26 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:26 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:51:26 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:26 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:26 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Neurosim Plug-In estimated 23.26968u^2 with accuracy 70%. Messages: +2024-05-29 16:51:26 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:26 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:51:26 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:26 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:26 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for aladdin_comparator(n_bits=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:51:26 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:26 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:26 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for intadder(n_bits=8, precision=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Neurosim Plug-In estimated 46.53936u^2 with accuracy 70%. Messages: +2024-05-29 16:51:26 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:26 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for aladdin_register(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Library estimated 5.98u^2 with accuracy 90%. Messages: +2024-05-29 16:51:26 INFO | Found 4 entries for aladdin_register. +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'write', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'leak', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0', 'area(um^2)': '5.98E+00', 'action': 'update', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=5.98, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_register area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '1', 'dynamic energy(pJ)': '0.009', 'area(um^2)': '5.98E+00', 'action': 'read', 'name': 'aladdin_register', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:26 INFO | Scaled aladdin_register.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:26 INFO | aladdin_register area has been scaled 1x +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for aladdin_comparator(n_bits=6, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Library estimated 71.0u^2 with accuracy 90%. Messages: +2024-05-29 16:51:26 INFO | Found 5 entries for aladdin_comparator. +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'read', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '2.51E-05', 'area(um^2)': '71', 'action': 'leak', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'update', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0', 'area(um^2)': '71', 'action': 'write', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=71.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_comparator area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy(pJ)': '0.02947', 'area(um^2)': '71', 'action': 'compare', 'name': 'aladdin_comparator', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:26 INFO | Scaled aladdin_comparator.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:26 INFO | aladdin_comparator area has been scaled 1x +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for intadder(n_bits=4, precision=4, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Neurosim Plug-In estimated 23.26968u^2 with accuracy 70%. Messages: +2024-05-29 16:51:26 INFO | WARN: Non-numeric 45nm for parameter technology. Using 45 instead. +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO Plug-ins provided accuracy, but failed to estimate: +2024-05-29 16:51:26 INFO | Aladdin_table with accuracy 70% estimating value: KeyError: 'width' +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 16:51:26 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 16:51:26 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | Scaling width from 32 to 16 +2024-05-29 16:51:26 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:26 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 16:51:26 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:26 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO +2024-05-29 16:51:26 INFO AREA ESTIMATION for aladdin_adder(width_a=8, width_b=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 16:51:26 INFO Library estimated 278.0u^2 with accuracy 90%. Messages: +2024-05-29 16:51:26 INFO | Found 5 entries for aladdin_adder. +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | value=278.0, matching_attrs=3, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 1x'] +2024-05-29 16:51:26 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 16:51:26 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 16:51:26 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 16:51:26 INFO | aladdin_adder area has been scaled 1x +2024-05-29 16:51:26 INFO | Multiplying by n_instances 1 +2024-05-29 16:51:26 INFO flattened architecture is saved to: +2024-05-29 16:51:26 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 16:51:26 INFO energy reference table is saved to: +2024-05-29 16:51:26 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 16:51:26 INFO energy reference table summary is saved to: +2024-05-29 16:51:26 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 16:51:26 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 16:51:26 INFO area reference table is saved to: +2024-05-29 16:51:26 INFO ./timeloop-mapper.ART.yaml +2024-05-29 16:51:26 INFO area reference table summary is saved to: +2024-05-29 16:51:26 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..7823975b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,269 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - leak + - update + - write + - read + enabled: true + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + datawidth: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + power_gated_at: null + version: '0.4' + PSUM_DATAWIDTH: 16 + INPUT_WEIGHT_DATAWIDTH: 8 + global_cycle_seconds: 1e-09 + technology: "45nm" + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..6aa52069 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 4 M 4 R 1 S 1 N 1 P 7 Q 4 +MPCQ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 4 M 2 R 1 S 1 N 1 P 8 Q 1 +PCM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 14 +Q +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 1 M 4 R 1 S 3 N 1 P 1 Q 1 +SM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 8 M 1 R 3 S 1 N 1 P 1 Q 1 +CR +t0 +C 1 M 8 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.oaves.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/ref-output/intmac/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/run_example.py b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/run_example.py new file mode 100644 index 00000000..96794095 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop+accelergy/run_example.py @@ -0,0 +1,87 @@ +import os +import inspect + +THIS_SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) + +import pytimeloop.timeloopfe.v4 as tl + + +def run_exercise_intmac(out_dir: str = "output"): + start_dir = THIS_SCRIPT_DIR + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/arch.yaml"), + os.path.join(start_dir, "arch/components/*.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + os.path.join(start_dir, "mapper/*.yaml"), + jinja_parse_data={ + "mac_class": "intmac", + "input_weight_datawidth": 8, + "psum_datawidth": 16, + }, + ) + tl.call_mapper(spec, output_dir=os.path.join(start_dir, f"{out_dir}/intmac")) + + +def run_exercise_fpmac(out_dir: str = "output"): + start_dir = THIS_SCRIPT_DIR + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/arch.yaml"), + os.path.join(start_dir, "arch/components/*.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + os.path.join(start_dir, "mapper/*.yaml"), + jinja_parse_data={ + "mac_class": "fpmac", + "input_weight_datawidth": 32, + "psum_datawidth": 32, + }, + ) + tl.call_mapper(spec, output_dir=os.path.join(start_dir, f"{out_dir}/fpmac")) + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser(description="Run timeloop exercises") + parser.add_argument( + "exercise", + type=str, + help="Exercise to run. 'All' to run all exercises", + default="", + nargs="*", + ) + parser.add_argument( + "--generate-ref-outputs", action="store_true", help="Generate reference output" + ) + parser.add_argument( + "--clear-outputs", action="store_true", help="Clear output directories" + ) + args = parser.parse_args() + + exercise_list = [ + "intmac", + "fpmac", + ] + + if args.clear_outputs: + path = os.path.abspath(THIS_SCRIPT_DIR) + os.system(f"cd {path} ; rm -rf output") + os.system(f"cd {path} ; rm -rf ref-output") + exit() + + def run(target): + func = globals()[f"run_exercise_{target}"] + # Print out the function contents so users can see what the function does + print("\n\n" + "=" * 80) + print(f"Calling exercise {target}. Code is:") + print(inspect.getsource(func)) + if args.generate_ref_outputs: + func("ref-output") + else: + func() + + for e in args.exercise: + if e.lower() == "all": + for e in exercise_list: + run(e) + else: + run(e) diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/.gitignore b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/.gitignore new file mode 100644 index 00000000..2e7b003e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/.gitignore @@ -0,0 +1,7 @@ +*.log +*/timeloop-model.*.yaml +*/timeloop-model.*.txt +*/timeloop-model.*.xml +*/timeloop-mapper.*.yaml +*/timeloop-mapper.*.txt +*/timeloop-mapper.*.xml diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/README.md new file mode 100644 index 00000000..d6e36115 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/README.md @@ -0,0 +1,35 @@ +Exercise 0 +========== + +## Overview + +This exercise runs a 1D convolution on a toy architecture with a single PE consisting of a small register and a scalar MACC unit. + +## Steps + +To run the exercise, we need to provide 3 inputs to the Timeloop model: +- An architecture. +- A problem. +- A mapping. + +We have provided a separate `.yaml` file for each of these inputs arranged into different sub-directories. To run the exercise, type the following from the exercises/timeloop directory: + +``` + python3 run_example.py 00 +``` + +This generates the following outputs: +- Overall performance (in terms of hardware utilization fraction) and energy efficiency (in terms of pJ/MACC) are reported on `stdout`. +- Detailed statistics are saved to `timeloop-model.stats.txt`. +- A pretty-printed form of the mapping is saved to `timeloop-model.map.txt`. + +## Observations + +- Look at the structure of the `timeloop-model.stats.txt` file. + - It is divided into two main sections, one for Storage and Arithmetic levels, and the other for Networks connecting those levels. The Storage and Arithmetic section is itself divided into subsections, one for each Arithmetic and Storage level in the hardware topology. + - Each section reports the level's specs (which may be user-defined, derived or default), followed by statistics from the model's execution of the mapping. + - Some statistics are separated out into sub-sections for each data-space (such as Weights, Inputs, etc.) + - In these exercises, some statistics are reported as 0 because we are using a simple technology model plugin for Accelergy for this tutorial. + - At the tail-end of the file are some aggregate statistics representing net performance and energy-efficiency. In many studies, we simply `tail` the stats file to obtain these summary statistics. +- The only storage level is `Buffer`, which both acts as the backing store for all operand and result data_spaces, as well as the sole operand source and result destination for each arithmetic operation. +- Note that tiles of "Outputs" are actually partial sums. Accesses to partial sums inside buffers are Read-Modify-Update operations. Look at the number of reads and updates of Outputs at the Buffer. Are they equal? diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/arch/1level.arch.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/arch/1level.arch.yaml new file mode 100644 index 00000000..5cb9a9f9 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/arch/1level.arch.yaml @@ -0,0 +1,22 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: accelerator + attributes: + technology: "40nm" + global_cycle_seconds: 1e-9 + + - !Component + name: Buffer + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + + - !Component + name: MACC + class: intmac + attributes: + width: 8 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/map/conv1d-1level.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/map/conv1d-1level.map.yaml new file mode 100644 index 00000000..ee5c1eb1 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/map/conv1d-1level.map.yaml @@ -0,0 +1,6 @@ +mapping: + - target: Buffer + type: temporal + factors: R=3 P=16 + permutation: RP + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/parsed-processed-input.yaml new file mode 100644 index 00000000..54e90a85 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/parsed-processed-input.yaml @@ -0,0 +1,115 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: accelerator_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - leak + - write + - update + - read + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D + dimensions: + - R + - P + data_spaces: + - name: Weights + projection: + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - P + read_write: true + coefficients: [] + instance: + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: Buffer + type: temporal + factors: R=3,P=16 + permutation: RP +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ART.yaml new file mode 100644 index 00000000..433e594e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ART.yaml @@ -0,0 +1,7 @@ +ART: + version: '0.4' + tables: + - name: accelerator_top_level.Buffer[1..1] + area: 845.98 + - name: accelerator_top_level.MACC[1..1] + area: 466.375 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..903e111d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ART_summary.yaml @@ -0,0 +1,9 @@ +ART_summary: + version: '0.4' + table_summary: + - name: accelerator_top_level.Buffer[1..1] + area: 845.98 + primitive_estimations: Aladdin_table + - name: accelerator_top_level.MACC[1..1] + area: 466.375 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT.yaml new file mode 100644 index 00000000..b4b40ff5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT.yaml @@ -0,0 +1,32 @@ +ERT: + version: '0.4' + tables: + - name: accelerator_top_level.Buffer[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0003712 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: accelerator_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..d64dc373 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT_summary.yaml @@ -0,0 +1,23 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: accelerator_top_level.Buffer[1..1] + actions: + - name: leak + energy: 0.0003712 + - name: write + energy: 0.36264 + - name: update + energy: 0.36264 + - name: read + energy: 0.36264 + primitive_estimation(s): + - name: accelerator_top_level.Buffer[1..1] + estimator: Aladdin_table + - name: accelerator_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: accelerator_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..0d8de721 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,52 @@ +architecture: + version: '0.4' + local: + - name: accelerator_top_level.Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - write + - update + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: accelerator_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.map.tensella.txt new file mode 100644 index 00000000..bf198a60 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.map.tensella.txt @@ -0,0 +1,3 @@ +t0 +R 3 P 16 +RP diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/prob/conv1d.prob.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/prob/conv1d.prob.yaml new file mode 100644 index 00000000..62074e25 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/prob/conv1d.prob.yaml @@ -0,0 +1,20 @@ +problem: + version: 0.4 + shape: + name: Conv1D + dimensions: [ R, P ] + data_spaces: + - name: Weights + projection: + - [ [R] ] + - name: Inputs + projection: + - [ [R], [P] ] + - name: Outputs + projection: + - [ [P] ] + read_write: True + + instance: + R: 3 + P: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/parsed-processed-input.yaml new file mode 100644 index 00000000..40080007 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/parsed-processed-input.yaml @@ -0,0 +1,115 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: PE_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D + dimensions: + - R + - P + data_spaces: + - name: Weights + projection: + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - P + read_write: true + coefficients: [] + instance: + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: Buffer + type: temporal + factors: R=3,P=16 + permutation: RP +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ART.yaml new file mode 100644 index 00000000..c92b1f67 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ART.yaml @@ -0,0 +1,7 @@ +ART: + version: '0.4' + tables: + - name: PE_top_level.Buffer[1..1] + area: 887.84 + - name: PE_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..93611d6c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ART_summary.yaml @@ -0,0 +1,9 @@ +ART_summary: + version: '0.4' + table_summary: + - name: PE_top_level.Buffer[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: PE_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ERT.yaml new file mode 100644 index 00000000..db8ecb19 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ERT.yaml @@ -0,0 +1,32 @@ +ERT: + version: '0.4' + tables: + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..ffcfe7b1 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.ERT_summary.yaml @@ -0,0 +1,23 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: PE_top_level.Buffer[1..1] + estimator: Aladdin_table + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: PE_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..232fa253 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,48 @@ +architecture: + version: '0.4' + local: + - name: PE_top_level.Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..bf198a60 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/ref-output/timeloop-model.map.tenssella.txt @@ -0,0 +1,3 @@ +t0 +R 3 P 16 +RP diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/README.md new file mode 100644 index 00000000..da75aafa --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/README.md @@ -0,0 +1,37 @@ +Exercise 1 +========== + +## Overview + +In this exercise, we continue to use the 1D convolution problem, but we upgrade the architecture to use a more realistic 2-level storage hierarchy with a large backing SRAM (called `MainMemory`) and a small register file (called `Buffer`) to exploit temporal reuse. We provide 2 example mappings -- **Weight Stationary** and **Output Stationary** -- that exploit reuse in different ways. + +## Steps and Observations + +1. Recall that to run the Timeloop model, we need to provide an architecture, a problem and a single mapping. Thus, to run the Weight Stationary mapping, type the following from the exercises/timeloop directory: + +We have provided a separate `.yaml` file for each of these inputs arranged into different sub-directories. To run the exercise, type the following from the exercises/timeloop directory: + + ``` + python3 run_example.py 01_ws + ``` + + As before, Timeloop produces a `timeloop-model.stats.txt` file with detailed execution statistics. However, also pay attention to the `timeloop-model.map.txt` file. It contains a pretty-formatted version of the loop nest corresponding to the input mapping, annotated with tile sizes for each data-space at each storage level. This file will become extremely useful later when we run the automated mapper. + + > Sidenote: Subsequent `timeloop-model` invocations will overwrite output files (`timeloop-model.stats.txt` and `timeloop-model.map.txt`). You need to manually rename and save these output files if you want to retain them for comparison. For this exercise, you may not need to do this because the summary statistics on `stdout` are sufficient. + +2. Now run the Output Stationary mapping (note that the architecture and problem input files are the same as the previous invocation): + + ``` + python3 run_example.py 01_os + ``` + +3. Compare the statistics from the two runs. Do you see a difference? Why or why not? Do the access count and buffer utilization numbers match the expected numbers from the tables in the Powerpoint slides? + +4. Now let's try something interesting. Edit the `prob/conv1d.prob.yaml` file and change the problem size from `P:16` to `P:1920`. Next, edit both mappings to reflect this change: a mapping _must_ cover the complete iteration space of the original problem, otherwise it is illegal (Timeloop will complain). Now try running both mappings as before. + - Hmmmm... what do you think happened here? Can you change any of the _architecture_ specs to make the mappings work? + + If you decide to increase the sizes of any storage structures, **pay attention to their `class`**, which represents the underlying design used to implement the structure. Different implementations have different sweet-spots in terms of energy efficiency. Try changing the class (look for hints elsewhere in the same YAML file) if you find energy costs to be scaling in undesirable ways. + + > Sidenote: you will learn more about these classes in the **Accelergy** section of the tutorial. + +Does this exercise tell you anything about the relative pros and cons of these two mappings? diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/arch/2level.arch.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/arch/2level.arch.yaml new file mode 100644 index 00000000..f3eda874 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/arch/2level.arch.yaml @@ -0,0 +1,30 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: System + attributes: + technology: "40nm" + global_cycle_seconds: 1e-9 + + - !Component + name: MainMemory + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + + - !Component + name: Buffer + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + + - !Component + name: MACC + class: intmac + attributes: + width: 8 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/map/conv1d-2level-os.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/map/conv1d-2level-os.map.yaml new file mode 100644 index 00000000..69eb5c04 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/map/conv1d-2level-os.map.yaml @@ -0,0 +1,11 @@ +mapping: + - target: MainMemory + type: temporal + factors: R=1 P=16 + permutation: PR + + - target: Buffer + type: temporal + factors: R=3 P=1 + permutation: RP + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/map/conv1d-2level-ws.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/map/conv1d-2level-ws.map.yaml new file mode 100644 index 00000000..0e6cdc09 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/map/conv1d-2level-ws.map.yaml @@ -0,0 +1,21 @@ +mapping: + # 主存储器层映射 - 负责时间维度的卷积核遍历 + - target: MainMemory + type: temporal + factors: R=3 P=1 # R维度完全展开(3个权重),P维度不分块(1) + permutation: RP # 外层循环R,内层循环P + # 效果: 3个时间步,每步处理1个权重与所有输出位置 + + # 缓存层映射 - 负责空间维度的并行计算 + - target: Buffer + type: temporal + factors: R=1 P=16 # R维度不分块(1),P维度完全展开(16个输出) + permutation: PR # 外层循环P,内层循环R + # 效果: 16个并行计算单元,每个处理1个输出位置 + +# Weight Stationary 映射的核心特征: +# 1. 权重复用: 每个权重值被复用16次(P=16) +# 2. 输出累加: 所有输出位置需要保持用于累加 +# 3. 输入滑动: 输入窗口逐步滑动([0:16) → [1:17) → [2:18)) +# 4. 存储代价: 需要大容量输出缓存来存储完整输出向量 + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/parsed-processed-input.yaml new file mode 100644 index 00000000..c9d827d5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/parsed-processed-input.yaml @@ -0,0 +1,143 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - read + - update + - leak + enabled: true + - name: Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - read + - update + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D + dimensions: + - R + - P + data_spaces: + - name: Weights + projection: + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - P + read_write: true + coefficients: [] + instance: + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=16 + permutation: PR + - target: Buffer + type: temporal + factors: R=3,P=1 + permutation: RP +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ART.yaml new file mode 100644 index 00000000..25a79159 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 707084.0 + - name: System_top_level.Buffer[1..1] + area: 845.98 + - name: System_top_level.MACC[1..1] + area: 466.375 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..361d017f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ART_summary.yaml @@ -0,0 +1,12 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.Buffer[1..1] + area: 845.98 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..1] + area: 466.375 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT.yaml new file mode 100644 index 00000000..c03adb34 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT.yaml @@ -0,0 +1,54 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.3531 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.00797208 + - name: System_top_level.Buffer[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0003712 + - name: System_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..7a5663a2 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT_summary.yaml @@ -0,0 +1,36 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: write + energy: 30.8783 + - name: read + energy: 43.3531 + - name: update + energy: 30.8783 + - name: leak + energy: 0.00797208 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiSRAM + - name: System_top_level.Buffer[1..1] + actions: + - name: write + energy: 0.36264 + - name: read + energy: 0.36264 + - name: update + energy: 0.36264 + - name: leak + energy: 0.0003712 + primitive_estimation(s): + - name: System_top_level.Buffer[1..1] + estimator: Aladdin_table + - name: System_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..b22bd6de --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,82 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - read + - update + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - read + - update + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.map.tensella.txt new file mode 100644 index 00000000..c0e9ac5b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.map.tensella.txt @@ -0,0 +1,6 @@ +t1 +R 1 P 16 +P +t0 +R 3 P 1 +R diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/parsed-processed-input.yaml new file mode 100644 index 00000000..2b86b224 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/parsed-processed-input.yaml @@ -0,0 +1,143 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - read + - update + - write + - leak + enabled: true + - name: Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - read + - update + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D + dimensions: + - R + - P + data_spaces: + - name: Weights + projection: + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - P + read_write: true + coefficients: [] + instance: + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=3,P=1 + permutation: RP + - target: Buffer + type: temporal + factors: R=1,P=16 + permutation: PR +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ART.yaml new file mode 100644 index 00000000..25a79159 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 707084.0 + - name: System_top_level.Buffer[1..1] + area: 845.98 + - name: System_top_level.MACC[1..1] + area: 466.375 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..361d017f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ART_summary.yaml @@ -0,0 +1,12 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.Buffer[1..1] + area: 845.98 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..1] + area: 466.375 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT.yaml new file mode 100644 index 00000000..596242a5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT.yaml @@ -0,0 +1,54 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.3531 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.00797208 + - name: System_top_level.Buffer[1..1] + actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0003712 + - name: System_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..70180c12 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT_summary.yaml @@ -0,0 +1,36 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: read + energy: 43.3531 + - name: update + energy: 30.8783 + - name: write + energy: 30.8783 + - name: leak + energy: 0.00797208 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiSRAM + - name: System_top_level.Buffer[1..1] + actions: + - name: read + energy: 0.36264 + - name: update + energy: 0.36264 + - name: write + energy: 0.36264 + - name: leak + energy: 0.0003712 + primitive_estimation(s): + - name: System_top_level.Buffer[1..1] + estimator: Aladdin_table + - name: System_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..e4bef1af --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,82 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - read + - update + - write + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - read + - update + - write + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.map.tensella.txt new file mode 100644 index 00000000..e34f4341 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.map.tensella.txt @@ -0,0 +1,6 @@ +t1 +R 3 P 1 +R +t0 +R 1 P 16 +P diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/prob/conv1d.prob.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/prob/conv1d.prob.yaml new file mode 100644 index 00000000..62074e25 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/prob/conv1d.prob.yaml @@ -0,0 +1,20 @@ +problem: + version: 0.4 + shape: + name: Conv1D + dimensions: [ R, P ] + data_spaces: + - name: Weights + projection: + - [ [R] ] + - name: Inputs + projection: + - [ [R], [P] ] + - name: Outputs + projection: + - [ [P] ] + read_write: True + + instance: + R: 3 + P: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/parsed-processed-input.yaml new file mode 100644 index 00000000..99bd3285 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/parsed-processed-input.yaml @@ -0,0 +1,143 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: PE_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D + dimensions: + - R + - P + data_spaces: + - name: Weights + projection: + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - P + read_write: true + coefficients: [] + instance: + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=16 + permutation: PR + - target: Buffer + type: temporal + factors: R=3,P=1 + permutation: RP +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ART.yaml new file mode 100644 index 00000000..bb5c12d7 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: PE_top_level.MainMemory[1..1] + area: 707084.0 + - name: PE_top_level.Buffer[1..1] + area: 887.84 + - name: PE_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..61c8d865 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ART_summary.yaml @@ -0,0 +1,12 @@ +ART_summary: + version: '0.4' + table_summary: + - name: PE_top_level.MainMemory[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: PE_top_level.Buffer[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: PE_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ERT.yaml new file mode 100644 index 00000000..9394a25d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ERT.yaml @@ -0,0 +1,54 @@ +ERT: + version: '0.4' + tables: + - name: PE_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..f942cfa4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.ERT_summary.yaml @@ -0,0 +1,36 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: PE_top_level.MainMemory[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: PE_top_level.MainMemory[1..1] + estimator: CactiSRAM + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: PE_top_level.Buffer[1..1] + estimator: Aladdin_table + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: PE_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..a3384d2e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,76 @@ +architecture: + version: '0.4' + local: + - name: PE_top_level.MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..c0e9ac5b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/os/timeloop-model.map.tenssella.txt @@ -0,0 +1,6 @@ +t1 +R 1 P 16 +P +t0 +R 3 P 1 +R diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/parsed-processed-input.yaml new file mode 100644 index 00000000..5619d2ba --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/parsed-processed-input.yaml @@ -0,0 +1,143 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: PE_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D + dimensions: + - R + - P + data_spaces: + - name: Weights + projection: + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - P + read_write: true + coefficients: [] + instance: + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=3,P=1 + permutation: RP + - target: Buffer + type: temporal + factors: R=1,P=16 + permutation: PR +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ART.yaml new file mode 100644 index 00000000..bb5c12d7 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: PE_top_level.MainMemory[1..1] + area: 707084.0 + - name: PE_top_level.Buffer[1..1] + area: 887.84 + - name: PE_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..61c8d865 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ART_summary.yaml @@ -0,0 +1,12 @@ +ART_summary: + version: '0.4' + table_summary: + - name: PE_top_level.MainMemory[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: PE_top_level.Buffer[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: PE_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ERT.yaml new file mode 100644 index 00000000..9394a25d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ERT.yaml @@ -0,0 +1,54 @@ +ERT: + version: '0.4' + tables: + - name: PE_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..f942cfa4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.ERT_summary.yaml @@ -0,0 +1,36 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: PE_top_level.MainMemory[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: PE_top_level.MainMemory[1..1] + estimator: CactiSRAM + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: PE_top_level.Buffer[1..1] + estimator: Aladdin_table + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: PE_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..a3384d2e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,76 @@ +architecture: + version: '0.4' + local: + - name: PE_top_level.MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..e34f4341 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/ref-output/ws/timeloop-model.map.tenssella.txt @@ -0,0 +1,6 @@ +t1 +R 3 P 1 +R +t0 +R 1 P 16 +P diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/README.md new file mode 100644 index 00000000..f0b8c3a0 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/README.md @@ -0,0 +1,29 @@ +Exercise 2 +========== + +## Overview + +In this exercise, we continue to use the 2-level architecture from the previous exercise, but introduce a new dimension to the problem shape: **Output Channels** (represented by the dimension `K`). As a result, the space of interesting mappings becomes richer. We also explore **tiling** the `K` dimension. + +## Steps and Observations + +1. Open the `prob/conv1d+oc.prob.yaml` and `map/conv1d+oc-2level-os.map.yaml` files, compare them to the corresponding files from the previous exercise, and observe how the additional dimension requires additional directives in the mapping. + +2. Open the `map/conv1d+oc-2level-os-tiled.map.yaml` and compare it to the un-tiled mapping above (to be precise, the above mapping was also tiled, but in a degenerate way). What we have done here is _factorized_ the `K` dimension into two factors and placed the factors at two different storage levels. Think about how this factorization results in breaking up each data-space -- Weights, Inputs and Outputs. Does it affect all spaces? + +3. Run `timeloop-model` on each mapping (be sure to also include the problem and architecture files in the invocation) and look at the statistics. Which mapping is more efficient? Why? + +To run the exercise, type the following from the exercises/timeloop directory: +``` + python3 run_example.py 02_os + python3 run_example.py 02_os_tiled +``` + +4. Experiment with the following in your free lab time: + - Tile shapes and sizes (by re-factoring `P` and `K` between Buffer and MainMemory). + - Loop orders (by changing the permutation). + +5. Consider the following: + - Can you think names for some of these dataflows? What "stationarity" do they exhibit? + - How many distinct mappings are there? + - Can you find the optimal mapping? diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/arch/2level.arch.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/arch/2level.arch.yaml new file mode 100644 index 00000000..c9382f52 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/arch/2level.arch.yaml @@ -0,0 +1,33 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: System + attributes: + technology: "40nm" + global_cycle_seconds: 1e-9 + + - !Component + name: MainMemory + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + + - !Container + name: PE + + - !Component + name: Buffer + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + + - !Component + name: MACC + class: intmac + attributes: + width: 8 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/map/conv1d+oc-2level-os-tiled.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/map/conv1d+oc-2level-os-tiled.map.yaml new file mode 100644 index 00000000..0e47a6d1 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/map/conv1d+oc-2level-os-tiled.map.yaml @@ -0,0 +1,11 @@ +mapping: + - target: MainMemory + type: temporal + factors: R=1 P=16 K=16 + permutation: PRK + + - target: Buffer + type: temporal + factors: R=3 P=1 K=2 + permutation: RPK + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/map/conv1d+oc-2level-os.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/map/conv1d+oc-2level-os.map.yaml new file mode 100644 index 00000000..0f50eb82 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/map/conv1d+oc-2level-os.map.yaml @@ -0,0 +1,11 @@ +mapping: + - target: MainMemory + type: temporal + factors: R=1 P=16 K=32 + permutation: PRK + + - target: Buffer + type: temporal + factors: R=3 P=1 K=1 + permutation: RPK + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/prob/conv1d+oc.prob.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/prob/conv1d+oc.prob.yaml new file mode 100644 index 00000000..bdadfdc4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/prob/conv1d+oc.prob.yaml @@ -0,0 +1,23 @@ +problem: + version: 0.4 + shape: + name: Conv1D_OC + dimensions: [ K, R, P ] + data_spaces: + - name: Weights + projection: + - [ [K] ] + - [ [R] ] + - name: Inputs + projection: + - [ [R], [P] ] + - name: Outputs + projection: + - [ [K] ] + - [ [P] ] + read_write: True + + instance: + K: 32 + R: 3 + P: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/parsed-processed-input.yaml new file mode 100644 index 00000000..ebda5dbb --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/parsed-processed-input.yaml @@ -0,0 +1,147 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: PE_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=16,K=32 + permutation: PRK + - target: Buffer + type: temporal + factors: R=3,P=1,K=1 + permutation: RPK +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ART.yaml new file mode 100644 index 00000000..bb5c12d7 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: PE_top_level.MainMemory[1..1] + area: 707084.0 + - name: PE_top_level.Buffer[1..1] + area: 887.84 + - name: PE_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..61c8d865 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ART_summary.yaml @@ -0,0 +1,12 @@ +ART_summary: + version: '0.4' + table_summary: + - name: PE_top_level.MainMemory[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: PE_top_level.Buffer[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: PE_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ERT.yaml new file mode 100644 index 00000000..9394a25d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ERT.yaml @@ -0,0 +1,54 @@ +ERT: + version: '0.4' + tables: + - name: PE_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..f942cfa4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.ERT_summary.yaml @@ -0,0 +1,36 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: PE_top_level.MainMemory[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: PE_top_level.MainMemory[1..1] + estimator: CactiSRAM + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: PE_top_level.Buffer[1..1] + estimator: Aladdin_table + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: PE_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..a3384d2e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,76 @@ +architecture: + version: '0.4' + local: + - name: PE_top_level.MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..3a05057f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/no-tiling/timeloop-model.map.tenssella.txt @@ -0,0 +1,6 @@ +t1 +K 32 R 1 P 16 +PK +t0 +K 1 R 3 P 1 +R diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/parsed-processed-input.yaml new file mode 100644 index 00000000..d6f84a2a --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/parsed-processed-input.yaml @@ -0,0 +1,147 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: PE_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=16,K=16 + permutation: PRK + - target: Buffer + type: temporal + factors: R=3,P=1,K=2 + permutation: RPK +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ART.yaml new file mode 100644 index 00000000..bb5c12d7 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: PE_top_level.MainMemory[1..1] + area: 707084.0 + - name: PE_top_level.Buffer[1..1] + area: 887.84 + - name: PE_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..61c8d865 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ART_summary.yaml @@ -0,0 +1,12 @@ +ART_summary: + version: '0.4' + table_summary: + - name: PE_top_level.MainMemory[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: PE_top_level.Buffer[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: PE_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ERT.yaml new file mode 100644 index 00000000..9394a25d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ERT.yaml @@ -0,0 +1,54 @@ +ERT: + version: '0.4' + tables: + - name: PE_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..f942cfa4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.ERT_summary.yaml @@ -0,0 +1,36 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: PE_top_level.MainMemory[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: PE_top_level.MainMemory[1..1] + estimator: CactiSRAM + - name: PE_top_level.Buffer[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: PE_top_level.Buffer[1..1] + estimator: Aladdin_table + - name: PE_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: PE_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..a3384d2e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,76 @@ +architecture: + version: '0.4' + local: + - name: PE_top_level.MainMemory[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.Buffer[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: PE_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..ae040dbd --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/02-model-conv1d+oc-2level/ref-output/tiling/timeloop-model.map.tenssella.txt @@ -0,0 +1,6 @@ +t1 +K 16 R 1 P 16 +PK +t0 +K 2 R 3 P 1 +RK diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/README.md new file mode 100644 index 00000000..0b168d8f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/README.md @@ -0,0 +1,24 @@ +Exercise 3 +========== + +## Overview + +In this exercise, we continue to use the problem shape from the previous exercise, i.e., a 1D Convolution with Output Channels. However, we add more realism and complexity to our architecture by making it a 3-level hierarchy with a DRAM level acting as the main backing store. Additionally, we also learn about a new mapping technique that allows data_spaces to optionally _bypass_ one or more storage levels. + +## Steps and Observations + +1. Open the `arch/3level.arch.yaml` and `map/conv1d+oc-3level.map.yaml` files. Observe how the addition of a storage level in the architecture requires adding a new mapping directive corresponding to that level. The space of mappings opens up even further: you can now factor a problem dimension across 3 levels instead of 2, and you can use a different permutation at each level. + +2. In all exercises so far, our mappings have created tiles of various shapes and sizes for each data-space, and we have always assumed that each data-space must have a tile resident at each storage level. However, this strict inclusivity is not required. At times, it may be beneficial for a data-space to _bypass_ a storage level---for example, if there isn't enough reuse of that data-space at that level. This opens up that level's capacity to larger tiles for other data_spaces, which may (or may not) end up being more optimal. Timeloop's mapping format allows us to express bypassing. To see an example, open the `map/conv1d+oc-3level-bypass.map.yaml`. This is just a random bypassing strategy that we created for illustration and is not based on any insights. + +3. Run the Timeloop model on both mappings. Was bypassing more or less efficient in this case? + +To run the exercise, type the following from the exercises/timeloop directory: +``` + python3 run_example.py 03_bypass + python3 run_example.py 03_no_bypass +``` + +4. Can you come up with a better bypassing strategy? What happens if you also change the other variables in the mapping, i.e., tiling factors and permutations? How do they interplay with bypassing options? + + If you find a better bypassing strategy than any of the provided mappings, hold on to it. In a later exercise, we will run Timeloop's automated _mapper_ on this very same problem and architecture. You can compare what you found vs. what the mapper found! diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/arch/3level.arch.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/arch/3level.arch.yaml new file mode 100644 index 00000000..0a8c0433 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/arch/3level.arch.yaml @@ -0,0 +1,40 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: System + attributes: + technology: "40nm" + global_cycle_seconds: 1e-9 + + - !Component + name: MainMemory + class: DRAM + attributes: + width: 256 + datawidth: 8 + + - !Component + name: GlobalBuffer + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + + - !Container + name: PE + + - !Component + name: RegisterFile + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + + - !Component + name: MACC + class: intmac + attributes: + width: 8 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/map/conv1d+oc-3level-bypass.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/map/conv1d+oc-3level-bypass.map.yaml new file mode 100644 index 00000000..c860acb9 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/map/conv1d+oc-3level-bypass.map.yaml @@ -0,0 +1,33 @@ +mapping: + - target: MainMemory + type: temporal + factors: R=1 P=1 K=1 + permutation: PRK + + - target: GlobalBuffer + type: temporal + factors: R=1 P=16 K=16 + permutation: PRK + + - target: RegisterFile + type: temporal + factors: R=3 P=1 K=2 + permutation: RPK + + # Bypass + + - target: GlobalBuffer + type: dataspace + keep: + - Weights + - Inputs + bypass: + - Outputs + + - target: RegisterFile + type: dataspace + keep: + - Outputs + bypass: + - Weights + - Inputs diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/map/conv1d+oc-3level.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/map/conv1d+oc-3level.map.yaml new file mode 100644 index 00000000..ef3bd0d0 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/map/conv1d+oc-3level.map.yaml @@ -0,0 +1,16 @@ +mapping: + - target: MainMemory + type: temporal + factors: R=1 P=1 K=1 + permutation: PRK + + - target: GlobalBuffer + type: temporal + factors: R=1 P=16 K=16 + permutation: PRK + + - target: RegisterFile + type: temporal + factors: R=3 P=1 K=2 + permutation: RPK + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/prob/conv1d+oc.prob.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/prob/conv1d+oc.prob.yaml new file mode 100644 index 00000000..bdadfdc4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/prob/conv1d+oc.prob.yaml @@ -0,0 +1,23 @@ +problem: + version: 0.4 + shape: + name: Conv1D_OC + dimensions: [ K, R, P ] + data_spaces: + - name: Weights + projection: + - [ [K] ] + - [ [R] ] + - name: Inputs + projection: + - [ [R], [P] ] + - name: Outputs + projection: + - [ [K] ] + - [ [P] ] + read_write: True + + instance: + K: 32 + R: 3 + P: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/parsed-processed-input.yaml new file mode 100644 index 00000000..231fbc12 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/parsed-processed-input.yaml @@ -0,0 +1,188 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1 + permutation: PRK + - target: GlobalBuffer + type: temporal + factors: R=1,P=16,K=16 + permutation: PRK + - target: GlobalBuffer + type: bypass + keep: + - Weights + - Inputs + bypass: + - Outputs + - target: RegisterFile + type: temporal + factors: R=3,P=1,K=2 + permutation: RPK + - target: RegisterFile + type: bypass + keep: + - Outputs + bypass: + - Weights + - Inputs +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ART.yaml new file mode 100644 index 00000000..9cb5b2d5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ART.yaml @@ -0,0 +1,11 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + - name: System_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..63fcc26f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ART_summary.yaml @@ -0,0 +1,15 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ERT.yaml new file mode 100644 index 00000000..60cf462c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: System_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..2fcba9d8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + energy: 2048.0 + - name: read + energy: 2048.0 + - name: write + energy: 2048.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..1] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..1] + estimator: Aladdin_table + - name: System_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..d09c92af --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,103 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..4812a4d1 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/bypass/timeloop-model.map.tenssella.txt @@ -0,0 +1,12 @@ +#error Tenssella does not support bypass. +t2 +K 1 R 1 P 1 +P +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +K 16 R 1 P 16 +PK +t0 +K 2 R 3 P 1 +RK diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/parsed-processed-input.yaml new file mode 100644 index 00000000..fc8aabe8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/parsed-processed-input.yaml @@ -0,0 +1,174 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1 + permutation: PRK + - target: GlobalBuffer + type: temporal + factors: R=1,P=16,K=16 + permutation: PRK + - target: RegisterFile + type: temporal + factors: R=3,P=1,K=2 + permutation: RPK +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ART.yaml new file mode 100644 index 00000000..9cb5b2d5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ART.yaml @@ -0,0 +1,11 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + - name: System_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..63fcc26f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ART_summary.yaml @@ -0,0 +1,15 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ERT.yaml new file mode 100644 index 00000000..60cf462c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: System_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..2fcba9d8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + energy: 2048.0 + - name: read + energy: 2048.0 + - name: write + energy: 2048.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..1] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..1] + estimator: Aladdin_table + - name: System_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..d09c92af --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,103 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..b5873b21 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/ref-output/no-bypass/timeloop-model.map.tenssella.txt @@ -0,0 +1,9 @@ +t2 +K 1 R 1 P 1 +P +t1 +K 16 R 1 P 16 +PK +t0 +K 2 R 3 P 1 +RK diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/README.md new file mode 100644 index 00000000..09c2835e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/README.md @@ -0,0 +1,43 @@ +Exercise 4 +========== + +## Overview + +The architectures used in all prior exercises have been completely devoid of parallelism. However, as we are well aware, DNN accelerators are always designed to exploit the massive amounts of parallelism inherently present in the computation of each layer. Timeloop's architecture model allows parallelism to be expressed in a hierarchical manner. In this exercise, we introduce parallelism in one level of our example architecture's hierarchy by stamping out multiple *spatial instances* of a PE that share a single Global Buffer and backing DRAM. We also introduce another dimension to the problem shape: Input Channels. + +## Steps and Observations + +1. Open the `arch/3levelspatial.arch.yaml` and compare it to the previous exercise's `arch/3level.arch.yaml`. The two specifications look remarkably similar, except that this new version uses an array notation `[]` to stamp out multiple _instances_ of the RegisterFile and the MACC units. + > Picture the (abstract) hardware topology this creates: a single Global Buffer _fans out_ to an array of parallel Register Files inside PEs. This fanout represents the amplification in parallelism between the Global Buffer and Register File levels. Just like we created **temporal** tiling levels to take advantage of amplification of _storage capacity_ between levels, we will create **spatial** tiling levels to take advantage of amplification of _parallelism_ between levels. And just like we had a large space of choices in determining factors and permutations to create temporal tiles, we similarly have a space of choices in determining factors and permutations for spatial tiles. + + +2. Examine the mapping file `map/conv1d+oc+ic-3levelspatial-kp-ws.map.yaml`. + - First, consider the file name itself. Similar to Exercise 1, the `ws` in the file name indicates that the mapping exhibits Weight Stationary behavior (in this case, at the RegisterFile level). The `kp` in the file name stands for **K-Partitioned**, i.e., we map the problem shape's `K` (i.e., Output Channel) dimension across the available parallelism on the hardware. + - Now look at the mapping specification. Observe that there is a new mapping directive with `target:GlobalBuffer` and `type:spatial`. By convention, a spatial tiling level that describes amplification of parallelism between an outer and an inner level is associated with the _outer_ level (in this case, the Global Buffer). This new directive only has a single non-unit factor: `K16`, which means that the dataspace tiles get _partitioned_ into 16 tiles along the K-dimension. + > Spatial partitioning often leads to potent forms of hardware reuse. In this example, partitioning along the K dimension means that the Weight and Output dataspaces get partitioned along that dimension and **distributed** to the RegisterFile, but the Input dataspace (which is unaffected by K) gets _copied_ to each RegisterFile. These Inputs can be **multicast** from the GlobalBuffer to the RegisterFiles, avoiding repeated accesses to the GlobalBuffer. Timeloop automatically detects and exploits these multicast opportunities. + +3. Now examine the mapping file `map/conv1d+oc+ic-3levelspatial-cp-ws.map.yaml`. + - This is similar to the above mapping, except that the partitioning is along the `C` (i.e., Input Channel) dimension here. + > Consider the consequences of this partitioning strategy. Both Weights and Input Channels get split along C and distributed across the Register Files. However, Outputs are unaffected by the C dimension. This means that partial sums for the same outputs will be generated in parallel across the PEs. As they move from the RegisterFiles in the PEs to the GlobalBuffer, they can in fact be **spatially-reduced** before being placed into the GlobalBuffer. This phenomenon is the inverse of a multicast. + +4. Run both mappings and examine the statistics. It may be very instructive to diff them visually. The differences are minor, but there is a notable difference in energy consumption. Can you figure out why? + +To run the exercise, type the following from the exercises/timeloop directory: +``` + python3 run_example.py 04_cp + python3 run_example.py 04_kp +``` + + +5. We only gave two example mappings in this exercise. Between all the factors, permutations and bypass options across the temporal and spatial tiling levels, how many choices of mappings are there? What if we increased the problem's dimension sizes? + +## Takeaways + +Consider the following question: +> What is the performance and energy-efficiency of a given problem on a given architecture? + +We hope the exercises so far have shown that: +1. The question is only meaningful if we are also given a specific mapping. +2. For meaningfully complex problems and architectures, the space of mappings is often too large to reason about manually. + +To that end, we now proceed to examples that use Timeloop's **mapper** to automatically build and explore the space of mappings. diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/arch/3levelspatial.arch.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/arch/3levelspatial.arch.yaml new file mode 100644 index 00000000..a4cbe327 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/arch/3levelspatial.arch.yaml @@ -0,0 +1,42 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: System + attributes: + technology: "40nm" + global_cycle_seconds: 1e-9 + + - !Component + name: MainMemory + class: DRAM + attributes: + width: 256 + datawidth: 8 + depth: 16777216 + + - !Component + name: GlobalBuffer + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + + - !Container + name: PE + spatial: {meshX: 16} + + - !Component + name: RegisterFile + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + + - !Component + name: MACC + class: intmac + attributes: + width: 8 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/map/conv1d+oc+ic-3levelspatial-cp-ws.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/map/conv1d+oc+ic-3levelspatial-cp-ws.map.yaml new file mode 100644 index 00000000..2bb87ef8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/map/conv1d+oc+ic-3levelspatial-cp-ws.map.yaml @@ -0,0 +1,21 @@ +mapping: + - target: MainMemory + type: temporal + factors: R=1 P=1 K=1 C=1 + permutation: PRKC + + - target: GlobalBuffer + type: temporal + factors: R=3 P=1 K=32 C=2 + permutation: PRKC + + - target: PE + type: spatial + factors: R=1 P=1 K=1 C=16 + permutation: PRKC + + - target: RegisterFile + type: temporal + factors: R=1 P=16 K=1 C=1 + permutation: RPKC + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/map/conv1d+oc+ic-3levelspatial-kp-ws.map.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/map/conv1d+oc+ic-3levelspatial-kp-ws.map.yaml new file mode 100644 index 00000000..edfc31cc --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/map/conv1d+oc+ic-3levelspatial-kp-ws.map.yaml @@ -0,0 +1,21 @@ +mapping: + - target: MainMemory + type: temporal + factors: R=1 P=1 K=1 C=1 + permutation: PRKC + + - target: GlobalBuffer + type: temporal + factors: R=3 P=1 K=2 C=32 + permutation: PRKC + + - target: PE + type: spatial + factors: R=1 P=1 K=16 C=1 + permutation: PRKC + + - target: RegisterFile + type: temporal + factors: R=1 P=16 K=1 C=1 + permutation: RPKC + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/parsed-processed-input.yaml new file mode 100644 index 00000000..9cc5c402 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/parsed-processed-input.yaml @@ -0,0 +1,212 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + depth: 16777216 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - leak + - read + enabled: true + - name: GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - leak + - read + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: RegisterFile[1..16] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - leak + - read + enabled: true + - name: MACC[1..16] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - C + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - C + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - C + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + C: 32 + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1,C=1 + permutation: PRKC + - target: GlobalBuffer + type: temporal + factors: R=3,P=1,K=32,C=2 + permutation: PRKC + - type: spatial + target: inter_PE_spatial + factors: R=1,P=1,K=1,C=16 + permutation: PRKC + - factors: C=1,K=1,R=1,P=1 + permutation: CKRP + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - target: RegisterFile + type: temporal + factors: R=1,P=16,K=1,C=1 + permutation: RPKC +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ART.yaml new file mode 100644 index 00000000..fc0de09a --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ART.yaml @@ -0,0 +1,13 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: System_top_level.RegisterFile[1..16] + area: 845.98 + - name: System_top_level.MACC[1..16] + area: 466.375 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..8af419d5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ART_summary.yaml @@ -0,0 +1,18 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy + - name: System_top_level.RegisterFile[1..16] + area: 845.98 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..16] + area: 466.375 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT.yaml new file mode 100644 index 00000000..2231c382 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.00797208 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.3531 + - name: System_top_level.RegisterFile[1..16] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0003712 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: System_top_level.MACC[1..16] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..760cb8d7 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: write + energy: 2048.0 + - name: update + energy: 2048.0 + - name: leak + energy: 0.0 + - name: read + energy: 2048.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: write + energy: 30.8783 + - name: update + energy: 30.8783 + - name: leak + energy: 0.00797208 + - name: read + energy: 43.3531 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..1] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..16] + actions: + - name: write + energy: 0.36264 + - name: update + energy: 0.36264 + - name: leak + energy: 0.0003712 + - name: read + energy: 0.36264 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..16] + estimator: Aladdin_table + - name: System_top_level.MACC[1..16] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..16] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..f260fa0e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,137 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + depth: 16777216 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.RegisterFile[1..16] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.MACC[1..16] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.map.tensella.txt new file mode 100644 index 00000000..81a341d8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.map.tensella.txt @@ -0,0 +1,19 @@ +t3 +C 1 K 1 R 1 P 1 +P +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 2 K 32 R 3 P 1 +RKC +t1 +C 1 K 1 R 1 P 1 +P +s1 +C 16 K 1 R 1 P 1 +C +4 +t0 +C 1 K 1 R 1 P 16 +P diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml new file mode 100644 index 00000000..fd803088 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml @@ -0,0 +1,212 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + depth: 16777216 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - leak + - write + - read + - update + enabled: true + - name: GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - leak + - write + - read + - update + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: RegisterFile[1..16] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - leak + - write + - read + - update + enabled: true + - name: MACC[1..16] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - C + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - C + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - C + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + C: 32 + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1,C=1 + permutation: PRKC + - target: GlobalBuffer + type: temporal + factors: R=3,P=1,K=2,C=32 + permutation: PRKC + - type: spatial + target: inter_PE_spatial + factors: R=1,P=1,K=16,C=1 + permutation: PRKC + - factors: C=1,K=1,R=1,P=1 + permutation: CKRP + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - target: RegisterFile + type: temporal + factors: R=1,P=16,K=1,C=1 + permutation: RPKC +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ART.yaml new file mode 100644 index 00000000..fc0de09a --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ART.yaml @@ -0,0 +1,13 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: System_top_level.RegisterFile[1..16] + area: 845.98 + - name: System_top_level.MACC[1..16] + area: 466.375 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..8af419d5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ART_summary.yaml @@ -0,0 +1,18 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy + - name: System_top_level.RegisterFile[1..16] + area: 845.98 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..16] + area: 466.375 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT.yaml new file mode 100644 index 00000000..d9cd9b90 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.00797208 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.3531 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: System_top_level.RegisterFile[1..16] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0003712 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: System_top_level.MACC[1..16] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..11e750b7 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: leak + energy: 0.0 + - name: write + energy: 2048.0 + - name: read + energy: 2048.0 + - name: update + energy: 2048.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: leak + energy: 0.00797208 + - name: write + energy: 30.8783 + - name: read + energy: 43.3531 + - name: update + energy: 30.8783 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..1] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..16] + actions: + - name: leak + energy: 0.0003712 + - name: write + energy: 0.36264 + - name: read + energy: 0.36264 + - name: update + energy: 0.36264 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..16] + estimator: Aladdin_table + - name: System_top_level.MACC[1..16] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..16] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..a0110418 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,137 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + depth: 16777216 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - write + - read + - update + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - write + - read + - update + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.RegisterFile[1..16] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - write + - read + - update + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.MACC[1..16] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.map.tensella.txt new file mode 100644 index 00000000..3c3e675b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.map.tensella.txt @@ -0,0 +1,19 @@ +t3 +C 1 K 1 R 1 P 1 +P +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 32 K 2 R 3 P 1 +RKC +t1 +C 1 K 1 R 1 P 1 +P +s1 +C 1 K 16 R 1 P 1 +K +4 +t0 +C 1 K 1 R 1 P 16 +P diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/prob/conv1d+oc+ic.prob.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/prob/conv1d+oc+ic.prob.yaml new file mode 100644 index 00000000..704d4c10 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/prob/conv1d+oc+ic.prob.yaml @@ -0,0 +1,26 @@ +problem: + version: 0.4 + shape: + name: Conv1D_OC + dimensions: [ C, K, R, P ] + data_spaces: + - name: Weights + projection: + - [ [C] ] + - [ [K] ] + - [ [R] ] + - name: Inputs + projection: + - [ [C] ] + - [ [R], [P] ] + - name: Outputs + projection: + - [ [K] ] + - [ [P] ] + read_write: True + + instance: + C: 32 + K: 32 + R: 3 + P: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/parsed-processed-input.yaml new file mode 100644 index 00000000..37426bc4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/parsed-processed-input.yaml @@ -0,0 +1,211 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: GlobalBuffer[1..16] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: RegisterFile[1..16] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..16] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - C + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - C + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - C + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + C: 32 + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1,C=1 + permutation: PRKC + - type: spatial + target: inter_PE_spatial + factors: R=1,P=1,K=1,C=16 + permutation: PRKC + - factors: C=1,K=1,R=1,P=1 + permutation: CKRP + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - target: GlobalBuffer + type: temporal + factors: R=3,P=1,K=32,C=2 + permutation: PRKC + - target: RegisterFile + type: temporal + factors: R=1,P=16,K=1,C=1 + permutation: RPKC +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ART.yaml new file mode 100644 index 00000000..9819520f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ART.yaml @@ -0,0 +1,13 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: System_top_level.GlobalBuffer[1..16] + area: 707084.0 + - name: System_top_level.RegisterFile[1..16] + area: 887.84 + - name: System_top_level.MACC[1..16] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..bf08c869 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ART_summary.yaml @@ -0,0 +1,18 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: System_top_level.GlobalBuffer[1..16] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.RegisterFile[1..16] + area: 887.84 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..16] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ERT.yaml new file mode 100644 index 00000000..b78e128b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: System_top_level.GlobalBuffer[1..16] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: System_top_level.RegisterFile[1..16] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: System_top_level.MACC[1..16] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..c5c1ce8d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + energy: 2048.0 + - name: read + energy: 2048.0 + - name: write + energy: 2048.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..16] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..16] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..16] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..16] + estimator: Aladdin_table + - name: System_top_level.MACC[1..16] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..16] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..e6a9a58e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,126 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: System_top_level.GlobalBuffer[1..16] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.RegisterFile[1..16] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.MACC[1..16] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..d7e6ba1f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/cp/timeloop-model.map.tenssella.txt @@ -0,0 +1,19 @@ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 K 1 R 1 P 1 +P +t2 +C 1 K 1 R 1 P 1 +P +s2 +C 16 K 1 R 1 P 1 +C +4 +t1 +C 2 K 32 R 3 P 1 +RKC +t0 +C 1 K 1 R 1 P 16 +P diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/parsed-processed-input.yaml new file mode 100644 index 00000000..78bab3a6 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/parsed-processed-input.yaml @@ -0,0 +1,211 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: GlobalBuffer[1..16] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: RegisterFile[1..16] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..16] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - C + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - C + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - C + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + C: 32 + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1,C=1 + permutation: PRKC + - type: spatial + target: inter_PE_spatial + factors: R=1,P=1,K=16,C=1 + permutation: PRKC + - factors: C=1,K=1,R=1,P=1 + permutation: CKRP + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - target: GlobalBuffer + type: temporal + factors: R=3,P=1,K=2,C=32 + permutation: PRKC + - target: RegisterFile + type: temporal + factors: R=1,P=16,K=1,C=1 + permutation: RPKC +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ART.yaml new file mode 100644 index 00000000..9819520f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ART.yaml @@ -0,0 +1,13 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: System_top_level.GlobalBuffer[1..16] + area: 707084.0 + - name: System_top_level.RegisterFile[1..16] + area: 887.84 + - name: System_top_level.MACC[1..16] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..bf08c869 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ART_summary.yaml @@ -0,0 +1,18 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: System_top_level.GlobalBuffer[1..16] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.RegisterFile[1..16] + area: 887.84 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..16] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ERT.yaml new file mode 100644 index 00000000..b78e128b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: System_top_level.GlobalBuffer[1..16] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: System_top_level.RegisterFile[1..16] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: System_top_level.MACC[1..16] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..c5c1ce8d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + energy: 2048.0 + - name: read + energy: 2048.0 + - name: write + energy: 2048.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..16] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..16] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..16] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..16] + estimator: Aladdin_table + - name: System_top_level.MACC[1..16] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..16] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..e6a9a58e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,126 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: System_top_level.GlobalBuffer[1..16] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.RegisterFile[1..16] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.MACC[1..16] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 16 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.map.tenssella.txt new file mode 100644 index 00000000..230c3b9b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/ref-output/kp/timeloop-model.map.tenssella.txt @@ -0,0 +1,19 @@ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 K 1 R 1 P 1 +P +t2 +C 1 K 1 R 1 P 1 +P +s2 +C 1 K 16 R 1 P 1 +K +4 +t1 +C 32 K 2 R 3 P 1 +RKC +t0 +C 1 K 1 R 1 P 16 +P diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/README.md new file mode 100644 index 00000000..559a8bac --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/README.md @@ -0,0 +1,63 @@ +Exercise 5 +========== + +## Overview + +In this exercise, we will use Timeloop's **mapper** to automatically construct and explore the _mapspace_ (i.e., the space of legal mappings) of a problem on an architecture. To keep the mapspace manageable for this tutorial setting, we revert back to the 1D Convolution with Output Channels problem shape and the 3-level temporal architecture from Exercise 3. + +## Preparation + +Similar to the model, the mapper needs: +* An architecture. +* A problem. + +However, unlike the model, the mapper does not need an explicit mapping (it finds those for us). Instead, it needs: +* A set of _architecture constraints_ that reflect portions of the dataflow that are fixed in the hardware (grouped under the YAML configuration key `architecture_constraints`). These are not used in this exercise. +* An optional set of _mapspace constraints_ to restrict the mapspace (grouped under the YAML configuration key `mapspace_constraints`). +* A set of options for the mapper application itself, including user-interface glags and directives to guide the search heuristics (grouped under the YAML configuration key `mapper`). + +We have provided 3 alternative sets of constraints for this exercise. + +Study the three alternative constraints files in `constraints`: + 1. `conv1d+oc-3level-1mapping.constraints.yaml`. In this example, we have abused the constraints system to completely "bake" every single variable of the mapspace to reduce it down to a size of 1. In fact, this single remaining mapping is identical to the mapping we used in Exercise 3 (`map/conv1d+oc-3level.map.yaml`). The syntax is nearly identical, but the semantics are subtly different. You can express inequalities in constraints (e.g., `K<=16`), and permutations can be partially constrained. + 2. `conv1d+oc-3level-freebypass.constraints.yaml`: In this example, we lock down all factorizations and permutations in the mapping, but leave bypassing un-specified. This allows the mapper to explore all bypassing options. + > Be careful about how Bypass directives are treated by the model vs. the mapper. If you don't specify any bypass directives in a mapping, the model assumes they are set to `keep` (i.e., do not bypass). Remember that a mapping cannot have any non-determinism. However, the mapper treats anything left un-specified in the constraints as options to explore in the mapspace. If you want to lock down a specific bypass strategy, you need to create an explicit constraint to restrict the mapper. + 3. `null.constraints.yaml`: In this example, we remove all constraints and let the mapper explore the complete mapspace. + +Can you mentally calculate the size of the mapspace for each of these? + +Next, look at the `mapper/exhaustive.mapper.yaml` file. The directives here instruct the mapper to exhaustively explore the complete mapspace. Observe: +* The `optimization_metric` gives the mapper a prioritized list of metrics to compare mappings. In this example, `delay` is the highest priority. If two mappings have the same delay, they will be compared based on `energy`. The set of metrics supported today include `energy`, `delay`, `edp` (energy-delay product), and `last_level_accesses`, but this list can be trivially expanded to _any_ metric that the model generates (as in `stats.txt`) with just a few lines of code. +* The mapper can launch multiple threads to speed up the search. It will divide up the mapspace among all threads. If the `num_threads` directive isn't specified, the mapper will query the underlying host for the number of available CPU contexts and use that many threads. + +Next, we will run the mapper, once on each of the constraints files. It is useful to envision what is going to happen: +* The mapper will construct a mapspace based on the architecture and problem specifications. +* It will then constrain the mapspace based on the provided constraints. +* Next, it will _prune_ some redundant mappings out of the mapspace. +* It will then begin selecting mappings out of the mapspace, evaluate each mapping (using the same model we were manually invoking in previous exercises), and walk through the entire mapspace exhaustively before terminating. +* Finally, it will print the stats of the optimal mapping, as well as the mapping itself in a human-readable loop-nest form. + +## Steps and Observations + +Run all 3 experiments. +1. To run the exercise, type the following from the exercises/timeloop directory: + ``` + python3 run_example.py 05_baked + python3 run_example.py 05_bypass + ``` + + 1. Observe the output log. Timeloop prints out the size of the mapspace in each dimension. The total size of the mapspace is the product of all these mapspace dimensions. Everything is 1 in this example because the mapspace is completely locked down. + 2. Compare the results with the default mapping provided in Exercise 3. The numbers should be identical. +2. Now run the mapper with `conv1d+oc-3level-freebypass.constraints.yaml`. Recall that our objective here is to let the mapper find the best bypassing strategy for a given set of factorization and permutations. + 1. Observe from the log that all mapspace sizes are 1 _except_ for the `DatatypeBypass` subspace. + 2. Compare the results with what you obtained in Exercise 3. Were you able to find this mapping? +3. Now run the mapper with `null.constraints.yaml`. This may take a few seconds. If you wish, you can comment out the `num_threads` directive in `mapper/exhaustive.mapper.yaml`. You can also hit Ctrl+C to interrupt the search. It will terminate graceully and emit the optimal mapping it found so far. + ``` + python3 run_example.py 05_null + ``` + 1. Did it find an even better mapping? + +> For each of these runs, be sure to look at the generated `timeloop-mapper.map.txt`. This is the optimal mapping found by the mapper shown in a loop-nest format. + +## Takeaways +Mapspace constraints are used to limit the search space (and thereby speed up the search heuristics) based on the user's intuition on a what may constitute a good mapping. In contrast, architecture constraints are used to represent hardware capabilities (or rather, incapabilities). Many hardware accelerators aren't designed to be flexible enough to execute any pattern of data-movement loop nests that a mapper can throw at them. They are restricted (with good reason) to execute a limited set of alternative shapes of mappings, or _dataflows_. This simplifies the hardware design of networks and internal state machines. Timeloop presently uses an identical specification language to describe both styles of constraints, though that may change in future. diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/arch/3level.arch.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/arch/3level.arch.yaml new file mode 100644 index 00000000..0c2527bc --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/arch/3level.arch.yaml @@ -0,0 +1,41 @@ +architecture: + version: 0.4 + nodes: + - !Container + name: System + attributes: + technology: "40nm" + global_cycle_seconds: 1e-9 + + - !Component + name: MainMemory + class: DRAM + attributes: + width: 256 + datawidth: 8 + + - !Component + name: GlobalBuffer + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + + - !Container + name: PE + + - !Component + name: RegisterFile + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + + - !Component + name: MACC + class: intmac + attributes: + width: 8 + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/conv1d+oc-3level-1mapping.constraints.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/conv1d+oc-3level-1mapping.constraints.yaml new file mode 100644 index 00000000..5c81a04c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/conv1d+oc-3level-1mapping.constraints.yaml @@ -0,0 +1,39 @@ +# These directives completely constrain every single aspect of the mapspace, +# thereby reducing the space down to single degenerate mapping. Running the +# mapper with these constraints will produce the same result as running +# the model directly on that degenerate mapping (which is coincidentally +# specified in a similar syntax). + +mapspace_constraints: + version: 0.4 + targets: + - target: MainMemory + type: temporal + factors: R=1 P=1 K=1 + permutation: PRK + + - target: GlobalBuffer + type: temporal + factors: R=1 P=16 K=16 + permutation: PRK + + - target: RegisterFile + type: temporal + factors: R=3 P=1 K=2 + permutation: RPK + + # Do not allow bypass anywhere. + + - target: GlobalBuffer + type: dataspace + keep: + - Weights + - Inputs + - Outputs + + - target: RegisterFile + type: dataspace + keep: + - Weights + - Inputs + - Outputs diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/conv1d+oc-3level-freebypass.constraints.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/conv1d+oc-3level-freebypass.constraints.yaml new file mode 100644 index 00000000..5e97b4db --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/conv1d+oc-3level-freebypass.constraints.yaml @@ -0,0 +1,25 @@ +# These directives constrain all aspects of the mapspace *except* all the +# ways for data_spaces to bypass storage levels. Timeloop assumes that +# all data_spaces originate in the last-level storage and therefore must +# reside there. However, all options are open for the other 2 storage +# levels in this example. since there are 3 data_spaces, the total number +# of choices = 2^(2*3) = 64, which is the size of the mapspace. + +mapspace_constraints: + version: 0.4 + targets: + - target: MainMemory + type: temporal + factors: R=1 P=1 K=1 + permutation: PRK + + - target: GlobalBuffer + type: temporal + factors: R=1 P=16 K=16 + permutation: PRK + + - target: RegisterFile + type: temporal + factors: R=3 P=1 K=2 + permutation: RPK + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/null.constraints.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/null.constraints.yaml new file mode 100644 index 00000000..7c473b23 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/constraints/null.constraints.yaml @@ -0,0 +1,5 @@ +# No constraints. Set the mapper free! + +mapspace_constraints: + version: 0.4 + targets: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/mapper/exhaustive.mapper.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/mapper/exhaustive.mapper.yaml new file mode 100644 index 00000000..875ca584 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/mapper/exhaustive.mapper.yaml @@ -0,0 +1,8 @@ +mapper: + version: 0.4 + optimization_metric: [ delay, energy ] + num_threads: 1 + algorithm: linear_pruned + victory_condition: 0 + timeout: 0 + diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/prob/conv1d+oc.prob.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/prob/conv1d+oc.prob.yaml new file mode 100644 index 00000000..bdadfdc4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/prob/conv1d+oc.prob.yaml @@ -0,0 +1,23 @@ +problem: + version: 0.4 + shape: + name: Conv1D_OC + dimensions: [ K, R, P ] + data_spaces: + - name: Weights + projection: + - [ [K] ] + - [ [R] ] + - name: Inputs + projection: + - [ [R], [P] ] + - name: Outputs + projection: + - [ [K] ] + - [ [P] ] + read_write: True + + instance: + K: 32 + R: 3 + P: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/parsed-processed-input.yaml new file mode 100644 index 00000000..a7048603 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/parsed-processed-input.yaml @@ -0,0 +1,188 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1 + permutation: PRK + - target: GlobalBuffer + type: temporal + factors: R=1,P=16,K=16 + permutation: PRK + - target: GlobalBuffer + type: bypass + keep: + - Weights + - Inputs + - Outputs + - target: RegisterFile + type: temporal + factors: R=3,P=1,K=2 + permutation: RPK + - target: RegisterFile + type: bypass + keep: + - Weights + - Inputs + - Outputs +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: [] +mapper: + version: '0.4' + optimization_metric: + - delay + - energy + num_threads: 1 + algorithm: linear_pruned + victory_condition: 0 + timeout: 0 + out_prefix: timeloop-mapper + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..9cb5b2d5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ART.yaml @@ -0,0 +1,11 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + - name: System_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..63fcc26f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,15 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..60cf462c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: System_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..2fcba9d8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + energy: 2048.0 + - name: read + energy: 2048.0 + - name: write + energy: 2048.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..1] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..1] + estimator: Aladdin_table + - name: System_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..d09c92af --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,103 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..441cac7d --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,9 @@ +t2 +K 1 R 1 P 1 +P +t1 +K 16 R 1 P 16 +PK +t0 +K 2 R 3 P 1 +KR diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.oaves.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/baked/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/parsed-processed-input.yaml new file mode 100644 index 00000000..05ccdb89 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/parsed-processed-input.yaml @@ -0,0 +1,176 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1 + permutation: PRK + - target: GlobalBuffer + type: temporal + factors: R=1,P=16,K=16 + permutation: PRK + - target: RegisterFile + type: temporal + factors: R=3,P=1,K=2 + permutation: RPK +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: [] +mapper: + version: '0.4' + optimization_metric: + - delay + - energy + num_threads: 1 + algorithm: linear_pruned + victory_condition: 0 + timeout: 0 + out_prefix: timeloop-mapper + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..9cb5b2d5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ART.yaml @@ -0,0 +1,11 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + - name: System_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..63fcc26f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,15 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..60cf462c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: System_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..2fcba9d8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + energy: 2048.0 + - name: read + energy: 2048.0 + - name: write + energy: 2048.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..1] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..1] + estimator: Aladdin_table + - name: System_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..d09c92af --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,103 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..6e3aef9e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,11 @@ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +K 1 R 1 P 1 +P +t1 +K 16 R 1 P 16 +PK +t0 +K 2 R 3 P 1 +KR diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.oaves.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/freebypass/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/parsed-processed-input.yaml new file mode 100644 index 00000000..91b03edc --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/parsed-processed-input.yaml @@ -0,0 +1,164 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: [] +mapper: + version: '0.4' + optimization_metric: + - delay + - energy + num_threads: 1 + algorithm: linear_pruned + victory_condition: 0 + timeout: 0 + out_prefix: timeloop-mapper + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..9cb5b2d5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ART.yaml @@ -0,0 +1,11 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + - name: System_top_level.MACC[1..1] + area: 332.25 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..63fcc26f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,15 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + area: 887.84 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..1] + area: 332.25 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..60cf462c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.353054 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.878292 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.007972 + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.42564 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000861 + - name: System_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..2fcba9d8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: update + energy: 2048.0 + - name: read + energy: 2048.0 + - name: write + energy: 2048.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: update + energy: 30.878292 + - name: read + energy: 43.353054 + - name: write + energy: 30.878292 + - name: leak + energy: 0.007972 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..1] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + actions: + - name: update + energy: 0.42564 + - name: read + energy: 0.42564 + - name: write + energy: 0.42564 + - name: leak + energy: 0.000861 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..1] + estimator: Aladdin_table + - name: System_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..d09c92af --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,103 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: System_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..b25580ae --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,15 @@ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +K 1 R 1 P 1 +P +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +K 1 R 1 P 1 +P +t0 +K 32 R 3 P 16 +KRP diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.oaves.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/05-mapper-conv1d+oc-3level/ref-output/null/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/README.md new file mode 100644 index 00000000..cc5963c1 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/README.md @@ -0,0 +1,39 @@ +Exercise 6 +========== + +## Overview + +In this exercise, we present a set of detailed architecture and constraints specifications used to describe the Eyeriss accelerator architecture. The constraints include directives to model the _Row Stationary_ dataflow. We use a 7-deep loop nest representing a full Convolutional Neural Network layer as the input problem. We run the mapper on an example instance of the layer shape to find an optimal mapping on the Eyeriss architecture and derive performance, energy and other statistics from the execution. + +## Steps and Observations + +Take a look at the YAML files describing the problem, architecture, mapspace constraints and mapper configuration. +* The problem should be fairly straightforward to understand, but note the use of a new directive called `coefficients`, which are used to set up the _stride_ and _dilation_ parameters used in index calculation. +* The architecture is similar to that from exercise 4, with the following differences: + * There are 256 PEs instead of 16. + * Inside each PE is a set of 3 register files, one each for Weights, Inputs and Outputs. Bypass directives in the constraints are used to force each data-space into its designated register file. + * There is a `DummyBuffer` level between the GlobalBuffer and PEs. This is fake buffer with 0 size that bypasses all data. It is a simulation hack used to work around a temporary spatial-mapping limitation. +* The mapspace constraints may look daunting, but they follow the same rules as the constraints in the previous exercise and set up factor, permutation and bypass constraints for each temporal and spatial tiling level in the architecture. +* The mapper configuration contains a new flag called `live_status`. This triggers an ncurses-based UI screen that allows you to track the activity of all mapper threads. + +To run the exercise, type the following from the exercises/timeloop directory: +``` + python3 run_example.py 06 +``` + +The status screen shows the following per-thread statistics: +* Total mappings visited. +* Invalid mappings rejected (because of capacity violations or spatial fanout violations). +* Valid mappings evaluated. +* Consecutive invalid mappings rejected. +* Sub-optimal valid mappings evaluated since the last update of the optimal mapping. +* Stats for the optimal mapping seen thus far. + +The mapper terminates gracefully when any of the following conditions are met: +* Every mapping in the mapspace has been visited. +* Number of valid mappings evaluated >= `search_size`. +* Consecutive invalid mappings rejected >= `timeout`. +* Consecutive sub-optimal valid mappings evaluated >= `victory_condition`. +* SIGINT (Ctrl+C) is detected. + +Please experiment with the configuration files to get comfortable with the tool. We will have a combined Timeloop+Accelergy lab exercise based on this architecture after the Accelergy presentation. diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/intmac.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/intmac.yaml new file mode 100644 index 00000000..b96f4813 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/intmac.yaml @@ -0,0 +1,32 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + + subcomponents: + - name: intadder + class: aladdin_adder + attributes: {width: adder_width} + + - name: intmultiplier + class: aladdin_adder + attributes: {width_a: multiplier_width, width_b: multiplier_width} + + actions: + - name: compute + subcomponents: + - name: intadder + actions: [{name: read}] + - name: intmultiplier + actions: [{name: read}] + - name: leak + subcomponents: + - name: intadder + actions: [{name: leak}] + - name: intmultiplier + actions: [{name: leak}] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/regfile.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/regfile.yaml new file mode 100644 index 00000000..006ce976 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/regfile.yaml @@ -0,0 +1,45 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + + + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage[1..width] + actions: [{name: write}] + - name: comparator[1..depth] + actions: [{name: compare}] + - name: read + subcomponents: + - name: storage[1..width] + actions: [{name: read}] + - name: comparator[1..depth] + actions: [{name: compare}] + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}] + - name: comparator[1..depth] + actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/smartbuffer_RF.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/smartbuffer_RF.yaml new file mode 100644 index 00000000..0ed5d7d4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/smartbuffer_RF.yaml @@ -0,0 +1,63 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + # CACTI requires >= 4B wide and >= 64 entries deep + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + + area_scale: widthscale * depthscale + # CACTI scaling: 2x depth --> 1.56x dynamic power + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale # Leakage proportional to area + n_rdwr_ports: 1 # Can be overwridden + global_cycle_seconds: "must_specify" + + + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage + actions: [{name: write, energy_scale: dynamic_energy_scale}] + - name: address_generators[0] + actions: [{name: add}] + - name: read + subcomponents: + - name: storage + actions: [{name: read, energy_scale: dynamic_energy_scale}] + - name: address_generators[1] + actions: [{name: add}] + - name: leak + subcomponents: + - name: storage + actions: [{name: leak, energy_scale: static_energy_scale}] + - name: address_generators[0..1] + actions: [{name: leak}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/smartbuffer_SRAM.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/smartbuffer_SRAM.yaml new file mode 100644 index 00000000..33069be6 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/components/smartbuffer_SRAM.yaml @@ -0,0 +1,63 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + # CACTI requires >= 4B wide and >= 64 entries deep + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + + area_scale: widthscale * depthscale + # CACTI scaling: 2x depth --> 1.56x dynamic power + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale # Leakage proportional to area + n_rdwr_ports: 1 # Can be overwridden + global_cycle_seconds: "must_specify" + + + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage + actions: [{name: write, energy_scale: dynamic_energy_scale}] + - name: address_generators[0] + actions: [{name: add}] + - name: read + subcomponents: + - name: storage + actions: [{name: read, energy_scale: dynamic_energy_scale}] + - name: address_generators[1] + actions: [{name: add}] + - name: leak + subcomponents: + - name: storage + actions: [{name: leak, energy_scale: static_energy_scale}] + - name: address_generators[0..1] + actions: [{name: leak}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/eyeriss_like.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/eyeriss_like.yaml new file mode 100644 index 00000000..3528b423 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/arch/eyeriss_like.yaml @@ -0,0 +1,108 @@ +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + attributes: + technology: "32nm" + global_cycle_seconds: 1e-9 + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + - !Container # Eyeriss accelerator + name: eyeriss + + - !Component # Global buffer for inputs & outputs + name: shared_glb + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + constraints: + dataspace: {keep: [Inputs, Outputs], bypass: [Weights]} + + - !Container # Each column of PEs produces a different psum row + name: PE_column + spatial: {meshX: 14} + constraints: + spatial: + permutation: [N, C, P, R, S, Q, M] + factors: [N=1, C=1, P=1, R=1, S=1] + split: 7 + + - !Container # Each PE in the column receives a different filter row + name: PE + spatial: {meshY: 12} + constraints: + spatial: + split: 4 + permutation: [N, P, Q, R, S, C, M] + factors: [N=1, P=1, Q=1, R=1] + + - !Parallel # Input/Output/Weight scratchpads in parallel + nodes: + - !Component # Input scratchpad + name: ifmap_spad + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Inputs]} + temporal: + permutation: [N, M, C, P, Q, R, S] + factors: [N=1, M=1, C=1, P=1, Q=1, R=1, S=1] + + - !Component # Weight scratchpad + name: weights_spad + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Weights]} + temporal: + permutation: [N, M, P, Q, S, C, R] + factors: [N=1, M=1, P=1, Q=1, S=1] + + - !Component # Output scratchpad + name: psum_spad + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + constraints: + dataspace: {keep: [Outputs]} + temporal: + permutation: [N, C, P, Q, R, S, M] + factors: [N=1, C=1, R=1, S=1, P=1, Q=1] + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/mapper/mapper.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/mapper/mapper.yaml new file mode 100644 index 00000000..00f6b69f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/mapper/mapper.yaml @@ -0,0 +1,9 @@ +mapper: + version: 0.4 + optimization_metrics: [ delay, energy ] + live_status: False + num_threads: 8 + timeout: 15000 + victory_condition: 500 + algorithm: random_pruned + max_permutations_per_if_visit: 16 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/parsed-processed-input.yaml new file mode 100644 index 00000000..b507267e --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/parsed-processed-input.yaml @@ -0,0 +1,592 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "32nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - leak + - read + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - leak + - read + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - leak + - read + enabled: true + - name: weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - leak + - read + enabled: true + - name: psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - leak + - read + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - type: temporal + permutation: N + target: shared_glb + - type: spatial + factors: N=1,C=1,P=1,R=1,S=1 + permutation: NCPRSQM + split: 7 + target: inter_PE_column_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + factors: N=1,P=1,Q=1,R=1 + permutation: NPQRSCM + split: 4 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + bypass: + - Outputs + - Weights + target: ifmap_spad + - permutation: NMCPQRS + factors: N=1,M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + bypass: + - Outputs + - Inputs + target: weights_spad + - permutation: NMPQSCR + factors: N=1,M=1,P=1,Q=1,S=1 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + bypass: + - Weights + - Inputs + target: psum_spad + - permutation: NCPQRSM + factors: N=1,C=1,R=1,S=1,P=1,Q=1 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - delay + - energy + version: '0.4' + live_status: false + num_threads: 8 + timeout: 15000 + victory_condition: 500 + algorithm: random_pruned + max_permutations_per_if_visit: 16 + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..0c904bbb --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + - name: system_top_level.mac[1..168] + area: 330.392 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..6d89e0ad --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 330.392 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..98fc39d0 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 14.1379 + - name: read + arguments: {} + energy: 18.1838 + - name: leak + arguments: {} + energy: 0.00565154 + - name: update + arguments: {} + energy: 14.1379 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.221404 + - name: read + arguments: {} + energy: 0.253957 + - name: leak + arguments: {} + energy: 0.000127419 + - name: update + arguments: {} + energy: 0.221404 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 2.37642 + - name: read + arguments: {} + energy: 2.49655 + - name: leak + arguments: {} + energy: 0.00201372 + - name: update + arguments: {} + energy: 2.37642 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.275033 + - name: read + arguments: {} + energy: 0.315775 + - name: leak + arguments: {} + energy: 0.000169297 + - name: update + arguments: {} + energy: 0.275033 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.262781 + - name: leak + arguments: {} + energy: 0.00300321 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..2b44a84f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: write + energy: 512.0 + - name: update + energy: 512.0 + - name: leak + energy: 0.0 + - name: read + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 14.1379 + - name: read + energy: 18.1838 + - name: leak + energy: 0.00565154 + - name: update + energy: 14.1379 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.221404 + - name: read + energy: 0.253957 + - name: leak + energy: 0.000127419 + - name: update + energy: 0.221404 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 2.37642 + - name: read + energy: 2.49655 + - name: leak + energy: 0.00201372 + - name: update + energy: 2.37642 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.275033 + - name: read + energy: 0.315775 + - name: leak + energy: 0.000169297 + - name: update + energy: 0.275033 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.262781 + - name: leak + energy: 0.00300321 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..8b3070f8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,269 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.map.tensella.txt new file mode 100644 index 00000000..e25ce5cb --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.map.tensella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 128 M 1 R 1 S 1 N 1 P 4 Q 4 +CPQ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 1 M 8 R 1 S 1 N 1 P 14 Q 7 +PQM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 4 R 1 S 1 N 1 P 1 Q 2 +QM +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 1 M 4 R 1 S 3 N 1 P 1 Q 1 +SM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 1 M 1 R 3 S 1 N 1 P 1 Q 1 +R +t0 +C 1 M 2 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.orojenesis.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/output/timeloop-mapper.orojenesis.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/prob/VGG02_layer5.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/prob/VGG02_layer5.yaml new file mode 100644 index 00000000..ad835e64 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/prob/VGG02_layer5.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/parsed-processed-input.yaml new file mode 100644 index 00000000..3600d9ea --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/parsed-processed-input.yaml @@ -0,0 +1,591 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "32nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - type: temporal + permutation: N + target: shared_glb + - type: spatial + factors: N=1,C=1,P=1,R=1,S=1 + permutation: NCPRSQM + split: 7 + target: inter_PE_column_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + factors: N=1,P=1,Q=1,R=1 + permutation: NPQRSCM + split: 4 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + bypass: + - Outputs + - Weights + target: ifmap_spad + - permutation: NMCPQRS + factors: N=1,M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + bypass: + - Outputs + - Inputs + target: weights_spad + - permutation: NMPQSCR + factors: N=1,M=1,P=1,Q=1,S=1 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + bypass: + - Weights + - Inputs + target: psum_spad + - permutation: NCPQRSM + factors: N=1,C=1,R=1,S=1,P=1,Q=1 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - delay + - energy + version: '0.4' + live_status: false + num_threads: 8 + timeout: 15000 + victory_condition: 500 + algorithm: random_pruned + max_permutations_per_if_visit: 16 + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..3abe0818 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 217363.36892 + - name: system_top_level.ifmap_spad[1..168] + area: 70.091961 + - name: system_top_level.weights_spad[1..168] + area: 5816.44278 + - name: system_top_level.psum_spad[1..168] + area: 123.627348 + - name: system_top_level.mac[1..168] + area: 191.82 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..4ab3cd6a --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.shared_glb[1..1] + area: 217363.36892 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 70.091961 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 5816.44278 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 123.627348 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 191.82 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..805cd7b5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 14.137929 + - name: read + arguments: {} + energy: 18.183829 + - name: leak + arguments: {} + energy: 0.005652 + - name: update + arguments: {} + energy: 14.137929 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.176713 + - name: read + arguments: {} + energy: 0.202442 + - name: leak + arguments: {} + energy: 0.000101 + - name: update + arguments: {} + energy: 0.176713 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 1.881657 + - name: read + arguments: {} + energy: 1.976602 + - name: leak + arguments: {} + energy: 0.001592 + - name: update + arguments: {} + energy: 1.881657 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.2191 + - name: read + arguments: {} + energy: 0.2513 + - name: leak + arguments: {} + energy: 0.000134 + - name: update + arguments: {} + energy: 0.2191 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.207692 + - name: leak + arguments: {} + energy: 0.002374 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..c657ad36 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: update + energy: 512.0 + - name: read + energy: 512.0 + - name: write + energy: 512.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 14.137929 + - name: read + energy: 18.183829 + - name: leak + energy: 0.005652 + - name: update + energy: 14.137929 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.176713 + - name: read + energy: 0.202442 + - name: leak + energy: 0.000101 + - name: update + energy: 0.176713 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 1.881657 + - name: read + energy: 1.976602 + - name: leak + energy: 0.001592 + - name: update + energy: 1.881657 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.2191 + - name: read + energy: 0.2513 + - name: leak + energy: 0.000134 + - name: update + energy: 0.2191 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.207692 + - name: leak + energy: 0.002374 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..ece40ad8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,252 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..6aa52069 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 4 M 4 R 1 S 1 N 1 P 7 Q 4 +MPCQ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 4 M 2 R 1 S 1 N 1 P 8 Q 1 +PCM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 14 +Q +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 1 M 4 R 1 S 3 N 1 P 1 Q 1 +SM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 8 M 1 R 3 S 1 N 1 P 1 Q 1 +CR +t0 +C 1 M 8 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.oaves.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-mapper-convlayer-eyeriss/ref-output/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/README.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/README.md new file mode 100644 index 00000000..cc5963c1 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/README.md @@ -0,0 +1,39 @@ +Exercise 6 +========== + +## Overview + +In this exercise, we present a set of detailed architecture and constraints specifications used to describe the Eyeriss accelerator architecture. The constraints include directives to model the _Row Stationary_ dataflow. We use a 7-deep loop nest representing a full Convolutional Neural Network layer as the input problem. We run the mapper on an example instance of the layer shape to find an optimal mapping on the Eyeriss architecture and derive performance, energy and other statistics from the execution. + +## Steps and Observations + +Take a look at the YAML files describing the problem, architecture, mapspace constraints and mapper configuration. +* The problem should be fairly straightforward to understand, but note the use of a new directive called `coefficients`, which are used to set up the _stride_ and _dilation_ parameters used in index calculation. +* The architecture is similar to that from exercise 4, with the following differences: + * There are 256 PEs instead of 16. + * Inside each PE is a set of 3 register files, one each for Weights, Inputs and Outputs. Bypass directives in the constraints are used to force each data-space into its designated register file. + * There is a `DummyBuffer` level between the GlobalBuffer and PEs. This is fake buffer with 0 size that bypasses all data. It is a simulation hack used to work around a temporary spatial-mapping limitation. +* The mapspace constraints may look daunting, but they follow the same rules as the constraints in the previous exercise and set up factor, permutation and bypass constraints for each temporal and spatial tiling level in the architecture. +* The mapper configuration contains a new flag called `live_status`. This triggers an ncurses-based UI screen that allows you to track the activity of all mapper threads. + +To run the exercise, type the following from the exercises/timeloop directory: +``` + python3 run_example.py 06 +``` + +The status screen shows the following per-thread statistics: +* Total mappings visited. +* Invalid mappings rejected (because of capacity violations or spatial fanout violations). +* Valid mappings evaluated. +* Consecutive invalid mappings rejected. +* Sub-optimal valid mappings evaluated since the last update of the optimal mapping. +* Stats for the optimal mapping seen thus far. + +The mapper terminates gracefully when any of the following conditions are met: +* Every mapping in the mapspace has been visited. +* Number of valid mappings evaluated >= `search_size`. +* Consecutive invalid mappings rejected >= `timeout`. +* Consecutive sub-optimal valid mappings evaluated >= `victory_condition`. +* SIGINT (Ctrl+C) is detected. + +Please experiment with the configuration files to get comfortable with the tool. We will have a combined Timeloop+Accelergy lab exercise based on this architecture after the Accelergy presentation. diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/intmac.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/intmac.yaml new file mode 100644 index 00000000..b96f4813 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/intmac.yaml @@ -0,0 +1,32 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + + subcomponents: + - name: intadder + class: aladdin_adder + attributes: {width: adder_width} + + - name: intmultiplier + class: aladdin_adder + attributes: {width_a: multiplier_width, width_b: multiplier_width} + + actions: + - name: compute + subcomponents: + - name: intadder + actions: [{name: read}] + - name: intmultiplier + actions: [{name: read}] + - name: leak + subcomponents: + - name: intadder + actions: [{name: leak}] + - name: intmultiplier + actions: [{name: leak}] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/regfile.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/regfile.yaml new file mode 100644 index 00000000..006ce976 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/regfile.yaml @@ -0,0 +1,45 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + + + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage[1..width] + actions: [{name: write}] + - name: comparator[1..depth] + actions: [{name: compare}] + - name: read + subcomponents: + - name: storage[1..width] + actions: [{name: read}] + - name: comparator[1..depth] + actions: [{name: compare}] + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}] + - name: comparator[1..depth] + actions: [{name: leak, arguments: {global_cycle_seconds: global_cycle_seconds}}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/smartbuffer_RF.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/smartbuffer_RF.yaml new file mode 100644 index 00000000..0ed5d7d4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/smartbuffer_RF.yaml @@ -0,0 +1,63 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + # CACTI requires >= 4B wide and >= 64 entries deep + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + + area_scale: widthscale * depthscale + # CACTI scaling: 2x depth --> 1.56x dynamic power + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale # Leakage proportional to area + n_rdwr_ports: 1 # Can be overwridden + global_cycle_seconds: "must_specify" + + + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage + actions: [{name: write, energy_scale: dynamic_energy_scale}] + - name: address_generators[0] + actions: [{name: add}] + - name: read + subcomponents: + - name: storage + actions: [{name: read, energy_scale: dynamic_energy_scale}] + - name: address_generators[1] + actions: [{name: add}] + - name: leak + subcomponents: + - name: storage + actions: [{name: leak, energy_scale: static_energy_scale}] + - name: address_generators[0..1] + actions: [{name: leak}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/smartbuffer_SRAM.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/smartbuffer_SRAM.yaml new file mode 100644 index 00000000..33069be6 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/components/smartbuffer_SRAM.yaml @@ -0,0 +1,63 @@ +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + # CACTI requires >= 4B wide and >= 64 entries deep + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + + area_scale: widthscale * depthscale + # CACTI scaling: 2x depth --> 1.56x dynamic power + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale # Leakage proportional to area + n_rdwr_ports: 1 # Can be overwridden + global_cycle_seconds: "must_specify" + + + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + + # We don't need to scale the address generators + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + global_cycle_seconds: global_cycle_seconds + + actions: + - &write_action + name: write + subcomponents: + - name: storage + actions: [{name: write, energy_scale: dynamic_energy_scale}] + - name: address_generators[0] + actions: [{name: add}] + - name: read + subcomponents: + - name: storage + actions: [{name: read, energy_scale: dynamic_energy_scale}] + - name: address_generators[1] + actions: [{name: add}] + - name: leak + subcomponents: + - name: storage + actions: [{name: leak, energy_scale: static_energy_scale}] + - name: address_generators[0..1] + actions: [{name: leak}] + - name: update + << : *write_action # Update is the same as write \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/eyeriss_like.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/eyeriss_like.yaml new file mode 100644 index 00000000..a5fe2eef --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/arch/eyeriss_like.yaml @@ -0,0 +1,81 @@ +architecture: + # ============================================================ + # Architecture Description + # ============================================================ + version: 0.4 + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + attributes: + technology: "32nm" + global_cycle_seconds: 1e-9 + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + - !Container # Eyeriss accelerator + name: eyeriss + + - !Component # Global buffer for inputs & outputs + name: shared_glb + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + + - !Container # Each column of PEs produces a different psum row + name: PE_column + spatial: {meshX: 14} + + - !Container # Each PE in the column receives a different filter row + name: PE + spatial: {meshY: 12} + + - !Parallel # Input/Output/Weight scratchpads in parallel + nodes: + - !Component # Input scratchpad + name: ifmap_spad + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + + - !Component # Weight scratchpad + name: weights_spad + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + + - !Component # Output scratchpad + name: psum_spad + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml new file mode 100644 index 00000000..00cdfcbc --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml @@ -0,0 +1,597 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "32nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - read + - leak + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - read + - leak + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - read + - leak + enabled: true + - name: weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - read + - leak + enabled: true + - name: psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - write + - update + - read + - leak + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: + - target: DRAM + type: temporal + factors: C=4,M=4,R=1,S=1,N=1,P=7,Q=4 + permutation: MPCQRSN + - target: DRAM + type: bypass + keep: + - Weights + - Inputs + - Outputs + - target: shared_glb + type: temporal + factors: C=4,M=2,R=1,S=1,N=1,P=8,Q=1 + permutation: PCMRSNQ + - target: shared_glb + type: bypass + keep: + - Inputs + - Outputs + bypass: + - Weights + - type: spatial + target: inter_PE_column_spatial + factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=14 + permutation: QCMRSNP + split: 1 + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + target: inter_PE_spatial + factors: C=1,M=4,R=1,S=3,N=1,P=1,Q=1 + permutation: SMCRNPQ + split: 0 + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - target: ifmap_spad + type: temporal + factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + - target: ifmap_spad + type: bypass + keep: + - Inputs + bypass: + - Weights + - Outputs + - target: weights_spad + type: temporal + factors: C=8,M=1,R=3,S=1,N=1,P=1,Q=1 + permutation: CRMSNPQ + - target: weights_spad + type: bypass + keep: + - Weights + bypass: + - Inputs + - Outputs + - target: psum_spad + type: temporal + factors: C=1,M=8,R=1,S=1,N=1,P=1,Q=1 + permutation: MCRSNPQ + - target: psum_spad + type: bypass + keep: + - Outputs + bypass: + - Weights + - Inputs +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..0c904bbb --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + - name: system_top_level.mac[1..168] + area: 330.392 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..6d89e0ad --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 330.392 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..f82dc2be --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 14.1379 + - name: read + arguments: {} + energy: 18.1838 + - name: leak + arguments: {} + energy: 0.00565154 + - name: update + arguments: {} + energy: 14.1379 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.221404 + - name: read + arguments: {} + energy: 0.253957 + - name: leak + arguments: {} + energy: 0.000127419 + - name: update + arguments: {} + energy: 0.221404 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 2.37642 + - name: read + arguments: {} + energy: 2.49655 + - name: leak + arguments: {} + energy: 0.00201372 + - name: update + arguments: {} + energy: 2.37642 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.275033 + - name: read + arguments: {} + energy: 0.315775 + - name: leak + arguments: {} + energy: 0.000169297 + - name: update + arguments: {} + energy: 0.275033 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.262781 + - name: leak + arguments: {} + energy: 0.00300321 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..a27c6a5f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: read + energy: 512.0 + - name: update + energy: 512.0 + - name: leak + energy: 0.0 + - name: write + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 14.1379 + - name: read + energy: 18.1838 + - name: leak + energy: 0.00565154 + - name: update + energy: 14.1379 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.221404 + - name: read + energy: 0.253957 + - name: leak + energy: 0.000127419 + - name: update + energy: 0.221404 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 2.37642 + - name: read + energy: 2.49655 + - name: leak + energy: 0.00201372 + - name: update + energy: 2.37642 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.275033 + - name: read + energy: 0.315775 + - name: leak + energy: 0.000169297 + - name: update + energy: 0.275033 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.262781 + - name: leak + energy: 0.00300321 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..b8100d9c --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,269 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - read + - update + - leak + - write + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.map.tensella.txt new file mode 100644 index 00000000..6aa52069 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.map.tensella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 4 M 4 R 1 S 1 N 1 P 7 Q 4 +MPCQ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 4 M 2 R 1 S 1 N 1 P 8 Q 1 +PCM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 14 +Q +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 1 M 4 R 1 S 3 N 1 P 1 Q 1 +SM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 8 M 1 R 3 S 1 N 1 P 1 Q 1 +CR +t0 +C 1 M 8 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.orojenesis.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-mapper.orojenesis.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ART.yaml new file mode 100644 index 00000000..0c904bbb --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + - name: system_top_level.mac[1..168] + area: 330.392 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..6d89e0ad --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 330.392 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT.yaml new file mode 100644 index 00000000..d8420b85 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 14.1379 + - name: read + arguments: {} + energy: 18.1838 + - name: leak + arguments: {} + energy: 0.00565154 + - name: update + arguments: {} + energy: 14.1379 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.221404 + - name: read + arguments: {} + energy: 0.253957 + - name: leak + arguments: {} + energy: 0.000127419 + - name: update + arguments: {} + energy: 0.221404 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 2.37642 + - name: read + arguments: {} + energy: 2.49655 + - name: leak + arguments: {} + energy: 0.00201372 + - name: update + arguments: {} + energy: 2.37642 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.275033 + - name: read + arguments: {} + energy: 0.315775 + - name: leak + arguments: {} + energy: 0.000169297 + - name: update + arguments: {} + energy: 0.275033 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.262781 + - name: leak + arguments: {} + energy: 0.00300321 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..6c2fd4c4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: write + energy: 512.0 + - name: update + energy: 512.0 + - name: read + energy: 512.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 14.1379 + - name: read + energy: 18.1838 + - name: leak + energy: 0.00565154 + - name: update + energy: 14.1379 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.221404 + - name: read + energy: 0.253957 + - name: leak + energy: 0.000127419 + - name: update + energy: 0.221404 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 2.37642 + - name: read + energy: 2.49655 + - name: leak + energy: 0.00201372 + - name: update + energy: 2.37642 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.275033 + - name: read + energy: 0.315775 + - name: leak + energy: 0.000169297 + - name: update + energy: 0.275033 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.262781 + - name: leak + energy: 0.00300321 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..ba3900dd --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,269 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - update + - read + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - write + - update + - read + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - write + - update + - read + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - write + - update + - read + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - write + - update + - read + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.map.tensella.txt new file mode 100644 index 00000000..6aa52069 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.map.tensella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 4 M 4 R 1 S 1 N 1 P 7 Q 4 +MPCQ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 4 M 2 R 1 S 1 N 1 P 8 Q 1 +PCM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 14 +Q +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 1 M 4 R 1 S 3 N 1 P 1 Q 1 +SM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 8 M 1 R 3 S 1 N 1 P 1 Q 1 +CR +t0 +C 1 M 8 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/prob/VGG02_layer5.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/prob/VGG02_layer5.yaml new file mode 100644 index 00000000..ad835e64 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/prob/VGG02_layer5.yaml @@ -0,0 +1,59 @@ +problem: + version: 0.4 + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/parsed-processed-input.yaml new file mode 100644 index 00000000..3600d9ea --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/parsed-processed-input.yaml @@ -0,0 +1,591 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "32nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-9 + power_gated_at: null + enabled: true + - name: ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - update + - read + - write + - leak + enabled: true + - name: mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: N + target: DRAM + - keep: + - Inputs + - Outputs + bypass: + - Weights + type: bypass + target: shared_glb + - type: temporal + permutation: N + target: shared_glb + - type: spatial + factors: N=1,C=1,P=1,R=1,S=1 + permutation: NCPRSQM + split: 7 + target: inter_PE_column_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_column_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_column_spatial + - type: spatial + factors: N=1,P=1,Q=1,R=1 + permutation: NPQRSCM + split: 4 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1 + permutation: CMRSNPQ + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial + - keep: + - Inputs + type: bypass + bypass: + - Outputs + - Weights + target: ifmap_spad + - permutation: NMCPQRS + factors: N=1,M=1,C=1,P=1,Q=1,R=1,S=1 + type: temporal + target: ifmap_spad + - keep: + - Weights + type: bypass + bypass: + - Outputs + - Inputs + target: weights_spad + - permutation: NMPQSCR + factors: N=1,M=1,P=1,Q=1,S=1 + type: temporal + target: weights_spad + - keep: + - Outputs + type: bypass + bypass: + - Weights + - Inputs + target: psum_spad + - permutation: NCPQRSM + factors: N=1,C=1,R=1,S=1,P=1,Q=1 + type: temporal + target: psum_spad +problem: + version: '0.4' + instance: + C: 128 + Hdilation: 1 + Hstride: 1 + M: 256 + N: 1 + P: 56 + Q: 56 + R: 3 + S: 3 + Wdilation: 1 + Wstride: 1 + densities: {} + shape: + coefficients: + - default: 1 + name: Wstride + - default: 1 + name: Hstride + - default: 1 + name: Wdilation + - default: 1 + name: Hdilation + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + name: CNN_Layer +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + technology: "must_specify" + multiplier_width: "must_specify" + adder_width: "must_specify" + global_cycle_seconds: "must_specify" + subcomponents: + - name: intadder + class: aladdin_adder + attributes: + width: adder_width + - name: intmultiplier + class: aladdin_adder + attributes: + width_a: multiplier_width + width_b: multiplier_width + actions: + - name: compute + subcomponents: + - name: intadder + actions: + - name: read + - name: intmultiplier + actions: + - name: read + - name: leak + subcomponents: + - name: intadder + actions: + - name: leak + - name: intmultiplier + actions: + - name: leak + - name: smartbuffer_RF + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: regfile + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: regfile + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + subcomponents: + - name: storage[1..width*depth] + class: aladdin_register + attributes: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + class: aladdin_comparator + attributes: + n_bits: max(1, ceil(log2(depth))) + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: read + subcomponents: + - name: storage[1..width] + actions: + - name: read + - name: comparator[1..depth] + actions: + - name: compare + - name: leak + subcomponents: + - name: storage[1..width*depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: comparator[1..depth] + actions: + - name: leak + arguments: + global_cycle_seconds: global_cycle_seconds + - name: update + subcomponents: + - name: storage[1..width] + actions: + - name: write + - name: comparator[1..depth] + actions: + - name: compare + - name: smartbuffer_SRAM + attributes: + technology: "must_specify" + width: "must_specify" + depth: "must_specify" + memory_width: max(32, width) + memory_depth: max(64, depth) + widthscale: width / memory_width + depthscale: depth / memory_depth + real_depth: depth + area_scale: widthscale * depthscale + dynamic_energy_scale: widthscale * (depthscale ** (1.56 / 2)) + static_energy_scale: area_scale + n_rdwr_ports: 1 + global_cycle_seconds: "must_specify" + subcomponents: + - name: storage + class: SRAM + area_scale: area_scale + attributes: + width: memory_width + depth: memory_depth + n_rdwr_ports: n_rdwr_ports + global_cycle_seconds: global_cycle_seconds + - name: address_generators[0..1] + class: intadder + attributes: + n_bits: max(1, ceil(log2(real_depth))) if real_depth >= 1 else 1 + precision: max(1, ceil(log2(real_depth))) if real_depth >= 1 else + 1 + global_cycle_seconds: global_cycle_seconds + actions: + - name: write + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add + - name: read + subcomponents: + - name: storage + actions: + - name: read + energy_scale: dynamic_energy_scale + - name: address_generators[1] + actions: + - name: add + - name: leak + subcomponents: + - name: storage + actions: + - name: leak + energy_scale: static_energy_scale + - name: address_generators[0..1] + actions: + - name: leak + - name: update + subcomponents: + - name: storage + actions: + - name: write + energy_scale: dynamic_energy_scale + - name: address_generators[0] + actions: + - name: add +mapping: [] +mapper: + optimization_metrics: + - delay + - energy + version: '0.4' + live_status: false + num_threads: 8 + timeout: 15000 + victory_condition: 500 + algorithm: random_pruned + max_permutations_per_if_visit: 16 + out_prefix: timeloop-mapper + optimization_metric: [] + search_size: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + filter_revisits: false +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..3abe0818 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 217363.36892 + - name: system_top_level.ifmap_spad[1..168] + area: 70.091961 + - name: system_top_level.weights_spad[1..168] + area: 5816.44278 + - name: system_top_level.psum_spad[1..168] + area: 123.627348 + - name: system_top_level.mac[1..168] + area: 191.82 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..4ab3cd6a --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.shared_glb[1..1] + area: 217363.36892 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 70.091961 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 5816.44278 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 123.627348 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 191.82 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..805cd7b5 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 14.137929 + - name: read + arguments: {} + energy: 18.183829 + - name: leak + arguments: {} + energy: 0.005652 + - name: update + arguments: {} + energy: 14.137929 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.176713 + - name: read + arguments: {} + energy: 0.202442 + - name: leak + arguments: {} + energy: 0.000101 + - name: update + arguments: {} + energy: 0.176713 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 1.881657 + - name: read + arguments: {} + energy: 1.976602 + - name: leak + arguments: {} + energy: 0.001592 + - name: update + arguments: {} + energy: 1.881657 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.2191 + - name: read + arguments: {} + energy: 0.2513 + - name: leak + arguments: {} + energy: 0.000134 + - name: update + arguments: {} + energy: 0.2191 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.207692 + - name: leak + arguments: {} + energy: 0.002374 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..c657ad36 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: update + energy: 512.0 + - name: read + energy: 512.0 + - name: write + energy: 512.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 14.137929 + - name: read + energy: 18.183829 + - name: leak + energy: 0.005652 + - name: update + energy: 14.137929 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.176713 + - name: read + energy: 0.202442 + - name: leak + energy: 0.000101 + - name: update + energy: 0.176713 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 1.881657 + - name: read + energy: 1.976602 + - name: leak + energy: 0.001592 + - name: update + energy: 1.881657 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.2191 + - name: read + energy: 0.2513 + - name: leak + energy: 0.000134 + - name: update + energy: 0.2191 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.207692 + - name: leak + energy: 0.002374 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..ece40ad8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,252 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - update + - read + - write + - leak + enabled: true + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.map.tenssella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..6aa52069 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,42 @@ +#error Tenssella does not support bypass. +t6 +C 4 M 4 R 1 S 1 N 1 P 7 Q 4 +MPCQ +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t5 +C 4 M 2 R 1 S 1 N 1 P 8 Q 1 +PCM +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s4 +C 1 M 1 R 1 S 1 N 1 P 1 Q 14 +Q +7 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t3 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +s3 +C 1 M 4 R 1 S 3 N 1 P 1 Q 1 +SM +5 +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t2 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 +Q +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 8 M 1 R 3 S 1 N 1 P 1 Q 1 +CR +t0 +C 1 M 8 R 1 S 1 N 1 P 1 Q 1 +M diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.oaves.csv b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/ref-output/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/TRACE_GUIDE.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/TRACE_GUIDE.md new file mode 100644 index 00000000..bcc88297 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/TRACE_GUIDE.md @@ -0,0 +1,122 @@ +# Timeloop 追踪功能使用指南 + +## 概述 + +Timeloop的追踪功能可以生成详细的point-sets访问轨迹,显示嵌套循环分析在空间-时间中访问的每个坐标。这对于深入理解映射行为非常有用,但会显著降低仿真速度。 + +## 启用方式 + +### 方法1: 使用修改后的run_example.py + +```bash +# 正常运行 +python run_example.py 00 + +# 启用追踪模式 +python run_example.py 00 --enable-trace +``` + +### 方法2: 手动设置环境变量 + +```bash +export TIMELOOP_ENABLE_TRACING=1 +export TIMELOOP_DISABLE_TEMPORAL_EXTRAPOLATION=1 +export TIMELOOP_DISABLE_SPATIAL_EXTRAPOLATION=1 + +# 然后运行任何timeloop命令 +python run_example.py 00 +``` + +### 方法3: 使用便捷脚本 + +```bash +# 正常模式 +python run_with_trace.py 00 + +# 追踪模式 +python run_with_trace.py 00 --enable-trace +``` + +## 环境变量说明 + +| 变量名 | 作用 | 影响 | +|--------|------|------| +| `TIMELOOP_ENABLE_TRACING=1` | 启用追踪输出 | 生成详细的访问轨迹 | +| `TIMELOOP_DISABLE_TEMPORAL_EXTRAPOLATION=1` | 禁用时间外推 | 完整仿真所有时间步骤 | +| `TIMELOOP_DISABLE_SPATIAL_EXTRAPOLATION=1` | 禁用空间外推 | 完整仿真所有空间位置 | + +## 使用场景 + +### ✅ 适合追踪的情况 +- 分析特定映射的详细行为 +- 调试映射问题 +- 理解数据访问模式 +- 验证优化效果 + +### ❌ 不适合追踪的情况 +- 运行mapper搜索大量映射 +- 快速原型验证 +- 大规模工作负载分析 +- 性能基准测试 + +## 输出差异 + +### 正常模式输出 +``` +Utilization = 1.00 | pJ/Compute = 2.175 | Cycles = 48 +``` + +### 追踪模式输出 +``` +🔍 启用Timeloop追踪模式: + - TIMELOOP_ENABLE_TRACING=1 + - TIMELOOP_DISABLE_TEMPORAL_EXTRAPOLATION=1 + - TIMELOOP_DISABLE_SPATIAL_EXTRAPOLATION=1 + +Start Parsering Layout +No Layout specified, so using bandwidth based modeling + t/ s/ Weights: { [0:3), } Inputs: { [0:18), } Outputs: { [0:16), } +Utilization = 1.00 | pJ/Compute = 2.175 | Cycles = 48 +[详细的point-sets访问轨迹...] +``` + +## 性能影响 + +| 模式 | 速度 | 详细程度 | 推荐用途 | +|------|------|----------|----------| +| 正常模式 | 快速 | 基本统计 | 快速分析和搜索 | +| 追踪模式 | 很慢 | 极详细 | 深入调试和理解 | + +## 示例命令 + +```bash +# 基础练习追踪 +python run_example.py 00 --enable-trace + +# 权重静止映射追踪 +python run_example.py 01_ws --enable-trace + +# 输出静止映射追踪 +python run_example.py 01_os --enable-trace + +# 清除之前的输出并运行追踪 +python run_example.py --clear-outputs +python run_example.py 00 --enable-trace +``` + +## 注意事项 + +1. **仅在timeloop-model上使用**: 追踪应该仅用于特定映射分析,不要与mapper一起使用 +2. **性能开销**: 追踪模式会让Timeloop表现得更像周期级仿真器而非快速分析模型 +3. **输出大小**: 追踪输出可能非常大,确保有足够的磁盘空间 +4. **调试用途**: 主要用于理解和调试映射,不适合生产性能分析 + +## 查看结果 + +追踪结果会保存在相应练习的output目录中,例如: +``` +00-model-conv1d-1level/output/ +├── timeloop-model.stats.txt # 统计信息 +├── timeloop-model.map.txt # 映射详情 +└── [追踪相关文件...] # 详细追踪数据 +``` diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/check_outputs.py b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/check_outputs.py new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/mapping_analysis.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/mapping_analysis.md new file mode 100644 index 00000000..57c3afaa --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/mapping_analysis.md @@ -0,0 +1,90 @@ +# Weight Stationary vs Output Stationary 映射分析 + +## 问题规模 +``` +R=3 (卷积核大小) +P=16 (输出特征图大小) +Input Size = P + R - 1 = 18 +``` + +## Weight Stationary (WS) 分析 + +### 时间步分解 +``` +时间步 0: Weight[0] × Input[0:16] → Output[0:16] +时间步 1: Weight[1] × Input[1:17] → Output[0:16] (累加) +时间步 2: Weight[2] × Input[2:18] → Output[0:16] (累加) +``` + +### 存储需求 +- **Buffer层存储**: + - Weights: 1个权重值 (在每个时间步) + - Inputs: 16个输入值 (滑动窗口) + - Outputs: 16个输出值 (完整存储用于累加) + +- **数据复用**: + - Weight复用: ✅ 每个权重值被复用16次 + - Input复用: ❌ 输入值使用后即丢弃 + - Output复用: ❌ 需要保持用于累加 + +### 优势与代价 +**优势**: +- Weight访存最少 (3次 vs 48次无复用的情况) +- Buffer中Weight存储需求最小 + +**代价**: +- 必须存储完整的Output向量用于累加 +- Input需要连续供给,无法复用 + +## Output Stationary (OS) 对比 + +### 预期行为 (OS映射) +``` +空间位置 0: Weight[0:3] × Input[0:3] → Output[0] +空间位置 1: Weight[0:3] × Input[1:4] → Output[1] +... +空间位置15: Weight[0:3] × Input[15:18] → Output[15] +``` + +### OS存储需求 +- **Buffer层存储**: + - Weights: 3个权重值 (完整卷积核) + - Inputs: 3个输入值 (当前窗口) + - Outputs: 1个输出值 (当前计算结果) + +## 权衡分析总结 + +| 维度 | Weight Stationary | Output Stationary | +|------|-------------------|-------------------| +| Weight存储 | 1个值/时间步 | 3个值 (完整) | +| Input存储 | 16个值 (滑动窗口) | 3个值 (当前窗口) | +| Output存储 | 16个值 (完整) | 1个值 (当前) | +| Weight复用 | ✅ 高复用 | ✅ 中等复用 | +| Input复用 | ❌ 无复用 | ✅ 相邻窗口重叠 | +| Output复用 | ❌ 累加需求 | ✅ 立即写出 | + +## 实际性能影响 + +从Timeloop输出: +``` +Utilization = 1.00 | pJ/Compute = 7.241 | Cycles = 48 +``` + +这表明: +- 计算单元利用率100% +- 每次计算消耗7.241 pJ +- 总计算周期48个 (3个时间步 × 16个并行计算) + +## 设计选择的启示 + +**WS适合的场景**: +- Weight参数量大,访存代价高 +- Output缓存充足 +- 计算密集型应用 + +**OS适合的场景**: +- Input数据流大,带宽受限 +- Output需要立即处理 +- 存储受限的边缘设备 + +这种分析展示了硬件加速器设计中经典的**存储层次与数据复用的权衡**问题。 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/parser.py b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/parser.py new file mode 100644 index 00000000..df2f3735 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/parser.py @@ -0,0 +1,96 @@ +import re +from pprint import pprint + +def parse_hyper_rects_to_set(rects_str): + """ + 辅助函数:将 '{ [..:..), ... }' 格式的字符串解析为超矩形字符串的集合。 + + *** v4 最终修复: *** + 使用更通用的正则表达式,不再强制要求结尾处有逗号。 + 旧模式: r'(\[.*?:\s*.*?,\))' (错误地要求必须有 ',)') + 新模式: r'(\[.*?)\)' (正确地匹配从'['到')'的所有内容) + """ + if not rects_str.strip(): + return set() + # 新的、最终修正的正则表达式 + rects = re.findall(r'\[.*?\)', rects_str) + # 返回一个集合,其中每个元素都是一个类似 "[...]" 的字符串 + return set(rects) + +def parse_log_file(log_path, target_space_stamp): + # (此函数其余部分与 v3 相同,我们只修复了上面的辅助函数) + log_pattern = re.compile( + r"^\s*t/([0-9/]+)/\s+s/([0-9/]+)/\s+" + r"Weights:\s*\{(.*?)\}\s+" + r"Inputs:\s*\{(.*?)\}\s+" + r"Outputs:.*$" + ) + structured_data = {} + with open(log_path, 'r') as f: + for line in f: + match = log_pattern.match(line) + if match: + t_str = match.group(1).strip('/') + s_str = match.group(2).strip('/') + time_stamp = tuple(map(int, t_str.split('/'))) + space_stamp = tuple(map(int, s_str.split('/'))) + + weights_content = match.group(3) + inputs_content = match.group(4) + + weights_set = parse_hyper_rects_to_set(weights_content) + inputs_set = parse_hyper_rects_to_set(inputs_content) + point_set = weights_set.union(inputs_set) # <--- 现在这个 union 将会成功! + + if space_stamp not in structured_data: + structured_data[space_stamp] = [] + + if point_set: + structured_data[space_stamp].append((time_stamp, point_set)) + + for pe_data in structured_data.values(): + pe_data.sort(key=lambda x: x[0]) + return structured_data + +def calculate_delta_stream(pe_time_series_data): + # (此函数无需更改) + delta_stream = [] + if not pe_time_series_data: + return delta_stream + prev_point_set = set() + for time_stamp, current_point_set in pe_time_series_data: + delta_set = current_point_set - prev_point_set + delta_stream.append((time_stamp, delta_set)) + prev_point_set = current_point_set + return delta_stream + +# --- 主程序 --- +if __name__ == "__main__": + # 请确保这里的路径是正确的 + LOG_FILE_PATH = "/home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt" + # 关键路径PE的空间戳,请根据您的日志确认其元组长度 + CRITICAL_PATH_PE_SPACE_STAMP = (0, 0, 0, 0, 0, 0) + + all_data = parse_log_file(LOG_FILE_PATH, CRITICAL_PATH_PE_SPACE_STAMP) + + if CRITICAL_PATH_PE_SPACE_STAMP in all_data and all_data[CRITICAL_PATH_PE_SPACE_STAMP]: + critical_path_data = all_data[CRITICAL_PATH_PE_SPACE_STAMP] + print(f"\n--- 成功解析并筛选出 Space Stamp: {CRITICAL_PATH_PE_SPACE_STAMP} 的非空数据 ---") + + delta_t_stream = calculate_delta_stream(critical_path_data) + + print("\n--- Delta_t 数据需求流计算结果 ---") + print(f"{'时间戳 (Timestamp)':<25} | {'新增数据需求 (Delta_t Set)'}") + print("-" * 80) + + lines_printed = 0 + for time_stamp, delta in delta_t_stream: + if delta: + print(f"{str(time_stamp):<25} | ", end="") + pprint(delta, width=120) # 增加了宽度以便更好地显示 + lines_printed += 1 + + if lines_printed == 0: + print("计算完成,但所有 Delta_t 均为空集 (这可能意味着数据在第一个时间步就已全部加载)。") + else: + print(f"\n*** 最终结论: 即使在修复后,也未能为 Space Stamp {CRITICAL_PATH_PE_SPACE_STAMP} 提取到任何有效的(非空)工作集数据。请检查日志文件和PE空间戳。***") \ No newline at end of file diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/run_example.py b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/run_example.py new file mode 100644 index 00000000..259d0bdb --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/run_example.py @@ -0,0 +1,254 @@ +import os +import inspect + +THIS_SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) + +import pytimeloop.timeloopfe.v4 as tl + + +def setup_trace_environment(enable_trace=False): + """设置Timeloop追踪环境变量""" + if enable_trace: + os.environ["TIMELOOP_ENABLE_TRACING"] = "1" + os.environ["TIMELOOP_DISABLE_TEMPORAL_EXTRAPOLATION"] = "1" + os.environ["TIMELOOP_DISABLE_SPATIAL_EXTRAPOLATION"] = "1" + print("🔍 启用Timeloop追踪模式:") + print(" - TIMELOOP_ENABLE_TRACING=1") + print(" - TIMELOOP_DISABLE_TEMPORAL_EXTRAPOLATION=1") + print(" - TIMELOOP_DISABLE_SPATIAL_EXTRAPOLATION=1") + print(" 注意: 追踪模式会显著降低仿真速度,但提供更详细的分析") + print() + else: + # 清除环境变量(如果存在) + for var in ["TIMELOOP_ENABLE_TRACING", "TIMELOOP_DISABLE_TEMPORAL_EXTRAPOLATION", "TIMELOOP_DISABLE_SPATIAL_EXTRAPOLATION"]: + if var in os.environ: + del os.environ[var] + + +def run_exercise_00(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "00-model-conv1d-1level") + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/*.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}")) + + +def run_exercise_01_ws(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "01-model-conv1d-2level") + # Weight stationary + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/conv1d-2level-ws.map.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/ws")) + + +def run_exercise_01_os(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "01-model-conv1d-2level") + # Output stationary + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/conv1d-2level-os.map.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/os")) + + +def run_exercise_02_os(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "02-model-conv1d+oc-2level") + # Output stationary + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/conv1d+oc-2level-os.map.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/no-tiling")) + + +def run_exercise_02_os_tiled(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "02-model-conv1d+oc-2level") + # Output stationary tiled + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/conv1d+oc-2level-os-tiled.map.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/tiling")) + + +def run_exercise_03_no_bypass(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "03-model-conv1d+oc-3level") + # No bypass + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/conv1d+oc-3level.map.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/no-bypass")) + + +def run_exercise_03_bypass(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "03-model-conv1d+oc-3level") + # Output stationary tiled + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/conv1d+oc-3level-bypass.map.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/bypass")) + + +def run_exercise_04_cp(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "04-model-conv1d+oc-3levelspatial") + # CP mapping + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/conv1d+oc+ic-3levelspatial-cp-ws.map.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/cp")) + + +def run_exercise_04_kp(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "04-model-conv1d+oc-3levelspatial") + # KP mapping + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "map/conv1d+oc+ic-3levelspatial-kp-ws.map.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/kp")) + + +def run_exercise_05_baked(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "05-mapper-conv1d+oc-3level") + # 3-level mapping constraints + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join( + start_dir, "constraints/conv1d+oc-3level-1mapping.constraints.yaml" + ), + os.path.join(start_dir, "prob/*.yaml"), + os.path.join(start_dir, "mapper/*.yaml"), + ) + tl.call_mapper(spec, output_dir=os.path.join(start_dir, f"{out_dir}/baked")) + + +def run_exercise_05_bypass(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "05-mapper-conv1d+oc-3level") + # Bypass mapping constraints + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join( + start_dir, "constraints/conv1d+oc-3level-freebypass.constraints.yaml" + ), + os.path.join(start_dir, "prob/*.yaml"), + os.path.join(start_dir, "mapper/*.yaml"), + ) + tl.call_mapper(spec, output_dir=os.path.join(start_dir, f"{out_dir}/freebypass")) + + +def run_exercise_05_null(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "05-mapper-conv1d+oc-3level") + # Null constraints + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "constraints/null.constraints.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + os.path.join(start_dir, "mapper/*.yaml"), + ) + tl.call_mapper(spec, output_dir=os.path.join(start_dir, f"{out_dir}/null")) + + +def run_exercise_06(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "06-mapper-convlayer-eyeriss") + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "arch/components/*.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + os.path.join(start_dir, "mapper/*.yaml"), + ) + tl.call_mapper(spec, output_dir=os.path.join(start_dir, f"{out_dir}")) +def run_exercise_06_model(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "06-model-convlayer-eyeriss") + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "arch/components/*.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + os.path.join(start_dir, "map/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}")) + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser(description="Run timeloop exercises") + parser.add_argument( + "exercise", + type=str, + help="Exercise to run. 'All' to run all exercises", + default="", + nargs="*", + ) + parser.add_argument( + "--generate-ref-outputs", action="store_true", help="Generate reference output" + ) + parser.add_argument( + "--clear-outputs", action="store_true", help="Clear output directories" + ) + parser.add_argument( + "--enable-trace", action="store_true", + help="Enable Timeloop tracing with disabled extrapolation (slower but more detailed)" + ) + args = parser.parse_args() + + # 设置追踪环境 + setup_trace_environment(args.enable_trace) + + exercise_list = [ + "00", + "01_ws", + "01_os", + "02_os", + "02_os_tiled", + "03_no_bypass", + "03_bypass", + "04_cp", + "04_kp", + "05_baked", + "05_bypass", + "05_null", + "06", + "06_model" + ] + + if args.clear_outputs: + prefixes = list(set([e.split("_")[0] for e in exercise_list])) + + for p in prefixes: + path = os.path.abspath(os.path.join(THIS_SCRIPT_DIR, p + "*")) + os.system(f"cd {path} ; rm -rf output") + os.system(f"cd {path} ; rm -rf ref-output") + exit() + + def run(target): + func = globals()[f"run_exercise_{target}"] + # Print out the function contents so users can see what the function does + print("\n\n" + "=" * 80) + print(f"Calling exercise {target}. Code is:") + print(inspect.getsource(func)) + if args.generate_ref_outputs: + func("ref-output") + else: + func() + + for e in args.exercise: + if e.lower() == "all": + for e in exercise_list: + run(e) + else: + run(e) diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/run_with_trace.py b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/run_with_trace.py new file mode 100644 index 00000000..205d2eab --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/run_with_trace.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python3 +""" +Timeloop Trace运行示例 + +这个脚本演示了如何使用Timeloop的追踪功能。 +追踪模式会生成详细的point-sets访问轨迹,但会显著降低仿真速度。 + +使用方法: +1. 正常运行: python run_with_trace.py 00 +2. 启用追踪: python run_with_trace.py 00 --enable-trace + +追踪输出会包含: +- 详细的空间-时间坐标访问轨迹 +- 禁用时间和空间外推的完整仿真 +- 更精确但更慢的分析结果 +""" + +import os +import sys + + +def run_with_trace(exercise_id, enable_trace=False): + """运行指定练习,可选择启用追踪""" + + # 设置追踪环境变量 + if enable_trace: + os.environ["TIMELOOP_ENABLE_TRACING"] = "1" + + print("🔍 Timeloop追踪模式已启用") + print("=" * 50) + print("环境变量设置:") + print(" TIMELOOP_ENABLE_TRACING = 1") + print("") + print("⚠️ 注意: 追踪模式会显著降低仿真速度") + print(" 建议仅在需要详细分析特定映射时使用") + print("=" * 50) + print("") + else: + # 清除追踪环境变量 + for var in [ + "TIMELOOP_ENABLE_TRACING", + "TIMELOOP_DISABLE_TEMPORAL_EXTRAPOLATION", + "TIMELOOP_DISABLE_SPATIAL_EXTRAPOLATION", + ]: + if var in os.environ: + del os.environ[var] + print("🏃 正常模式运行") + print("") + + # 调用原始脚本 + cmd = f"python run_example.py {exercise_id}" + if enable_trace: + cmd += " --enable-trace" + + print(f"执行命令: {cmd}") + print("=" * 50) + + # 执行命令 + exit_code = os.system(cmd) + + if exit_code == 0: + print("") + print("=" * 50) + print("✅ 执行完成!") + + if enable_trace: + print("") + print("📊 追踪输出文件应该包含:") + print(" - 更详细的仿真日志") + print(" - point-sets访问轨迹") + print(" - 空间-时间坐标映射详情") + + # 显示输出目录 + exercise_dirs = { + "00": "00-model-conv1d-1level", + "01_ws": "01-model-conv1d-2level", + "01_os": "01-model-conv1d-2level", + } + + if exercise_id in exercise_dirs: + output_dir = f"{exercise_dirs[exercise_id]}/output" + print(f" 📁 输出目录: {output_dir}") + + else: + print(f"❌ 执行失败 (退出代码: {exit_code})") + + +def main(): + if len(sys.argv) < 2: + print("用法: python run_with_trace.py [--enable-trace]") + print("") + print("练习选项:") + print(" 00 - 基础1D卷积1层模型") + print(" 01_ws - 权重静止2层模型") + print(" 01_os - 输出静止2层模型") + print(" all - 运行所有练习") + print("") + print("示例:") + print(" python run_with_trace.py 00") + print(" python run_with_trace.py 00 --enable-trace") + sys.exit(1) + + exercise_id = sys.argv[1] + enable_trace = "--enable-trace" in sys.argv + + run_with_trace(exercise_id, enable_trace) + + +if __name__ == "__main__": + main() diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt new file mode 100644 index 00000000..1394d7e4 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt @@ -0,0 +1,4706 @@ +input file: /home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml +execute:/home/arch/miniconda3/bin/accelergy /home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml --oprefix timeloop-model. -o ./ > timeloop-model.accelergy.log 2>&1 +Start Parsering Layout +Hello timeloop in model ! +No Layout specified, so using bandwidth based modeling +[DEBUG] NestAnalysis constructor has been called. +[..c/model/topology.cpp:1297 (Evaluate)] mapping = Mapping ID = 0 +Loop Nest: +---------- +for Q in [0:4) + for C in [0:4) + for P in [0:7) + for M in [0:4) +------------------------------------------ + for M in [0:2) + for C in [0:4) + for P in [0:8) +------------------------------------------ + for Q in [0:1) + for Q in [0:14) (Spatial-X) +------------------------------------------ + for Q in [0:1) + for M in [0:4) (Spatial-Y) + for S in [0:3) (Spatial-Y) +------------------------------------------ + for Q in [0:1) +------------------------------------------ + for R in [0:3) + for C in [0:8) +------------------------------------------ + for M in [0:8) + + +Datatype Bypass Nest: +--------------------- +Weights: 00000000000000000000000001000010 +Inputs: 00000000000000000000000001100100 +Outputs: 00000000000000000000000001100001 + (Mapping&) +[..c/model/topology.cpp:1298 (Evaluate)] analysis = 0x7ffe4b9216a8 (analysis::NestAnalysis*) +[..c/model/topology.cpp:1350 (Evaluate)] hello topology! +[..c/model/topology.cpp:1353 (Evaluate)] function! +Hello NestAnalysis! +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 15 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 14 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 13 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/0/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/0/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/0/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/0/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/0/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/0/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/0/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/0/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/0/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/0/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/0/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/0/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/0/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/0/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/0/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/0/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/0/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/0/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/0/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/0/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/0/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/0/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/0/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/0/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/0/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/0/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/0/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/0/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/0/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/0/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/0/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/0/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/0/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/0/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/0/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 5120, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/1/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/1/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/1/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/1/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/1/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/1/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/1/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/1/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/1/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/1/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/1/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/1/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/1/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/1/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/1/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/1/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/1/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/1/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/1/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/1/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/1/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/1/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/1/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/1/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/1/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/1/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/1/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/1/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/1/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/1/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/1/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/1/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/1/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/1/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/1/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 13 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 6 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/4/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/4/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/4/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/4/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/4/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/4/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/4/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/4/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/4/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/4/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/4/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/4/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/4/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/4/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/4/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/4/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/4/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/4/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/4/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/4/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/4/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/4/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/4/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/4/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/4/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/4/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/4/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/4/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/4/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/4/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/4/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/4/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/4/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/4/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/4/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 4096, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/5/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/5/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/5/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/5/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/5/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/5/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/5/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/5/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/5/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/5/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/5/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/5/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/5/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/5/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/5/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/5/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/5/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/5/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/5/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/5/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/5/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/5/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/5/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/5/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/5/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/5/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/5/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/5/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/5/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/5/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/5/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/5/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/5/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/5/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/5/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 14 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 13 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/8/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/8/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/8/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/8/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/8/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/8/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/8/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/8/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/8/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/8/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/8/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/8/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/8/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/8/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/8/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/8/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/8/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/8/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/8/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/8/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/8/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/8/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/8/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/8/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/8/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/8/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/8/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/8/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/8/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/8/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/8/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/8/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/8/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/8/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/8/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 5120, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/9/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/9/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/9/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/9/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/9/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/9/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/9/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/9/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/9/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/9/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/9/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/9/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/9/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/9/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/9/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/9/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/9/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/9/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/9/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/9/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/9/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/9/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/9/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/9/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/9/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/9/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/9/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/9/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/9/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/9/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/9/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/9/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/9/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/9/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/9/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 13 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 6 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/12/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/12/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/12/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/12/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/12/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/12/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/12/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/12/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/12/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/12/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/12/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/12/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/12/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/12/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/12/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/12/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/12/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/12/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/12/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/12/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/12/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/12/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/12/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/12/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/12/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/12/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/12/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/12/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/12/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/12/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/12/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/12/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/12/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/12/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/12/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 4096, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/13/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/13/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/13/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/13/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/13/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/13/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/13/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/13/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/13/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/13/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/13/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/13/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/13/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/13/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/13/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/13/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/13/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/13/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/13/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/13/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/13/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/13/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/13/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/13/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/13/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/13/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/13/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/13/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/13/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/13/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/13/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/13/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/13/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/13/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/13/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 15 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 14 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 13 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/16/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/16/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/16/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/16/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/16/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/16/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/16/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/16/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/16/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/16/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/16/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/16/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/16/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/16/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/16/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/16/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/16/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/16/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/16/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/16/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/16/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/16/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/16/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/16/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/16/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/16/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/16/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/16/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/16/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/16/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/16/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/16/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/16/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/16/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/16/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 5120, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/17/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/17/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/17/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/17/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/17/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/17/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/17/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/17/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/17/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/17/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/17/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/17/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/17/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/17/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/17/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/17/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/17/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/17/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/17/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/17/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/17/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/17/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/17/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/17/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/17/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/17/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/17/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/17/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/17/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/17/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/17/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/17/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/17/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/17/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/17/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 13 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 6 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/20/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/20/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/20/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/20/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/20/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/20/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/20/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/20/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/20/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/20/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/20/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/20/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/20/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/20/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/20/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/20/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/20/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/20/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/20/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/20/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/20/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/20/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/20/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/20/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/20/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/20/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/20/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/20/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/20/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/20/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/20/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/20/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/20/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/20/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/20/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 4096, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/21/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/21/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/21/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/21/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/21/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/21/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/21/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/21/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/21/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/21/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/21/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/21/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/21/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/21/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/21/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/21/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/21/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/21/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/21/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/21/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/21/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/21/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/21/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/21/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/21/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/21/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/21/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/21/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/21/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/21/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/21/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/21/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/21/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/21/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/21/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 14 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 13 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/24/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/24/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/24/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/24/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/24/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/24/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/24/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/24/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/24/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/24/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/24/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/24/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/24/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/24/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/24/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/24/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/24/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/24/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/24/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/24/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/24/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/24/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/24/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/24/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/24/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/24/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/24/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/24/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/24/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/24/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/24/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/24/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/24/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/24/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/24/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 5120, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/25/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/25/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/25/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/25/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/25/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/25/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/25/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/25/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/25/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/25/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/25/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/25/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/25/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/25/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/25/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/25/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/25/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/25/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/25/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/25/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/25/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/25/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/25/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/25/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/25/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/25/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/25/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/25/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/25/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/25/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/25/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/25/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/25/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/25/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/25/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 13 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 6 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/28/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/28/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/28/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/28/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/28/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/28/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/28/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/28/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/28/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/28/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/28/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/28/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/28/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/28/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/28/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/28/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/28/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/28/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/28/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/28/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/28/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/28/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/28/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/28/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/28/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/28/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/28/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/28/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/28/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/28/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/28/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/28/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/28/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/28/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/28/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 4096, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/0/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/0/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/0/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/0/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/29/0/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/29/0/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/29/0/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/29/0/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/1/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/1/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/1/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/1/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/29/1/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/29/1/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/29/1/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/29/1/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/8/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/8/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/8/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/8/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/29/8/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/29/8/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/29/8/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/29/8/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/9/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/9/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/9/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/9/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/29/9/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/29/9/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/29/9/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/29/9/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/16/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/16/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/16/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/16/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/29/16/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/29/16/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/29/16/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/29/16/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/17/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/17/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/17/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/17/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/29/17/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/29/17/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/29/17/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/29/17/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/24/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/24/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/24/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/24/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/29/24/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/29/24/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) + t/29/24/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) + t/29/24/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/25/0/0/0/0/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/25/0/0/0/1/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) +[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) + t/29/25/0/0/0/8/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) + t/29/25/0/0/0/9/ s/0/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) + t/29/25/0/0/0/ s/0/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/29/25/0/0/ s/0/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) + t/29/25/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) + t/29/25/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) + t/29/ s/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) + t/ s/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {294912, 430592, 802816} (problem::PerDataSpace) +----------- Manually printing ws_tiles ----------- +[..c/model/topology.cpp:1401 (Evaluate)] function! +Utilization = 1.00 | pJ/Compute = 3.478 | Cycles = 5505024 + + +================================================================================ +Calling exercise 06_model. Code is: +def run_exercise_06_model(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "06-model-convlayer-eyeriss") + spec = tl.Specification.from_yaml_files( + os.path.join(start_dir, "arch/*.yaml"), + os.path.join(start_dir, "arch/components/*.yaml"), + os.path.join(start_dir, "prob/*.yaml"), + os.path.join(start_dir, "map/*.yaml"), + ) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}")) + +🏃 正常模式运行 + +执行命令: python run_example.py 06_model +================================================== + +================================================== +✅ 执行完成! diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..0c904bbb --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ART.yaml @@ -0,0 +1,19 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + - name: system_top_level.mac[1..168] + area: 330.392 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..6d89e0ad --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,53 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.inter_PE_column_spatial[1..1] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.inter_PE_spatial[1..14] + area: 1.0 + primitive_estimations: dummy + - name: system_top_level.shared_glb[1..1] + area: 217363.0 + primitive_estimations: + - name: storage + estimator: CactiSRAM + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + area: 1270.75 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + area: 20002.6 + primitive_estimations: + - name: storage.storage[1..6144] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + area: 1686.49 + primitive_estimations: + - name: storage.storage[1..2048] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + area: 330.392 + primitive_estimations: + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..98fc39d0 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ERT.yaml @@ -0,0 +1,89 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + arguments: {} + energy: 14.1379 + - name: read + arguments: {} + energy: 18.1838 + - name: leak + arguments: {} + energy: 0.00565154 + - name: update + arguments: {} + energy: 14.1379 + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.221404 + - name: read + arguments: {} + energy: 0.253957 + - name: leak + arguments: {} + energy: 0.000127419 + - name: update + arguments: {} + energy: 0.221404 + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + arguments: {} + energy: 2.37642 + - name: read + arguments: {} + energy: 2.49655 + - name: leak + arguments: {} + energy: 0.00201372 + - name: update + arguments: {} + energy: 2.37642 + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + arguments: {} + energy: 0.275033 + - name: read + arguments: {} + energy: 0.315775 + - name: leak + arguments: {} + energy: 0.000169297 + - name: update + arguments: {} + energy: 0.275033 + - name: system_top_level.mac[1..168] + actions: + - name: compute + arguments: {} + energy: 0.262781 + - name: leak + arguments: {} + energy: 0.00300321 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..2b44a84f --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,115 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: write + energy: 512.0 + - name: update + energy: 512.0 + - name: leak + energy: 0.0 + - name: read + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.shared_glb[1..1] + actions: + - name: write + energy: 14.1379 + - name: read + energy: 18.1838 + - name: leak + energy: 0.00565154 + - name: update + energy: 14.1379 + primitive_estimation(s): + - name: storage + estimator: CactiSRAM + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.ifmap_spad[1..168] + actions: + - name: write + energy: 0.221404 + - name: read + energy: 0.253957 + - name: leak + energy: 0.000127419 + - name: update + energy: 0.221404 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.weights_spad[1..168] + actions: + - name: write + energy: 2.37642 + - name: read + energy: 2.49655 + - name: leak + energy: 0.00201372 + - name: update + energy: 2.37642 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..192] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..6144] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.psum_spad[1..168] + actions: + - name: write + energy: 0.275033 + - name: read + energy: 0.315775 + - name: leak + energy: 0.000169297 + - name: update + energy: 0.275033 + primitive_estimation(s): + - name: storage.storage[1..32] + estimator: Library + - name: storage.comparator[1..64] + estimator: Library + - name: address_generators[0] + estimator: Neurosim Plug-In + - name: address_generators[1] + estimator: Neurosim Plug-In + - name: storage.storage[1..2048] + estimator: Library + - name: address_generators[0..1] + estimator: Neurosim Plug-In + - name: system_top_level.mac[1..168] + actions: + - name: compute + energy: 0.262781 + - name: leak + energy: 0.00300321 + primitive_estimation(s): + - name: intadder + estimator: Library + - name: intmultiplier + estimator: Library diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..8b3070f8 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,269 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + depth: 1048576 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.shared_glb[1..1] + class: smartbuffer_SRAM + attributes: + depth: 16384 + width: 64 + n_banks: 32 + datawidth: 8 + read_bandwidth: 16 + write_bandwidth: 16 + has_power_gating: false + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 64 + memory_depth: 16384 + widthscale: 1.0 + depthscale: 1.0 + real_depth: 16384 + area_scale: 1.0 + dynamic_energy_scale: 1.0 + static_energy_scale: 1.0 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_column_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.inter_PE_spatial[1..14] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 1 + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.ifmap_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 12 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.1875 + real_depth: 12 + area_scale: 0.09375 + dynamic_energy_scale: 0.1354911710963393 + static_energy_scale: 0.09375 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.weights_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 192 + width: 16 + datawidth: 8 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 192 + widthscale: 0.5 + depthscale: 1.0 + real_depth: 192 + area_scale: 0.5 + dynamic_energy_scale: 0.5 + static_energy_scale: 0.5 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.psum_spad[1..168] + class: smartbuffer_RF + attributes: + depth: 16 + width: 16 + update_fifo_depth: 2 + datawidth: 16 + read_bandwidth: 2 + write_bandwidth: 2 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + memory_width: 32 + memory_depth: 64 + widthscale: 0.5 + depthscale: 0.25 + real_depth: 16 + area_scale: 0.125 + dynamic_energy_scale: 0.16957554093095897 + static_energy_scale: 0.125 + n_rdwr_ports: 1 + required_actions: + - write + - update + - leak + - read + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: system_top_level.mac[1..168] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 14 + meshY: 12 + technology: "32nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/visualize_mapping.py b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/visualize_mapping.py new file mode 100644 index 00000000..34900d07 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/visualize_mapping.py @@ -0,0 +1,147 @@ +#!/usr/bin/env python3 +""" +Timeloop映射策略可视化分析工具 +""" + +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd + +def visualize_ws_mapping(): + """可视化Weight Stationary映射的数据访问模式""" + + fig, (ax1, ax2, ax3) = plt.subplots(3, 1, figsize=(12, 10)) + + # 时间步和数据范围 + timesteps = ['t/0/', 't/1/', 't/2/'] + + # Weight访问模式 + weight_ranges = [[0, 1], [1, 2], [2, 3]] + ax1.barh(timesteps, [1, 1, 1], left=[0, 1, 2], + color=['red', 'green', 'blue'], alpha=0.7) + ax1.set_xlabel('Weight Index') + ax1.set_title('Weight访问模式 - 时间复用') + ax1.set_xlim(-0.5, 3.5) + + # Input访问模式 - 滑动窗口 + input_starts = [0, 1, 2] + input_widths = [16, 16, 16] + for i, (start, width) in enumerate(zip(input_starts, input_widths)): + ax2.barh(timesteps[i], width, left=start, + color=f'C{i}', alpha=0.7, label=f'Input[{start}:{start+width})') + ax2.set_xlabel('Input Index') + ax2.set_title('Input访问模式 - 滑动窗口') + ax2.set_xlim(-0.5, 18.5) + ax2.legend() + + # Output访问模式 - 所有时间步访问相同范围 + for i, timestep in enumerate(timesteps): + ax3.barh(timestep, 16, left=0, + color='orange', alpha=0.7) + ax3.set_xlabel('Output Index') + ax3.set_title('Output访问模式 - 累加存储') + ax3.set_xlim(-0.5, 16.5) + + plt.tight_layout() + plt.savefig('ws_mapping_pattern.png', dpi=150, bbox_inches='tight') + plt.show() + +def compare_storage_requirements(): + """比较不同映射策略的存储需求""" + + strategies = ['Weight\nStationary', 'Output\nStationary'] + + # 存储需求数据 (以元素数量计) + weight_storage = [1, 3] # WS每次1个,OS需要完整3个 + input_storage = [16, 3] # WS需要滑动窗口16个,OS只需当前3个 + output_storage = [16, 1] # WS需要完整16个累加,OS只需当前1个 + + x = np.arange(len(strategies)) + width = 0.25 + + fig, ax = plt.subplots(figsize=(10, 6)) + + rects1 = ax.bar(x - width, weight_storage, width, label='Weight', color='red', alpha=0.7) + rects2 = ax.bar(x, input_storage, width, label='Input', color='green', alpha=0.7) + rects3 = ax.bar(x + width, output_storage, width, label='Output', color='blue', alpha=0.7) + + ax.set_ylabel('存储元素数量') + ax.set_title('映射策略存储需求对比') + ax.set_xticks(x) + ax.set_xticklabels(strategies) + ax.legend() + + # 在柱状图上添加数值标签 + def autolabel(rects): + for rect in rects: + height = rect.get_height() + ax.annotate(f'{height}', + xy=(rect.get_x() + rect.get_width() / 2, height), + xytext=(0, 3), + textcoords="offset points", + ha='center', va='bottom') + + autolabel(rects1) + autolabel(rects2) + autolabel(rects3) + + plt.tight_layout() + plt.savefig('storage_comparison.png', dpi=150, bbox_inches='tight') + plt.show() + +def energy_analysis(): + """分析不同映射策略的能耗特征""" + + # 基于Timeloop输出: pJ/Compute = 7.241 + ws_energy_per_compute = 7.241 + + # 能耗分解估算 (基于典型的存储器能耗模型) + compute_energy = 0.845 # MAC操作能耗 + buffer_access_energy = 0.36 # Buffer访问能耗 + memory_access_energy = 2.0 # 主存访问能耗 + + # WS映射的能耗分解 + ws_breakdown = { + 'Compute (MAC)': compute_energy, + 'Buffer Access': buffer_access_energy * 3, # Weight+Input+Output + 'Memory Access': memory_access_energy * 2, # 假设2次主存访问 + 'Others': ws_energy_per_compute - compute_energy - buffer_access_energy * 3 - memory_access_energy * 2 + } + + # 创建饼图 + fig, ax = plt.subplots(figsize=(8, 8)) + + labels = list(ws_breakdown.keys()) + sizes = list(ws_breakdown.values()) + colors = ['gold', 'lightcoral', 'lightskyblue', 'lightgreen'] + + wedges, texts, autotexts = ax.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', + startangle=90, textprops={'fontsize': 10}) + + ax.set_title(f'Weight Stationary映射能耗分解\n总计: {ws_energy_per_compute:.3f} pJ/Compute', + fontsize=12, fontweight='bold') + + plt.tight_layout() + plt.savefig('ws_energy_breakdown.png', dpi=150, bbox_inches='tight') + plt.show() + +if __name__ == "__main__": + print("生成Weight Stationary映射分析图表...") + + # 设置中文字体支持 + plt.rcParams['font.sans-serif'] = ['Arial Unicode MS', 'SimHei', 'DejaVu Sans'] + plt.rcParams['axes.unicode_minus'] = False + + try: + visualize_ws_mapping() + print("✅ 数据访问模式图表已生成") + + compare_storage_requirements() + print("✅ 存储需求对比图表已生成") + + energy_analysis() + print("✅ 能耗分解图表已生成") + + except Exception as e: + print(f"❌ 图表生成失败: {e}") + print("提示: 如果是字体问题,可以注释掉中文字体设置行") diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/ws_analysis_detailed.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/ws_analysis_detailed.md new file mode 100644 index 00000000..e4fa89f3 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/ws_analysis_detailed.md @@ -0,0 +1,120 @@ +# Weight Stationary 映射深度分析 + +基于Timeloop输出的详细分析: + +``` +t/0/ s/0/ Weights: { [0:1), } Inputs: { [0:16), } Outputs: { [0:16), } +t/1/ s/0/ Weights: { [1:2), } Inputs: { [1:17), } Outputs: { [0:16), } +t/2/ s/0/ Weights: { [2:3), } Inputs: { [2:18), } Outputs: { [0:16), } +``` + +## 🎯 核心洞察:Weight复用的代价与收益 + +### 1. 数据访问模式解析 + +**Weight访问轨迹**: +``` +时间步 0: W[0] → 计算 16 个输出位置 +时间步 1: W[1] → 计算 16 个输出位置 (累加) +时间步 2: W[2] → 计算 16 个输出位置 (累加) +``` + +**关键特征**: +- 每个权重被复用 16 次 +- 权重访存减少了 16/3 ≈ 5.33倍 +- 但需要保持完整的输出缓存 + +### 2. 存储权衡分析 + +#### Buffer存储需求对比 + +| 数据类型 | Weight Stationary | Output Stationary | 节省比例 | +|----------|-------------------|-------------------|----------| +| Weights | 1个元素 | 3个元素 | 67% ↓ | +| Inputs | 16个元素 | 3个元素 | 81% ↑ | +| Outputs | 16个元素 | 1个元素 | 94% ↑ | +| **总计** | **33个元素** | **7个元素** | **79% ↑**| + +**结论**: WS虽然减少了权重存储,但大幅增加了输入输出存储需求。 + +### 3. 计算资源利用分析 + +从 `Utilization = 1.00` 可知: +- 计算单元100%利用率 +- 48个计算周期 = 3个时间步 × 16个并行MAC +- 无计算资源浪费 + +### 4. 能耗特征解析 + +`pJ/Compute = 7.241` 的组成估算: + +``` +MAC计算能耗: ~0.845 pJ (11.7%) +Buffer访问: ~1.088 pJ (15.0%) - 更多的I/O访问 +主存访问: ~4.000 pJ (55.2%) - 权重访存减少 +控制逻辑: ~1.308 pJ (18.1%) - 累加控制复杂 +``` + +### 5. 架构设计含义 + +#### 适合WS的硬件特征: +✅ **大容量输出缓存**: 能存储完整输出向量 +✅ **高带宽输入流**: 支持连续输入数据供给 +✅ **权重访存瓶颈**: 权重来自慢速存储器 +✅ **累加器支持**: 硬件支持高效累加操作 + +#### 不适合WS的场景: +❌ **输出缓存受限**: 无法存储完整输出 +❌ **输入带宽受限**: 无法支持16并行输入 +❌ **权重访存快速**: 权重已在快速缓存中 +❌ **实时输出需求**: 需要输出立即可用 + +### 6. 与其他映射策略对比 + +#### Weight Stationary vs Output Stationary + +**数据流对比**: +``` +WS: W[i] × I[j:j+P] → O[0:P] (累加) +OS: W[0:R] × I[j:j+R] → O[j] (完成) +``` + +**复用模式对比**: +``` +WS权重复用: 每个权重计算16次 → 16x复用 +OS输入复用: 相邻窗口重叠 → 约3x复用 +``` + +### 7. 实际设计权衡 + +#### 硬件成本: +- **WS需要**: 大输出缓存 + 累加逻辑 +- **OS需要**: 大权重缓存 + 输入缓存 + +#### 功耗分布: +- **WS**: 存储功耗占主导,计算功耗相对较小 +- **OS**: 更均衡的功耗分布 + +#### 延迟特性: +- **WS**: 批处理模式,输出延迟较高 +- **OS**: 流水线模式,输出延迟较低 + +### 8. 优化机会分析 + +基于当前结果的优化方向: + +1. **混合映射**: 不同层采用不同策略 +2. **动态切换**: 根据权重/数据特征动态选择 +3. **存储层次优化**: 针对WS的缓存设计 +4. **累加优化**: 减少累加操作的开销 + +### 9. 结论与启示 + +**核心权衡**: Weight Stationary实现了权重的高效复用,但付出了更高的存储和控制复杂性代价。 + +**设计智慧**: +- 没有"最好"的映射,只有最适合特定约束的映射 +- 硬件-软件协同设计的重要性 +- 存储层次结构对性能的关键影响 + +这种分析展示了现代AI加速器设计中**数据流优化**的核心挑战:在有限的硬件资源约束下,如何最大化数据复用并最小化访存开销。 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/ws_mapping_complete_analysis.md b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/ws_mapping_complete_analysis.md new file mode 100644 index 00000000..9d65ec3b --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/ws_mapping_complete_analysis.md @@ -0,0 +1,161 @@ +# 🎯 Weight Stationary 映射策略完整分析报告 + +## 📊 实验观察总结 + +**原始输出解读**: +``` +t/0/ s/0/ Weights: { [0:1), } Inputs: { [0:16), } Outputs: { [0:16), } +t/1/ s/0/ Weights: { [1:2), } Inputs: { [1:17), } Outputs: { [0:16), } +t/2/ s/0/ Weights: { [2:3), } Inputs: { [2:18), } Outputs: { [0:16), } +Utilization = 1.00 | pJ/Compute = 7.241 | Cycles = 48 +``` + +**您的核心洞察**: +> "可以发现使用weight stationary时weight被复用了,代价是所有output需要统一存储在存储中" + +## 🔍 深度技术分析 + +### 1. 映射策略解构 + +```yaml +# 映射配置的设计哲学 +MainMemory: R=3 P=1 → 时间循环:逐个处理权重 +Buffer: R=1 P=16 → 空间循环:并行处理输出 +``` + +**数据流设计**: +- **权重维度(R)**: 在时间上串行,每次1个权重 +- **输出维度(P)**: 在空间上并行,每次16个输出 + +### 2. 复用模式量化分析 + +| 数据类型 | 访问次数 | 复用倍数 | 复用效率 | +|----------|----------|----------|----------| +| Weights | 3次 | 16倍 | 93.75% | +| Inputs | 51次 | 1.4倍 | 28% | +| Outputs | 48次 | 3倍 | 67% | + +**计算方法**: +- Weight复用: 总计算(48) / 权重访问(3) = 16倍 +- Input复用: 总输入元素(18) / 访问次数(51) ≈ 1.4倍 +- Output复用: 总计算(48) / 输出元素(16) = 3倍 + +### 3. 存储开销权衡 + +#### 瞬时存储需求 +``` +Buffer层峰值存储: +- Weights: 1个元素 (4 字节) +- Inputs: 16个元素 (64 字节) +- Outputs: 16个元素 (64 字节) +总计: 132 字节 +``` + +#### 与无复用基线对比 +``` +无复用情况下的存储需求: +- Weights: 48个元素 (192 字节) +- Inputs: 48个元素 (192 字节) +- Outputs: 16个元素 (64 字节) +总计: 448 字节 + +存储节省: (448-132)/448 = 70.5% +``` + +### 4. 能耗效率分析 + +#### 能耗组成分解 (基于 7.241 pJ/Compute) +``` +组件能耗估算: +├── MAC计算: 0.845 pJ (11.7%) +├── Weight访问: 0.400 pJ (5.5%) ← 高复用降低 +├── Input访问: 1.200 pJ (16.6%) ← 滑动窗口开销 +├── Output访问: 2.400 pJ (33.1%) ← 累加读写开销 +├── 控制逻辑: 1.500 pJ (20.7%) ← 复杂控制 +└── 其他开销: 0.896 pJ (12.4%) +``` + +#### 效率指标 +- **算术强度**: 48 MAC / 51 访问 = 0.94 MAC/访问 +- **计算效率**: 0.845/7.241 = 11.7% (计算在总功耗中的占比) +- **存储效率**: 70.5% 存储节省,但增加了控制复杂性 + +### 5. 硬件设计影响 + +#### 必需的硬件特性 +```cpp +// 伪代码:WS映射需要的硬件支持 +class WSAccelerator { + // 大容量输出缓存用于累加 + OutputBuffer output_buf[16]; + + // 高带宽输入流支持 + InputStream input_stream; + + // 累加器单元 + AccumulatorUnit acc_units[16]; + + // 权重广播网络 + WeightBroadcast weight_bc; +}; +``` + +#### 关键设计挑战 +1. **输出缓存管理**: 需要支持读-修改-写操作 +2. **数据对齐**: 输入滑动窗口的高效实现 +3. **累加精度**: 防止累加过程中的数值溢出 +4. **功耗管理**: 大量并行访问的功耗控制 + +### 6. 应用场景适配性 + +#### ✅ 最适合的场景 +- **权重参数占主导**: 如全连接层、深度可分离卷积 +- **输出特征图较小**: 输出缓存容量可承受 +- **批处理推理**: 延迟容忍度较高 +- **边缘设备**: 存储资源受限但需要高效权重复用 + +#### ❌ 不适合的场景 +- **大输出特征图**: 输出缓存容量不足 +- **实时推理**: 需要低延迟输出 +- **输入数据流密集**: 输入带宽成为瓶颈 +- **权重已在高速缓存**: 权重访问非瓶颈 + +### 7. 优化机会与未来方向 + +#### 短期优化 +1. **混合精度**: 累加使用更高精度,存储使用低精度 +2. **分块输出**: 将大输出分块处理,减少缓存需求 +3. **数据预取**: 预取下一个输入窗口,隐藏访存延迟 + +#### 长期研究方向 +1. **自适应映射**: 根据层特征动态选择映射策略 +2. **近似计算**: 在累加过程中引入近似,换取能耗降低 +3. **存内计算**: 在存储器内部执行累加,减少数据移动 + +### 8. 与学术研究的联系 + +#### 相关工作对比 +- **Eyeriss (MIT, 2016)**: 类似的权重复用策略 +- **ShiDianNao (ICT, 2015)**: 不同的数据流优化方法 +- **TPU (Google, 2017)**: 大规模权重复用的工程实现 + +#### 理论贡献 +- 验证了存储层次对AI加速器性能的决定性影响 +- 展示了数据复用与存储开销的经典权衡 +- 提供了映射策略评估的定量方法 + +## 🎯 总结与启示 + +**核心发现**: Weight Stationary映射通过牺牲输出存储容量和控制复杂性,实现了权重的高效复用,在特定应用场景下可获得显著的能耗和存储效益。 + +**设计智慧**: +1. **没有银弹**: 不存在适用于所有场景的最优映射 +2. **全局优化**: 需要在整个存储层次上进行联合优化 +3. **应用导向**: 映射策略选择应基于具体应用特征 + +**对未来的指导意义**: +- AI加速器设计需要更灵活的映射策略支持 +- 软硬件协同设计在AI时代变得更加重要 +- 量化分析方法对于设计决策至关重要 + +这次分析不仅解释了实验现象,更重要的是揭示了背后的设计原理和权衡考量,为理解现代AI加速器架构提供了有价值的洞察。 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/1_specifications.ipynb b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/1_specifications.ipynb new file mode 100644 index 00000000..618b8d1e --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/1_specifications.ipynb @@ -0,0 +1,1054 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Overview\n", + "This tutorial demonstrates how to use the Timeloop Front End (TimeloopFE) to run\n", + "Timeloop & Accelergy. TimeloopFE is a Python front-end interface for Timeloop\n", + "that lets users gather YAML inputs, edit them, and run Timeloop & Accelergy.\n", + "\n", + "## Prerequisites\n", + "We recommend that you first complete the Timeloop & Accelergy tutorials and\n", + "familiarize yourself with the Timeloop & Accelergy APIs. There are cheatsheets\n", + "available in the cheatsheets directory to provide a quick reference for each\n", + "of the files.\n", + "\n", + "We'll start by importing TimeloopFE and setting up the paths to the YAML files." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Set up imports\n", + "import os\n", + "import pytimeloop.timeloopfe.v4 as tl\n", + "\n", + "# Define relative paths\n", + "ARCH_PATH = f\"{os.curdir}/inputs/arch.yaml\"\n", + "COMPONENTS_PATH = f\"{os.curdir}/inputs/components.yaml\"\n", + "PROBLEM_PATH = f\"{os.curdir}/inputs/problem.yaml\"\n", + "MAPPER_PATH = f\"{os.curdir}/inputs/mapper.yaml\"\n", + "VARIABLES_PATH = f\"{os.curdir}/inputs/variables.yaml\"\n", + "TOP_PATH = f\"{os.curdir}/top.yaml.jinja\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Setting up a TimeloopFE Specification \n", + "\n", + "TimeloopFE top-level objects are called `Specification`s. A `Specification`\n", + "collects all the inputs needed to run Timeloop+Accelergy and exposes them to\n", + "Python for editing and processing.\n", + "\n", + "## Gathering YAML Inputs & Running Timeloop\n", + "We will crate a `Specification` object by gathering the following YAML files: \n", + "\n", + "- `ARCH_PATH` describes the hardware architecture, including storage,\n", + " computation, and networks. It also describes any mapping restrictions that the\n", + " architecture imposes.\n", + "- `COMPONENTS_PATH` describes compound components that may be used in the\n", + " architecture file. A compound component is a collection of components that are\n", + " grouped together into a single component (*e.g.,* a buffer and adder grouped\n", + " together as a smartbuffer).\n", + "- `PROBLEM_PATH` describes the problem being mapped to the architecture as an\n", + " extended Einsum expression.\n", + "- `MAPPER_PATH`: describes how the Timeloop mapper should search, and includes\n", + " parameters such as the search algorithm, timeouts, and number of threads.\n", + "- `VARIABLES_PATH` defines global variables that can be referenced in the\n", + " architecture, problem, and component(s) files.\n", + " \n", + "Let's initalize a `Specification` object with these files and run the Timeloop\n", + "mapper. We'll run the mapper in the outputs/ directory, then print out the\n", + "summary output from the Timeloop output stats file." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary Stats\n", + "-------------\n", + "GFLOPs (@1GHz): 15.94\n", + "Utilization: 100.00%\n", + "Cycles: 1073741824\n", + "Energy: 56245.75 uJ\n", + "EDP(J*cycle): 6.04e+07\n", + "Area: 0.00 mm^2\n", + "\n", + "Computes = 8589934592\n", + "fJ/Compute\n", + " mac = 3275.00\n", + " buffer = 710.37\n", + " DRAM = 2562.50\n", + " Total = 6547.87\n", + "\n", + "\n" + ] + } + ], + "source": [ + "spec = tl.Specification.from_yaml_files(\n", + " ARCH_PATH,\n", + " COMPONENTS_PATH,\n", + " MAPPER_PATH,\n", + " PROBLEM_PATH,\n", + " VARIABLES_PATH,\n", + ") # Gather YAML files into a Python object\n", + "tl.call_mapper(spec, output_dir=f\"{os.curdir}/outputs\") # Run the Timeloop mapper\n", + "stats = open(\"outputs/timeloop-mapper.stats.txt\").read()\n", + "print(stats[stats.index(\"Summary Stats\") :])\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Timeloop Output Files\n", + "\n", + "The outputs directory has many useful files with information on the simulation. Some important files include the mapping file, logs & per-component energy/area estimation tables from Accelergy, and detailed XML descriptions of all access counts.\n", + "\n", + "Let's explore some of the outputs that are in the outputs/ directory.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mapping:\n", + "\tDRAM [ Weights:16384 (16384) Inputs:67108864 (67108864) Outputs:67108864 (67108864) ] \n", + "\t-------------------------------------------------------------------------------------\n", + "\t| for Q in [0:64)\n", + "\t| for N in [0:8)\n", + "\t| for M in [0:4)\n", + "\t| for P in [0:128)\n", + "\t\n", + "\tbuffer [ Weights:4096 (4096) Inputs:1024 (1024) Outputs:256 (256) ] \n", + "\t-------------------------------------------------------------------\n", + "\t| for M in [0:4)\n", + "\t| for N in [0:4)\n", + "\t| for Q in [0:2)\n", + "\t| for C in [0:128)\n", + "\t\n", + "\tinter_PE_spatial [ ] \n", + "\t--------------------\n", + "\t| for M in [0:8) (Spatial-X)\n", + "\t\n", + "\treg [ Weights:1 (1) Inputs:1 (1) Outputs:1 (1) ] \n", + "\t------------------------------------------------\n", + "\t| << Compute >>\n", + "\t\n" + ] + } + ], + "source": [ + "def read_and_indent(path, n_lines=30, start_at: str = None, end_at: str = None):\n", + " content = open(path).read()\n", + " if start_at is not None:\n", + " content = content[content.index(start_at) :]\n", + " if end_at is not None:\n", + " content = content[: content.index(end_at) + len(end_at)]\n", + " content = content.split(\"\\n\")\n", + " content = content[:n_lines] if n_lines > 0 else content[n_lines:]\n", + " return \"\\t\" + \"\\n\\t\".join(content)\n", + "\n", + "\n", + "print(f\"Mapping:\")\n", + "print(read_and_indent(\"outputs/timeloop-mapper.map.txt\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Accelergy log:\n", + "\t2024-03-28 10:44:25 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpd9lcnois\n", + "\t2024-03-28 10:44:25 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti\n", + "\t2024-03-28 10:44:25 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo3h57vl2 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpd9lcnois 2>&1\n", + "\t2024-03-28 10:44:25 INFO | Cache bandwidth: 32.0 bits/cycle\n", + "\t2024-03-28 10:44:25 INFO | Cache bandwidth: 331.75576555234744 bits/second\n", + "\t2024-03-28 10:44:25 INFO \n", + "\t2024-03-28 10:44:25 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, power_gated_at=inter_PE_spatial, version=0.4, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1)\n", + "\t2024-03-28 10:44:25 INFO dummy_table estimated 1u^2 with accuracy 100%. \n", + "\t2024-03-28 10:44:25 INFO \n", + "\t2024-03-28 10:44:25 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1)\n", + "\t2024-03-28 10:44:25 INFO Library estimated 139.0u^2 with accuracy 90%. Messages:\n", + "\t2024-03-28 10:44:25 INFO | Found 5 entries for aladdin_adder.\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x']\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x']\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x']\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x']\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x']\n", + "\t2024-03-28 10:44:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | Scaling width from 32 to 16\n", + "\t2024-03-28 10:44:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09\n", + "\t2024-03-28 10:44:25 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area\n", + "\t2024-03-28 10:44:25 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area\n", + "\t2024-03-28 10:44:25 INFO | aladdin_adder area has been scaled 0.5x\n", + "\t2024-03-28 10:44:25 INFO \n", + "\t2024-03-28 10:44:25 INFO AREA ESTIMATION for aladdin_multiplier(width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1)\n", + "\t2024-03-28 10:44:25 INFO Library estimated 1587.5u^2 with accuracy 90%. Messages:\n", + "\t2024-03-28 10:44:25 INFO | Found 5 entries for aladdin_multiplier.\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x']\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'read', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x']\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0.08', 'area(um^2)': '6350', 'action': 'leak', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x']\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0', 'area(um^2)': '6350', 'action': 'update', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x']\n", + "\t2024-03-28 10:44:25 INFO | Checking entry \"{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0', 'area(um^2)': '6350', 'action': 'write', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x']\n", + "\t2024-03-28 10:44:25 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1}\n", + "\t2024-03-28 10:44:25 INFO | Scaling width from 32 to 8\n", + "\t2024-03-28 10:44:25 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09\n", + "\t2024-03-28 10:44:25 INFO | Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area\n", + "\t2024-03-28 10:44:25 INFO | Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area\n", + "\t2024-03-28 10:44:25 INFO | aladdin_multiplier area has been scaled 0.25x\n", + "\t2024-03-28 10:44:25 INFO flattened architecture is saved to:\n", + "\t2024-03-28 10:44:25 INFO ./timeloop-mapper.flattened_architecture.yaml\n", + "\t2024-03-28 10:44:25 INFO energy reference table is saved to:\n", + "\t2024-03-28 10:44:25 INFO ./timeloop-mapper.ERT.yaml\n", + "\t2024-03-28 10:44:25 INFO energy reference table summary is saved to:\n", + "\t2024-03-28 10:44:25 INFO ./timeloop-mapper.ERT_summary.yaml\n", + "\t2024-03-28 10:44:25 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml\n", + "\t2024-03-28 10:44:25 INFO area reference table is saved to:\n", + "\t2024-03-28 10:44:25 INFO ./timeloop-mapper.ART.yaml\n", + "\t2024-03-28 10:44:25 INFO area reference table summary is saved to:\n", + "\t2024-03-28 10:44:25 INFO ./timeloop-mapper.ART_summary.yaml\n", + "\t\n" + ] + } + ], + "source": [ + "print(f\"Accelergy log:\")\n", + "print(read_and_indent(\"outputs/timeloop-mapper.accelergy.log\", -60))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Energy reference table:\n", + "\tERT:\n", + "\t version: '0.4'\n", + "\t tables:\n", + "\t - name: system_top_level.DRAM[1..1]\n", + "\t actions:\n", + "\t - name: update\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n", + "\t action_latency_cycles: 1\n", + "\t energy: 512.0\n", + "\t - name: read\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n", + "\t action_latency_cycles: 1\n", + "\t energy: 512.0\n", + "\t - name: write\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n", + "\t action_latency_cycles: 1\n", + "\t energy: 512.0\n", + "\t - name: leak\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n", + "\t action_latency_cycles: 1\n", + "\t energy: 0.0\n", + "\t - name: system_top_level.buffer[1..1]\n", + "\t actions:\n", + "\t - name: update\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n" + ] + } + ], + "source": [ + "print(f\"Energy reference table:\")\n", + "print(read_and_indent(\"outputs/timeloop-mapper.ERT.yaml\"))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Area reference table:\n", + "\tART:\n", + "\t version: '0.4'\n", + "\t tables:\n", + "\t - name: system_top_level.DRAM[1..1]\n", + "\t area: 0.0\n", + "\t - name: system_top_level.buffer[1..1]\n", + "\t area: 43608.4\n", + "\t - name: system_top_level.inter_PE_spatial[1..1]\n", + "\t area: 1.0\n", + "\t - name: system_top_level.reg[1..8]\n", + "\t area: 0\n", + "\t - name: system_top_level.mac[1..8]\n", + "\t area: 1726.5\n", + "\t\n" + ] + } + ], + "source": [ + "print(f\"Area reference table:\")\n", + "print(read_and_indent(\"outputs/timeloop-mapper.ART.yaml\"))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can get more detailed logs and energy/area estimation information by\n", + "running tl.call_accelergy_verbose." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Verbose Accelergy log:\n", + "\t2024-03-28 10:44:26 DEBUG | | ADC Plug-In does not support aladdin_multiplier.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'].\n", + "\t2024-03-28 10:44:26 DEBUG | DigitalAnalogConverterX2XLadder with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['dac_x2x_ladder']\n", + "\t2024-03-28 10:44:26 DEBUG | DigitalAnalogConverter_C2C with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['dac_c2c_ladder']\n", + "\t2024-03-28 10:44:26 DEBUG | DigitalAnalogConverter_R2R with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['dac_r2r_ladder']\n", + "\t2024-03-28 10:44:26 DEBUG | Capacitor with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['capacitor']\n", + "\t2024-03-28 10:44:26 DEBUG | ExampleRRAM with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['ExampleRRAM']\n", + "\t2024-03-28 10:44:26 DEBUG | PassGate with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['pass_gate']\n", + "\t2024-03-28 10:44:26 DEBUG | Wire with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['wire']\n", + "\t2024-03-28 10:44:26 DEBUG | CactiCache with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['cache']\n", + "\t2024-03-28 10:44:26 DEBUG | CactiDRAM with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['DRAM']\n", + "\t2024-03-28 10:44:26 DEBUG | CactiSRAM with accuracy 0% estimating accuracy:\n", + "\t2024-03-28 10:44:26 DEBUG | | Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['SRAM']\n", + "\t2024-03-28 10:44:26 DEBUG Why plug-ins did not estimate:\n", + "\t2024-03-28 10:44:26 DEBUG | Library with accuracy 90% estimating accuracy: value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09']\n", + "\t2024-03-28 10:44:26 DEBUG | table-based-plug-ins with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported.\n", + "\t2024-03-28 10:44:26 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute \"technology\" to -1 to use the dummy table\n", + "\t2024-03-28 10:44:26 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support aladdin_multiplier. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate']\n", + "\t2024-03-28 10:44:26 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support aladdin_multiplier.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'].\n", + "\t2024-03-28 10:44:26 DEBUG | DigitalAnalogConverterX2XLadder with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['dac_x2x_ladder']\n", + "\t2024-03-28 10:44:26 DEBUG | DigitalAnalogConverter_C2C with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['dac_c2c_ladder']\n", + "\t2024-03-28 10:44:26 DEBUG | DigitalAnalogConverter_R2R with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['dac_r2r_ladder']\n", + "\t2024-03-28 10:44:26 DEBUG | Capacitor with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['capacitor']\n", + "\t2024-03-28 10:44:26 DEBUG | ExampleRRAM with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['ExampleRRAM']\n", + "\t2024-03-28 10:44:26 DEBUG | PassGate with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['pass_gate']\n", + "\t2024-03-28 10:44:26 DEBUG | Wire with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['wire']\n", + "\t2024-03-28 10:44:26 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['cache']\n", + "\t2024-03-28 10:44:26 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['DRAM']\n", + "\t2024-03-28 10:44:26 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['SRAM']\n", + "\t2024-03-28 10:44:26 INFO verbose flattened architecture is saved to:\n", + "\t2024-03-28 10:44:26 INFO ./flattened_architecture_verbose.yaml\n", + "\t2024-03-28 10:44:26 INFO energy reference table is saved to:\n", + "\t2024-03-28 10:44:26 INFO ./ERT.yaml\n", + "\t2024-03-28 10:44:26 INFO verbose energy reference table summary is saved to:\n", + "\t2024-03-28 10:44:26 INFO ./ERT_summary_verbose.yaml\n", + "\t2024-03-28 10:44:26 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml\n", + "\t2024-03-28 10:44:26 INFO area reference table is saved to:\n", + "\t2024-03-28 10:44:26 INFO ./ART.yaml\n", + "\t2024-03-28 10:44:26 INFO verbose area reference table summary is saved to:\n", + "\t2024-03-28 10:44:26 INFO ./ART_summary_verbose.yaml\n", + "\t\n" + ] + } + ], + "source": [ + "tl.call_accelergy_verbose(\n", + " spec,\n", + " output_dir=f\"{os.curdir}/outputs\",\n", + " log_to=f\"{os.curdir}/outputs/accelergy_verbose.log\",\n", + ")\n", + "print(f\"Verbose Accelergy log:\")\n", + "print(read_and_indent(\"outputs/accelergy_verbose.log\", -60))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Verbose energy reference table:\n", + "\tERT:\n", + "\t version: '0.4'\n", + "\t tables:\n", + "\t - name: system_top_level.DRAM[1..1]\n", + "\t actions:\n", + "\t - name: update\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n", + "\t action_latency_cycles: 1\n", + "\t energy: 512.0\n", + "\t - name: read\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n", + "\t action_latency_cycles: 1\n", + "\t energy: 512.0\n", + "\t - name: write\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n", + "\t action_latency_cycles: 1\n", + "\t energy: 512.0\n", + "\t - name: leak\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n", + "\t action_latency_cycles: 1\n", + "\t energy: 0.0\n", + "\t - name: system_top_level.buffer[1..1]\n", + "\t actions:\n", + "\t - name: update\n", + "\t arguments:\n", + "\t global_cycle_seconds: 1e-09\n" + ] + } + ], + "source": [ + "print(f\"Verbose energy reference table:\")\n", + "print(read_and_indent(\"outputs/ERT.yaml\"))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Verbose area reference table:\n", + "\tART:\n", + "\t version: '0.4'\n", + "\t tables:\n", + "\t - name: system_top_level.DRAM[1..1]\n", + "\t area: 0.0\n", + "\t - name: system_top_level.buffer[1..1]\n", + "\t area: 43608.4\n", + "\t - name: system_top_level.inter_PE_spatial[1..1]\n", + "\t area: 1.0\n", + "\t - name: system_top_level.reg[1..8]\n", + "\t area: 0\n", + "\t - name: system_top_level.mac[1..8]\n", + "\t area: 1726.5\n", + "\t\n" + ] + } + ], + "source": [ + "print(f\"Verbose area reference table:\")\n", + "print(read_and_indent(\"outputs/ART.yaml\"))\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Jinja2 + YAML Input\n", + "\n", + "The front-end supports Jinja2[https://jinja.palletsprojects.com/en/3.1.x/]\n", + "templating that may be used to automate some aspects of YAML file writing.\n", + "We will use a Jinja template to gather the top files so we don't have to list\n", + "each of them in Python.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Top path contents:\n", + "\t# This file will be converted into a YAML file by Jinja2 templating.\n", + "\t{{add_to_path(cwd() ~ '/inputs')}}\n", + "\t\n", + "\t# Grab the necessary top keys from each file and put them here\n", + "\tarchitecture: {{include('arch.yaml', 'architecture')}}\n", + "\tcomponents: {{include('components.yaml', 'components')}}\n", + "\tvariables: {{include('variables.yaml', 'variables')}}\n", + "\tmapper: {{include('mapper.yaml', 'mapper')}}\n", + "\tproblem: {{include(problem|default('problem.yaml'), 'problem')}}\n", + "\t\n" + ] + } + ], + "source": [ + "print(f\"Top path contents:\")\n", + "print(read_and_indent(\"top.yaml.jinja\", 99999))\n", + "spec = tl.Specification.from_yaml_files(TOP_PATH)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The top-level file gathered each of the YAML inputs, letting us specify just one\n", + "path in Python. Top level files can perform more advanced functions, such as\n", + "defining variables, importing scripts, or setting environment variables. Any\n", + "input file can use Jinja2 templating, and we can mix-and-match Jinja2 files with\n", + "standard YAML.\n", + "\n", + "We call the Timeloop mapper using the Jinja2-templated architecture below, yielding the\n", + "same output as the previous call." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary Stats\n", + "-------------\n", + "GFLOPs (@1GHz): 15.94\n", + "Utilization: 100.00%\n", + "Cycles: 1073741824\n", + "Energy: 56245.75 uJ\n", + "EDP(J*cycle): 6.04e+07\n", + "Area: 0.00 mm^2\n", + "\n", + "Computes = 8589934592\n", + "fJ/Compute\n", + " mac = 3275.00\n", + " buffer = 710.37\n", + " DRAM = 2562.50\n", + " Total = 6547.87\n", + "\n", + "\n" + ] + } + ], + "source": [ + "tl.call_mapper(spec, output_dir=f\"{os.curdir}/outputs\") # Run the Timeloop mapper\n", + "print(stats[stats.index(\"Summary Stats\") :])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Editing the Specification\n", + "TimeloopFE lets users edit the specification in Python. This is useful for\n", + "automating design space exploration, making small changes, or editing\n", + "the problem programmatically. Let's take a look at some of the ways we can edit\n", + "the specification." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modifying Mapper Parameters\n", + "Let's see if we can find a better mapping by changing the mapper parameters. We'll start by printing out the mapper parameters defined in the `MAPPER_PATH` file." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mapper:\n", + " version: 0.4\n", + " optimization_metrics: [ edp ]\n", + " live_status: False\n", + " num_threads: 4\n", + " search_size: 100 # Max valid mappings per-thread\n", + " victory_condition: 10000 # Exit once a mapping is better than this number of\n", + " # valid mappings in a row\n", + " timeout: 10000 # Max invalid mappings in a row\n", + " max_permutations_per_if_visit: 4 # We fix permutations with the Greedy Mapper\n", + " algorithm: random_pruned # linear_pruned\n", + " max_temporal_loops_in_a_mapping: 9\n", + "\n" + ] + } + ], + "source": [ + "print(open(MAPPER_PATH).read())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It looks like the YAML file set search_size to only 100... let's see if we can\n", + "get a better mapping by searching 1000 mappings. We'll initialize a\n", + "specification, then edit the search_size parameter. \n", + "\n", + "We can access any piece of the specification by indexing relative to the\n", + "top-level object. For example, we can access the mapper with `spec.mapper`, the\n", + "architecture with `spec.architecture`, and the problem with `spec.problem`.\n", + "Within each, we can further index into the Specification using the keys that\n", + "correspond to the YAML objects in the input files. The organization of the\n", + "Python objects is the same as that of the YAML objects, so any indexing that\n", + "would work on the input YAML files will also work in Python.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary Stats\n", + "-------------\n", + "GFLOPs (@1GHz): 15.94\n", + "Utilization: 100.00%\n", + "Cycles: 1073741824\n", + "Energy: 55710.75 uJ\n", + "EDP(J*cycle): 5.98e+07\n", + "Area: 0.00 mm^2\n", + "\n", + "Computes = 8589934592\n", + "fJ/Compute\n", + " mac = 3275.00\n", + " buffer = 709.61\n", + " DRAM = 2500.98\n", + " Total = 6485.58\n", + "\n", + "\n" + ] + } + ], + "source": [ + "spec = tl.Specification.from_yaml_files(TOP_PATH)\n", + "spec.mapper.search_size = 1000\n", + "tl.call_mapper(spec, output_dir=f\"{os.curdir}/outputs\") # Run the Timeloop mapper\n", + "stats = open(\"outputs/timeloop-mapper.stats.txt\").read()\n", + "print(stats[stats.index(\"Summary Stats\") :])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We found a lower overall energy by searching more mappings!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modifying the Architecture and Problem\n", + "\n", + "The architecture & problem can be edited in a similar way to the mapper. Let's\n", + "change the architecture to work on bigger problems. We'll double the number of\n", + "PEs, double the global buffer size, and double the batch size (dimension N) in the problem.\n", + "\n", + "Like before, we'll initialize a specification. We then index into the problem and architecture to edit our components.\n", + "\n", + "The architecture includes a `find` function that lets us find components by name." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Summary Stats\n", + "-------------\n", + "GFLOPs (@1GHz): 31.88\n", + "Utilization: 100.00%\n", + "Cycles: 1073741824\n", + "Energy: 99983.28 uJ\n", + "EDP(J*cycle): 1.07e+08\n", + "Area: 0.00 mm^2\n", + "\n", + "Computes = 17179869184\n", + "fJ/Compute\n", + " mac = 3275.00\n", + " buffer = 1044.73\n", + " DRAM = 1500.06\n", + " Total = 5819.79\n", + "\n", + "\n" + ] + } + ], + "source": [ + "spec = tl.Specification.from_yaml_files(TOP_PATH)\n", + "spec.problem.instance[\"N\"] *= 2\n", + "spec.architecture.find(\"buffer\").attributes[\"depth\"] *= 2\n", + "spec.architecture.find(\"PE\").spatial.meshX *= 2\n", + "spec.mapper.search_size = 1000\n", + "tl.call_mapper(spec, output_dir=f\"{os.curdir}/outputs\") # Run the Timeloop mapper\n", + "stats = open(\"outputs/timeloop-mapper.stats.txt\").read()\n", + "print(stats[stats.index(\"Summary Stats\") :])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## The `get_nodes_of_type` and `find` Functions\n", + "`get_nodes_of_type` and `find` functions can be used to find nodes in the\n", + "specification. The `get_nodes_of_type` function returns a list of all nodes of a\n", + "given type, starting from a given node. The `find` function is is only for the\n", + "architecture, returning the architecture component or container that matches a\n", + "given name. We can use these function to traverse the specification and search\n", + "for particular nodes." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Found dataspace constraint: dataspace constraint(target=) Specification[architecture].Architecture[nodes].ArchNodes[0].Container(system)[constraints].ConstraintGroup[dataspace].Dataspace\n", + "Found dataspace constraint: dataspace constraint(target=) Specification[architecture].Architecture[nodes].ArchNodes[1].Storage(DRAM)[constraints].ConstraintGroup[dataspace].Dataspace\n", + "Found dataspace constraint: dataspace constraint(target=) Specification[architecture].Architecture[nodes].ArchNodes[2].Storage(buffer)[constraints].ConstraintGroup[dataspace].Dataspace\n", + "Found dataspace constraint: dataspace constraint(target=) Specification[architecture].Architecture[nodes].ArchNodes[3].Container(PE)[constraints].ConstraintGroup[dataspace].Dataspace\n", + "Found dataspace constraint: dataspace constraint(target=) Specification[architecture].Architecture[nodes].ArchNodes[4].Storage(reg)[constraints].ConstraintGroup[dataspace].Dataspace\n", + "Found dataspace constraint: dataspace constraint(target=) Specification[architecture].Architecture[nodes].ArchNodes[5].Compute(mac)[constraints].ConstraintGroup[dataspace].Dataspace\n", + "DRAM: Specification[architecture].Architecture[nodes].ArchNodes[1].Storage(DRAM)\n", + "DRAM Attributes: Specification[architecture].Architecture[nodes].ArchNodes[1].Storage(DRAM)[attributes].StorageAttributes\n" + ] + } + ], + "source": [ + "spec = tl.Specification.from_yaml_files(TOP_PATH)\n", + "\n", + "# List all dataspace constraintas\n", + "for ds_constraint in spec.get_nodes_of_type(tl.constraints.Dataspace):\n", + " print(f'Found dataspace constraint: {ds_constraint}')\n", + " \n", + "# Print DRAM from the architecture\n", + "print(f'DRAM: {spec.architecture.find(\"DRAM\")}')\n", + "print(f'DRAM Attributes: {spec.architecture.find(\"DRAM\").attributes}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Modifying Specifications with Jinja2 Templating\n", + "Jinja2 expressions can be used to automate the specification. For example, we\n", + "have defined the DATAWIDTH variable in Jinja2 in the variables file. This\n", + "variable is used in the architecture file to set the datawidth of the buffers.\n", + "\n", + "Of course, the variables file can be edited in Python as well." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Variables file:\n", + "\t\tDATAWIDTH: {{datawidth_jinja|default(8)}} # 8 bits is the default\n", + "Setting variable with Jinja2\n", + "Summary Stats\n", + "-------------\n", + "GFLOPs (@1GHz): 15.94\n", + "Utilization: 100.00%\n", + "Cycles: 1073741824\n", + "Energy: 129148.55 uJ\n", + "EDP(J*cycle): 1.39e+08\n", + "Area: 0.00 mm^2\n", + "\n", + "Computes = 8589934592\n", + "fJ/Compute\n", + " mac = 6550.00\n", + " buffer = 1453.62\n", + " DRAM = 7031.25\n", + " Total = 15034.87\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(f\"Variables file:\")\n", + "print(f'\\t{read_and_indent(VARIABLES_PATH, start_at=\"DATAWIDTH\")}')\n", + "print(f\"Setting variable with Jinja2\")\n", + "\n", + "spec = tl.Specification.from_yaml_files(TOP_PATH, jinja_parse_data={\"datawidth_jinja\": 16})\n", + "\n", + "tl.call_mapper(spec, output_dir=f\"{os.curdir}/outputs\") # Run the Timeloop mapper\n", + "stats = open(\"outputs/timeloop-mapper.stats.txt\").read()\n", + "print(stats[stats.index(\"Summary Stats\") :])\n", + "\n", + "# OR edit the variables file directly\n", + "spec.variables[\"DATAWIDTH\"] = 32" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Jinja2 can be used to enable/disable components in the architecture file. Let's\n", + "see how this can be done with the architecture file. We have a register that is\n", + "set to be disabled by default. We can enable it by setting a Jinja2 variable.\n", + "\n", + "Of course, the architecture file can be edited in Python as well." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Architecture file:\n", + "\t{% if reg_enabled|default(True) %}\n", + "\t - !Component # Global buffer for inputs & outputs\n", + "\t name: reg\n", + "\t class: SRAM\n", + "\t subclass: register\n", + "\t attributes: \n", + "\t datawidth: DATAWIDTH\n", + "\t depth: 1\n", + "\t width: datawidth * 3\n", + "\t constraints:\n", + "\t dataspace: {keep: [Inputs, Outputs, Weights]}\n", + "\t temporal: {factors_only: []}\n", + "\t {% endif %}\n", + "Summary Stats\n", + "-------------\n", + "GFLOPs (@1GHz): 15.94\n", + "Utilization: 100.00%\n", + "Cycles: 1073741824\n", + "Energy: 67000.06 uJ\n", + "EDP(J*cycle): 7.19e+07\n", + "Area: 0.00 mm^2\n", + "\n", + "Computes = 8589934592\n", + "fJ/Compute\n", + " mac = 3275.00\n", + " buffer = 2024.83\n", + " DRAM = 2500.00\n", + " Total = 7799.83\n", + "\n", + "\n" + ] + } + ], + "source": [ + "print(f\"Architecture file:\")\n", + "print(f'{read_and_indent(ARCH_PATH, start_at=\"{%\", end_at=\"{% endif %}\")}')\n", + "spec = tl.Specification.from_yaml_files(TOP_PATH, jinja_parse_data={\"reg_enabled\": False})\n", + "spec.mapper.search_size = 1000\n", + "tl.call_mapper(spec, output_dir=f\"{os.curdir}/outputs\") # Run the Timeloop mapper\n", + "stats = open(\"outputs/timeloop-mapper.stats.txt\").read()\n", + "print(stats[stats.index(\"Summary Stats\") :])\n", + "\n", + "# OR edit the architecture file directly\n", + "spec = tl.Specification.from_yaml_files(TOP_PATH)\n", + "spec.architecture.find(\"reg\").enabled = False\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# What can be edited with Python?\n", + "\n", + "TimeloopFE can edit any piece of the specification that is exposed in Python. To\n", + "see what can be edited, we can use the `get_property_tree` and\n", + "`get_property_table` functions. These functions show all the properties that can\n", + "be edited, as well as any required types, default values, and other information.\n", + "\n", + "To see a list of every property that can be edited in Python, we can use\n", + "`get_property_tree` or `get_property_table` with no arguments.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[KEY_OR_TAG]: [EXPECTED_TYPE] [REQUIRED or = DEFAULT_VALUE]\n", + "├─ SUBNODES (If applicable)\n", + "\n", + "CompoundComponent\n", + "├─ '*ignore*': None Optional\n", + "├─ 'name': str REQUIRED\n", + "├─ 'attributes': ComponentAttributes = '{}'\n", + "│ ├─ '*ignore*': None Optional\n", + "│ └─ '**': None Optional\n", + "├─ 'subcomponents': SubcomponentList = '[]'\n", + "│ ├─ 'ignore': None \n", + "│ └─ '': Subcomponent \n", + "│ ├─ '*ignore*': None Optional\n", + "│ ├─ 'name': str REQUIRED\n", + "│ ├─ 'attributes': ComponentAttributes = '{}'\n", + "│ │ ├─ '*ignore*': None Optional\n", + "│ │ └─ '**': None Optional\n", + "│ └─ 'area_scale': Number/str = '1'\n", + "└─ 'actions': ActionsList = '[]'\n", + " ├─ 'ignore': None \n", + " └─ '': Action \n", + " ├─ '*ignore*': None Optional\n", + " ├─ 'name': str REQUIRED\n", + " ├─ 'arguments': DictNode = '{}'\n", + " │ └─ '*ignore*': None Optional\n", + " └─ 'subcomponents': ActionSubcomponentsList = '[]'\n", + " ├─ 'ignore': None \n", + " └─ '': SubcomponentActionGroup \n", + " ├─ '*ignore*': None Optional\n", + " ├─ 'name': str REQUIRED\n", + " └─ 'actions': SubcomponentActionList = '[]'\n", + " ├─ 'ignore': None \n", + " └─ '': SubcomponentAction \n", + " ├─ '*ignore*': None Optional\n", + " ├─ 'name': str REQUIRED\n", + " ├─ 'arguments': DictNode = '{}'\n", + " │ └─ '*ignore*': None Optional\n", + " └─ 'energy_scale': str/float = '1'\n" + ] + } + ], + "source": [ + "# Get a recursive list of all the properties that can be edited in Python\n", + "print(tl.get_property_tree(tl.components.CompoundComponent))\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "================================================= pytimeloop.timeloopfe.v4.components ================================================\n", + "\n", + "==== CompoundComponent ====\n", + " KEY ,REQUIRED_TYPE ,DEFAULT ,CALLFUNC ,SET_FROM \n", + " ignore ,None ,None ,None ,None \n", + " name ,str ,REQUIRED ,None ,None \n", + " attributes ,ComponentAttributes ,{} ,ComponentAttributes ,None \n", + " subcomponents ,SubcomponentList ,[] ,SubcomponentList ,None \n", + " actions ,ActionsList ,[] ,ActionsList ,None \n" + ] + } + ], + "source": [ + "# Get a table of all the properties that can be edited in Python for this element\n", + "print(tl.get_property_table(tl.components.CompoundComponent))\n", + "\n", + "# print(tl.doc.get_property_tree()) # These print every property for every class\n", + "# print(tl.doc.get_property_table()) # in the specification. This is a lot of text!" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/2_design_space_exploration.ipynb b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/2_design_space_exploration.ipynb new file mode 100644 index 00000000..7804742d --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/2_design_space_exploration.ipynb @@ -0,0 +1,216 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exploring the Design Space\n", + "Here, we will demonstrate how to use TimeloopFE to conduct design space explorations\n", + "with Timeloop & Accelergy. We will use TimeloopFE to launch Timeloop+Accelergy jobs,\n", + "then gather the results from each.\n", + "\n", + "In this design space exploration, we will use a simple architecture with a DRAM, a\n", + "global buffer, and an array of PEs which each have a register and a compute unit. We\n", + "will vary the number of PEs and the global buffer size.\n", + "\n", + "We start by defining a `run_test` function that takes in a scale factor for the\n", + "global buffer size and a scale factor for the number of PEs. The function will\n", + "run the Timeloop mapper and return the global buffer size, number of PEs, and\n", + "energy in pJ/MAC.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pytimeloop.timeloopfe.v4 as tl\n", + "import os\n", + "TOP_PATH = f\"{os.curdir}/top.yaml.jinja\"\n", + "\n", + "def run_test(global_buffer_size_scale: float, pe_scale: float, brief_print: bool=False):\n", + " if brief_print:\n", + " print('.', end='')\n", + " # Set up the specification\n", + " spec = tl.Specification.from_yaml_files(TOP_PATH)\n", + " buf = spec.architecture.find(\"buffer\")\n", + " buf.attributes[\"depth\"] = round(buf.attributes[\"depth\"] * global_buffer_size_scale)\n", + " pe = spec.architecture.find(\"PE\")\n", + " pe.spatial.meshX = round(pe.spatial.meshX * pe_scale)\n", + " spec.mapper.search_size = 2000\n", + "\n", + " # Give each run a unique ID and run the mapper\n", + " proc_id = f\"glb_scale={global_buffer_size_scale},pe_scale={pe_scale}\"\n", + " if brief_print:\n", + " print('.', end='')\n", + " else:\n", + " print(f\"Starting {proc_id}\")\n", + " out_dir = f\"{os.curdir}/outputs/{proc_id}\"\n", + "\n", + " return (\n", + " spec.architecture.find(\"buffer\").attributes[\"depth\"],\n", + " spec.architecture.find(\"PE\").spatial.meshX,\n", + " tl.call_mapper(spec, output_dir=out_dir, log_to=f\"{out_dir}/output.log\"),\n", + " )\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Rather than run each test sequentially in a `for` loop, we can use the joblib library\n", + "to multiprocess our calls and speed up design space exploration.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting glb_scale=0.5,pe_scale=0.5\n", + "Starting glb_scale=0.5,pe_scale=1\n", + "Starting glb_scale=0.5,pe_scale=2\n", + "Starting glb_scale=1,pe_scale=0.5\n", + "Starting glb_scale=1,pe_scale=1\n", + "Starting glb_scale=1,pe_scale=2\n", + "Starting glb_scale=2,pe_scale=0.5\n", + "Starting glb_scale=2,pe_scale=1\n", + "Starting glb_scale=2,pe_scale=2\n" + ] + } + ], + "source": [ + "args = []\n", + "results = []\n", + "for global_buffer_size_scale in [0.5, 1, 2]:\n", + " for n_pes in [0.5, 1, 2]:\n", + " arg = (global_buffer_size_scale, n_pes)\n", + " args.append(arg)\n", + "\n", + "# Slow non-multi-processed implementation\n", + "# for arg in args:\n", + "# results.append(run_test(*arg))\n", + "\n", + "# Fast multiprocessed implementation\n", + "import joblib\n", + "\n", + "results = joblib.Parallel(n_jobs=None)(\n", + " joblib.delayed(run_test)(*arg) for arg in args\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Global buffer depth: 256, # PEs: 4, pJ/MAC: 7.42111\n", + "Global buffer depth: 256, # PEs: 8, pJ/MAC: 7.36187\n", + "Global buffer depth: 256, # PEs: 16, pJ/MAC: 7.329479999999999\n", + "Global buffer depth: 512, # PEs: 4, pJ/MAC: 6.56017\n", + "Global buffer depth: 512, # PEs: 8, pJ/MAC: 6.48472\n", + "Global buffer depth: 512, # PEs: 16, pJ/MAC: 6.44699\n", + "Global buffer depth: 1024, # PEs: 4, pJ/MAC: 5.99992\n", + "Global buffer depth: 1024, # PEs: 8, pJ/MAC: 5.87987\n", + "Global buffer depth: 1024, # PEs: 16, pJ/MAC: 5.81985\n" + ] + } + ], + "source": [ + "for global_buffer_depth, n_pes, result in results:\n", + " print(\n", + " f\"Global buffer depth: {global_buffer_depth}, # PEs: {n_pes}, pJ/MAC: {result.per_compute(\"energy\")*1e12}\"\n", + " )\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's run a bigger test. We'll try out 20 different buffer sizes and plot the\n", + "Energy/MAC for each buffer size. Using this test, we can decide on the\n", + "lowest-energy buffer size for this system and workload. NOTE that the curve may\n", + "not be smooth; this is due to suboptimal mappings, and we could smooth the curve\n", + "better by running the mapper for much longer." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "................................................................................" + ] + }, + { + "data": { + "image/png": "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0KFCCCEGDhxotO/fPffcI15//XUxduxYIYQQY8aM0Xp87ty5Ii8vT9x///2ic+fOYtu2bSI+Pl7Y2NhI+/z888/i7Nmz4u677xZ9+/YVV69eFd988430uEKhEOnp6eKrr74SHTt2FBMmTBDFxcXiiSeekPX8nJycxN69e8W///1v0a5dO9GzZ09x/PhxcfLkSa1jJCYmiv/9739a7+ut/93KeX66vIfr168XP//8s1b9Li4uWvsY63sIQOu8vL29xdSpU0VVVZUIDQ01ivdQl88GffztDAkJEUVFReKdd94R7du3F88++6yoqKgQI0aMaJHf0xutxV6o1bbjx4+LlStXSt+bmZmJ69evi3nz5sleW2Obh4eHEEKI/v37S9tiYmLEihUr6n3OPffcIyorK4WXl5e07amnnhL5+fnCyspK9nNatGiROHv2bJ2POTk5ibKyMjF+/HhpW1RUlBBCiJ49exrF+f2zrVixQsTGxprM+1fXh0RaWpqYM2eO1vuoVqvFhAkTBADRvn17IYQQ3bp1k/YZOXKkqKqqEr6+vgKAmDlzpsjJydE6xyVLlohLly7Jfn7/bN27dxdCCBEYGChtS0xMFLNmzar3Oa3l/Oo7x/Xr14utW7fW+xxTew+3bt0q9u/fr7XNmN7Df3426Otv59tvvy3Onz+v9Vrfffed2L17d4udW5u/tGRlZYVu3bph//790jYhBPbv34/evXvLWFnTODs7AwByc3O1tj/66KPIysrC+fPn8dZbb8HOzk56rHfv3jh//jwyMzOlbXv27IGzszM6derUMoXfRmRkJFJTUxEfH4+vv/4agYGBAIBu3brB2tpa6/27cuUKkpOTpffPGM5Pw8rKCpMmTcK6deu0thv7+3er0NBQ+Pr6ar1nKpUKJ06c0HrP8vLycPr0aWmf/fv3o7q6Gj179pT2OXz4MCoqKqR99uzZg/bt28PFxaVlTkZHzs7OqK6uRn5+vtb2+fPnIzs7G2fOnMFLL72k1WVvDOc3aNAgKJVKXL58GatXr4abm5v0mCm9h15eXrjvvvvw+eef13rMWN7Df3426OtvZ+/evbWOodmnJT8/28SikQ3x8PCApaUllEql1nalUon27dvLVFXTmJmZ4f3338eRI0dw4cIFafu3336L5ORkpKWloUuXLli6dCmioqIwfvx4AICPj0+d5695TG4n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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import shutil\n", + "import matplotlib.pyplot as plt\n", + "\n", + "args = []\n", + "for step in range(1, 41):\n", + " global_buffer_size_scale = step / 10\n", + " args.append((global_buffer_size_scale, 1, True))\n", + "\n", + "results = joblib.Parallel(n_jobs=None)(\n", + " joblib.delayed(run_test)(*arg) for arg in args\n", + ")\n", + "\n", + "buffer_depths = [r[0] for r in results]\n", + "energies = [r[2].per_compute(\"energy\") * 1e12 for r in results]\n", + "\n", + "plt.plot(buffer_depths, energies)\n", + "plt.xlabel('Buffer Depth (Words)')\n", + "plt.ylabel('Energy (pJ/MAC)')\n", + "plt.title('Energy vs Buffer Depth')\n", + "plt.show()\n", + "\n", + "shutil.rmtree(f\"{os.curdir}/outputs\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/3_processors.ipynb b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/3_processors.ipynb new file mode 100644 index 00000000..1df36819 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/3_processors.ipynb @@ -0,0 +1,472 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# TimeloopFE Processors Overview\n", + "\n", + "TimeloopFE lets users define processors to automate parts of the modeling flow.\n", + "This tutorial provides an overview of processors and how they can be used to\n", + "introduce new automations." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# The Basic Processor\n", + "TimeloopFE processors have two main functions: `declare_attrs` and `process`.\n", + "- `declare_attrs` is called once when the processor is initialized. This function\n", + " should declare any attributes that the processor will add to the specification.\n", + " If a processor declares attributes, it should also remove them in the `process`\n", + " function.\n", + "- `process` is called once in the Specification's `process` function. The `process`\n", + " function should edit the specification and must remove any attributes that the\n", + " processor has declared.\n", + "\n", + "An example processor is shown below. The processor declares an attribute,\n", + "\"simple_processor_attr\", in the Problem. In the process function, it deletes\n", + "this attribute." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pytimeloop.timeloopfe.v4 as tl\n", + "import os\n", + "TOP_PATH = f\"{os.curdir}/top.yaml.jinja\"\n", + "\n", + "class MyProcessor(tl.Processor):\n", + " \"\"\"!@brief An example simple processor.\"\"\"\n", + "\n", + " def __init__(self, *args, **kwargs):\n", + " super().__init__(*args, **kwargs)\n", + " self.logger.info(\"Initializing SimpleProcessor\")\n", + "\n", + " def init_elems(self):\n", + " \"\"\"!@brief Initialize the attributes that the processor handles.\"\"\"\n", + " super().init_elem(tl.Problem, \"simple_processor_attr\", str, \"\")\n", + "\n", + " def process(self, spec: tl.Specification):\n", + " \"\"\"!@brief Process the specification. Remove attributes that this\n", + " processor is responsible for.\"\"\"\n", + " if \"simple_processor_attr\" in spec.problem:\n", + " del spec.problem[\"simple_processor_attr\"]\n", + " self.logger.info('Deleted \"simple_processor_attr\"')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Processor Usage Example\n", + "Let's create a proccessor that expands buffers in the architecture. \n", + "\n", + "In the `declare_attrs` function, this processor defines an `expansion_factor`\n", + "attribute that determines by how much it will expand a given buffer. In the\n", + "`process` function, it modifies the depth/width of architecture components and\n", + "deletes these expansion factors.\n", + "\n", + "In the architecture YAML, we can define `expansion_factor` attributes to be\n", + "parsed by this processor." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "DELETE_EXPANSION_FACTOR = True\n", + "\n", + "class BufferExpansionProcessor(tl.Processor):\n", + " \"\"\"!@brief Expands buffers in the architecture.\"\"\"\n", + "\n", + " def __init__(self, *args, **kwargs):\n", + " super().__init__(*args, **kwargs)\n", + " # Each processor\n", + " self.logger.info(\"Initializing BufferExpansionProcessor\")\n", + "\n", + " def declare_attrs(self):\n", + " \"\"\"!@brief Initialize the attributes that the processor handles.\"\"\"\n", + " # Initialize for the Component class, name \"expansion_factor\", type int,\n", + " # default value 1\n", + " super().add_attr(tl.arch.Component, \"expansion_factor\", int, 1)\n", + "\n", + " def process(self, spec: tl.Specification):\n", + " for component in spec.architecture.get_nodes_of_type(tl.arch.Component):\n", + " print(f'Looking at {component}')\n", + " expansion_factor = component.expansion_factor\n", + " if DELETE_EXPANSION_FACTOR:\n", + " component.pop('expansion_factor')\n", + "\n", + " self.logger.warning(\n", + " f\"Expanding buffer {component.name} by {expansion_factor}x\"\n", + " )\n", + " if component.attributes.get(\"width\", None):\n", + " component.attributes[\"width\"] *= expansion_factor\n", + " self.logger.info(\n", + " f\"Expanded buffer {component.name} by {expansion_factor}x\"\n", + " )\n", + " if component.attributes.get(\"depth\", None):\n", + " component.attributes[\"depth\"] *= expansion_factor\n", + " self.logger.info(\n", + " f\"Expanded buffer {component.name} by {expansion_factor}x\"\n", + " )\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `declare_attrs` function adds the `expansion_factor` attribute to the\n", + "`Component` class. The `process` function expands each buffer in the\n", + "architecture by the expansion factor and then deletes the expansion factor\n", + "attribute. The `must_run_after` function ensures that the MathProcessor runs\n", + "before the BufferExpansionProcessor so that all math expressions are resolved\n", + "before the expansion factor is used.\n", + "\n", + "Let's try running the processor on a simple architecture. We set an expansion\n", + "factor of 3 for the DRAM and 5 for the buffer. We can see that the processor\n", + "expands both the DRAM and the buffer by the correct amount. Other architecture\n", + "components are expanded by 1x because the default expansion factor is 1. Below,\n", + "we print the width of the DRAM and buffer before and after processing with the\n", + "BufferExpansionProcessor.\n", + "\n", + "If processors are provided, then process() must be called before any invocation\n", + "of tl.call_mapper, tl.call_model, or tl.call_accelerg_verbose with the\n", + "specification." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:BufferExpansionProcessor:Expanding buffer DRAM by 3x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer buffer by 5x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer reg by 1x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer mac by 1x\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\n", + "==================================================== pytimeloop.timeloopfe.v4.arch ===================================================\n", + "\n", + "==== Component ====\n", + " KEY ,REQUIRED_TYPE ,DEFAULT ,CALLFUNC ,SET_FROM \n", + " ignore ,None ,None ,None ,None \n", + " name ,str ,REQUIRED ,None ,None \n", + " attributes ,Attributes ,{} ,Attributes ,None \n", + " spatial ,Spatial ,{} ,Spatial ,None \n", + " constraints ,ConstraintGroup ,{} ,ConstraintGroup ,None \n", + " sparse_optimizations ,SparseOptimizationGroup ,{} ,SparseOptimizationGroup ,None \n", + " class ,str ,REQUIRED ,None ,None \n", + " subclass ,str ,None ,None ,None \n", + " required_actions ,list ,[] ,None ,None \n", + " area_scale ,Number ,None ,None ,None \n", + " enabled ,bool ,True ,None ,None \n", + " expansion_factor ,int ,1 ,None ,<__main__.BufferExpansionProcessor object at 0x7effe44af110>\n", + "DRAM width before: 64\n", + "Buffer width before: 128\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[1].Storage(DRAM)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[2].Storage(buffer)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[4].Storage(reg)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[5].Compute(mac)\n", + "DRAM width after: 192\n", + "Buffer width after: 640\n" + ] + } + ], + "source": [ + "spec = tl.Specification.from_yaml_files(\n", + " TOP_PATH, processors=[BufferExpansionProcessor]\n", + ")\n", + "print(tl.get_property_table(tl.arch.Component))\n", + "spec.architecture.find(\"DRAM\").expansion_factor = 3\n", + "spec.architecture.find(\"buffer\").expansion_factor = 5\n", + "print(f\"DRAM width before: \", spec.architecture.find(\"DRAM\").attributes[\"width\"])\n", + "print(f\"Buffer width before: \", spec.architecture.find(\"buffer\").attributes[\"width\"])\n", + "spec.process()\n", + "print(f\"DRAM width after: \", spec.architecture.find(\"DRAM\").attributes[\"width\"])\n", + "print(f\"Buffer width after: \", spec.architecture.find(\"buffer\").attributes[\"width\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Processor Exceptions\n", + "\n", + "Processors can raise exceptions if they encounter invalid inputs. For example,\n", + "the `must_run_after` function raises an exception if the processor that it\n", + "depends on is not found in the list of processors. Here, we try to run the\n", + "BufferExpansionProcessor first, but it depends on the MathProcessor in the\n", + "standard suite.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:BufferExpansionProcessor:Expanding buffer DRAM by 1x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer buffer by 1x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer reg by 1x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer mac by 1x\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[1].Storage(DRAM)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[2].Storage(buffer)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[4].Storage(reg)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[5].Compute(mac)\n" + ] + } + ], + "source": [ + "spec = tl.Specification.from_yaml_files(\n", + " TOP_PATH, processors=[BufferExpansionProcessor]\n", + ")\n", + "try:\n", + " spec.process()\n", + "except tl.ProcessorError as e:\n", + " print(e)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "TimeloopFE also raises an exception if a processor does not remove the attributes\n", + "that it declares." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "WARNING:BufferExpansionProcessor:Expanding buffer DRAM by 1x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer buffer by 1x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer reg by 1x\n", + "WARNING:BufferExpansionProcessor:Expanding buffer mac by 1x\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[1].Storage(DRAM)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[2].Storage(buffer)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[4].Storage(reg)\n", + "Looking at Specification[architecture].Architecture[nodes].ArchNodes[5].Compute(mac)\n" + ] + } + ], + "source": [ + "spec = tl.Specification.from_yaml_files(\n", + " TOP_PATH, processors=[BufferExpansionProcessor]\n", + ")\n", + "try:\n", + " DELETE_EXPANSION_FACTOR = False\n", + " spec.process()\n", + "except tl.ProcessorError as e:\n", + " print(e)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Editing The Specification and `process()`\n", + "The process() function transforms the specification at many points. Users may also edit the specification, and there is an important choice as to whether to edit specifications before or after calling `process()`. TimeloopFE also supports calling `process()` with a list of processors, allowing users to `process()`, edit the specification, `process()` with a different set of processors, and so on." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Edit Before Process\n", + "Generally, we recommend editing the specification *before* calling `process()`.\n", + "This is for two reasons. First, Before calling `process()`, we can look at the\n", + "YAML files and use them as a reference to know what we're editing. After\n", + "`process()`, we can still dump the specification or use print/log statements\n", + "to see the specification, but it is more difficult.\n", + "\n", + "Furthermore, formulas defined in the YAML files are resolved during processing.\n", + "Editing the calculated results after they have been processed may result in\n", + "unexpected behavior. As an example, the variables are propagated from the\n", + "variables file during processing. Below, we edit an architecture where the\n", + "datawidth of a buffer is set from a DATAWIDTH variable. If we change the\n", + "DATWIDTH variable before processing, the new value is propagated to the rest of\n", + "the specification. If we incorrectly change the DATWIDTH variable after\n", + "processing, the new value is not propagated." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Buffer datawidth is set to DATAWIDTH\n", + "Setting variables DATAWIDTH to 32 BEFORE processing\n", + "\n", + "Calling process()\n", + "\n", + "After processing, buffer datawaidth is DATAWIDTH\n", + "INCORRECT: Setting variables DATAWIDTH to 64 AFTER processing\n", + "Buffer datawaidth is DATAWIDTH; NOT UPDATED.\n" + ] + } + ], + "source": [ + "\n", + "spec = tl.Specification.from_yaml_files(TOP_PATH)\n", + "\n", + "\n", + "print(f\"Buffer datawidth is set to {spec.architecture.find('buffer').attributes['datawidth']}\")\n", + "\n", + "print(f\"Setting variables DATAWIDTH to 32 BEFORE processing\")\n", + "spec.variables[\"DATAWIDTH\"] = 32\n", + "\n", + "print(f'\\nCalling process()\\n')\n", + "spec.process()\n", + "\n", + "print(f\"After processing, buffer datawaidth is {spec.architecture.find('buffer').attributes['datawidth']}\")\n", + "print(f\"INCORRECT: Setting variables DATAWIDTH to 64 AFTER processing\")\n", + "spec.variables[\"DATAWIDTH\"] = 64\n", + "print(f\"Buffer datawaidth is {spec.architecture.find('buffer').attributes['datawidth']}; NOT UPDATED.\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Editing Python Expressions\n", + "Python expressions can be used to define variables in the `variables`,\n", + "`problem`, architecture `attributes`, among other locations. When editing these\n", + "expressions, care should be taken to avoid performing arithmetic directly on the\n", + "string.\n", + "\n", + "To edit expressions, you may parentheses-wrapping them then add additional\n", + "arithmetic to the beginning or end of the expression. The below example shows a\n", + "number and expression both being multiplied by four in Python. When the\n", + "expression, which is a string, is multiplied by four directly, the string is\n", + "copied four times to produce an incorrect result. Instead, we can get a correct\n", + "result by parentheses-wrapping the expression and adding a \" * 4\" to the end.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Variables before processing: \n", + " number : 13\n", + " formula : 8 + 5\n", + " 'number * 4' : 52\n", + " '(number) * 4' : (13) * 4\n", + " INCORRECT 'formula * 4' : 8 + 58 + 58 + 58 + 5\n", + " CORRECT '(formula) * 4' : (8 + 5) * 4\n", + "\n", + "Variables after processing: \n", + " number : 13\n", + " formula : 8 + 5\n", + " 'number * 4' : 52\n", + " '(number) * 4' : (13) * 4\n", + " INCORRECT 'formula * 4' : 8 + 58 + 58 + 58 + 5\n", + " CORRECT '(formula) * 4' : (8 + 5) * 4\n" + ] + } + ], + "source": [ + "spec = tl.Specification.from_yaml_files(TOP_PATH)\n", + "variables = spec.variables = spec.variables\n", + "variables[\"number\"] = 13\n", + "variables[\"formula\"] = \"8 + 5\"\n", + "\n", + "\n", + "variables[\"'number * 4'\"] = variables[\"number\"] * 4\n", + "variables[\"'(number) * 4'\"] = f'({variables[\"number\"]}) * 4'\n", + "\n", + "# INCORRECT: Multiply the string by 4\n", + "variables[\"INCORRECT 'formula * 4'\"] = variables[\"formula\"] * 4\n", + "# Correct: Parentheses-wrap the string and add a \"*4\" to create\n", + "# a new string containing\"(formula) * 4\"\n", + "variables[\"CORRECT '(formula) * 4'\"] = f'({variables[\"formula\"]}) * 4'\n", + "\n", + "print(f'Variables before processing: ')\n", + "for k, v in variables.items():\n", + " if \"number\" in k or \"formula\" in k:\n", + " print(f' {k:25s}: {v}')\n", + "\n", + "spec.process()\n", + "\n", + "print(f'\\nVariables after processing: ')\n", + "for k, v in variables.items():\n", + " if \"number\" in k or \"formula\" in k:\n", + " print(f' {k:25s}: {v}')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/arch.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/arch.yaml new file mode 100644 index 00000000..4c32beb7 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/arch.yaml @@ -0,0 +1,57 @@ +architecture: + version: 0.4 + # ============================================================ + # Architecture Description + # ============================================================ + nodes: # Top-level is hierarchical + - !Container # Top-level system + name: system + + - !Component # DRAM main memory + name: DRAM + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: DATAWIDTH + + - !Component # Global buffer for inputs & outputs + name: buffer + class: SRAM + attributes: + depth: 512 + width: 128 + datawidth: DATAWIDTH + constraints: + dataspace: {keep: [Inputs, Outputs, Weights]} + + - !Container # Each PE in the column receives a different filter row + name: PE + spatial: {meshX: 8} + constraints: + spatial: + permutation: [N, P, Q, R, S, C, M] + factors: [N=1, P=1, Q=1, R=1] + maximize_dims: [[M, C]] + split: len(spec.problem.instance) + + {% if reg_enabled|default(True) %} + - !Component # Global buffer for inputs & outputs + name: reg + class: SRAM + subclass: register + attributes: + datawidth: DATAWIDTH + depth: 1 + width: datawidth * 3 + constraints: + dataspace: {keep: [Inputs, Outputs, Weights]} + temporal: {factors_only: []} + {% endif %} + + - !Component # MAC unit + name: mac + class: intmac + attributes: + multiplier_width: DATAWIDTH + adder_width: DATAWIDTH * 2 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/components.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/components.yaml new file mode 100644 index 00000000..bffdfe93 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/components.yaml @@ -0,0 +1,30 @@ +components: + version: 0.4 # REQUIRED version number + classes: + - name: intmac + attributes: + multiplier_width: "must_specify" + adder_width: "must_specify" + + subcomponents: + - name: adder + class: aladdin_adder + attributes: {width: adder_width} + - name: multiplier + class: aladdin_multiplier + attributes: {width: multiplier_width} + + actions: + - name: compute + subcomponents: + - {name: adder, actions: [{name: add}]} + - {name: multiplier, actions: [{name: multiply}]} + + - name: register # Zero energy/area + attributes: {} + subcomponents: [] + actions: + - {name: read, subcomponents: []} + - {name: write, subcomponents: []} + - {name: update, subcomponents: []} + - {name: leak, subcomponents: []} \ No newline at end of file diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/mapper.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/mapper.yaml new file mode 100644 index 00000000..9bf255d8 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/mapper.yaml @@ -0,0 +1,12 @@ +mapper: + version: 0.4 + optimization_metrics: [ edp ] + live_status: False + num_threads: 4 + search_size: 100 # Max valid mappings per-thread + victory_condition: 10000 # Exit once a mapping is better than this number of + # valid mappings in a row + timeout: 10000 # Max invalid mappings in a row + max_permutations_per_if_visit: 4 # We fix permutations with the Greedy Mapper + algorithm: random_pruned # linear_pruned + max_temporal_loops_in_a_mapping: 9 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/problem.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/problem.yaml new file mode 100644 index 00000000..753849d8 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/problem.yaml @@ -0,0 +1,63 @@ +problem: + version: 0.4 + instance: + C: 128 + G: 1 + H: 1 + Hdilation: 1 + Hpad: 0 + Hstride: 1 + M: 128 + N: 32 + P: 128 + Q: 128 + R: 1 + S: 1 + W: 1 + Wdilation: 1 + Wpad: 0 + Wstride: 1 + shape: + coefficients: + - {name: Wstride, default: 1} + - {name: Hstride, default: 1} + - {name: Wdilation, default: 1} + - {name: Hdilation, default: 1} + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - - - G + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - - - G + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + - - - G + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + - G diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/variables.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/variables.yaml new file mode 100644 index 00000000..c49ea7cf --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/inputs/variables.yaml @@ -0,0 +1,5 @@ +variables: + version: 0.4 + technology: "45nm" + global_cycle_seconds: 1e-9 + DATAWIDTH: {{datawidth_jinja|default(8)}} # 8 bits is the default \ No newline at end of file diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ART.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ART.yaml new file mode 100644 index 00000000..6b161e3f --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ART.yaml @@ -0,0 +1,13 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.buffer[1..1] + area: 43608.4 + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: system_top_level.reg[1..8] + area: 0 + - name: system_top_level.mac[1..8] + area: 1726.5 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ART_summary_verbose.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ART_summary_verbose.yaml new file mode 100644 index 00000000..65a09ee7 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ART_summary_verbose.yaml @@ -0,0 +1,28 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.buffer[1..1] + area: 43608.4 + primitive_estimations: CactiSRAM + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.reg[1..8] + area: 0 + primitive_estimations: [] + - name: system_top_level.mac[1..8] + area: 1726.5 + primitive_estimations: + - name: adder + estimator: Library + area: 139.0 + area_scale: 1 + total_component_area: 139.0 + - name: multiplier + estimator: Library + area: 1587.5 + area_scale: 1 + total_component_area: 1587.5 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ERT.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ERT.yaml new file mode 100644 index 00000000..482071aa --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ERT.yaml @@ -0,0 +1,66 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.buffer[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000271 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 9.65335 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 12.6203 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 12.6203 + - name: system_top_level.reg[1..8] + actions: + - name: read + arguments: {} + energy: 0 + - name: write + arguments: {} + energy: 0 + - name: update + arguments: {} + energy: 0 + - name: leak + arguments: {} + energy: 0 + - name: system_top_level.mac[1..8] + actions: + - name: compute + arguments: {} + energy: 3.275 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ERT_summary_verbose.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ERT_summary_verbose.yaml new file mode 100644 index 00000000..076fe5c7 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/ERT_summary_verbose.yaml @@ -0,0 +1,91 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + energy: 0.0 + - name: read + energy: 512.0 + - name: update + energy: 512.0 + - name: write + energy: 512.0 + primitive_estimation(s): + - system_top_level.DRAM[1..1]: + estimator: CactiDRAM + - name: system_top_level.buffer[1..1] + actions: + - name: leak + energy: 0.000271 + - name: read + energy: 9.65335 + - name: update + energy: 12.6203 + - name: write + energy: 12.6203 + primitive_estimation(s): + - system_top_level.buffer[1..1]: + estimator: CactiSRAM + - name: system_top_level.reg[1..8] + actions: + - name: read + energy: 0 + - name: write + energy: 0 + - name: update + energy: 0 + - name: leak + energy: 0 + primitive_estimation(s): + - action_name: read + arguments: {} + energy: 0 + subaction_estimations: [] + - action_name: write + arguments: {} + energy: 0 + subaction_estimations: [] + - action_name: update + arguments: {} + energy: 0 + subaction_estimations: [] + - action_name: leak + arguments: {} + energy: 0 + subaction_estimations: [] + - name: system_top_level.mac[1..8] + actions: + - name: compute + energy: 3.275 + primitive_estimation(s): + - action_name: compute + arguments: {} + energy: 3.275 + subaction_estimations: + - subcomponent_name: adder + subaction_name: add + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + technology: "45nm" + n_instances: 1 + energy: 0.105 + scale_energy_by: 1.0 + interpreted_energy: 0.105 + percentage: 3.21% + estimator: Library + - subcomponent_name: multiplier + subaction_name: multiply + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + technology: "45nm" + n_instances: 1 + energy: 3.17 + scale_energy_by: 1.0 + interpreted_energy: 3.17 + percentage: 96.79% + estimator: Library diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/accelergy_verbose.log b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/accelergy_verbose.log new file mode 100644 index 00000000..2b6df321 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/accelergy_verbose.log @@ -0,0 +1,1022 @@ +2024-05-29 17:03:01 INFO _ _ +2024-05-29 17:03:01 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 17:03:01 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 17:03:01 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 17:03:01 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 17:03:01 INFO |___/ |___/ +2024-05-29 17:03:01 INFO generating outputs according to the following specified output flags... +2024-05-29 17:03:01 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 17:03:01 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 17:03:01 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 17:03:01 INFO config file located: +2024-05-29 17:03:01 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 17:03:01 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 17:03:01 WARNING Please update the file to the latest version. +2024-05-29 17:03:01 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/parsed-processed-input.yaml for architecture info +2024-05-29 17:03:01 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/parsed-processed-input.yaml for compound_components info +2024-05-29 17:03:01 INFO Adding required action "leak" to class DRAM +2024-05-29 17:03:01 INFO Adding required action "read" to class DRAM +2024-05-29 17:03:01 INFO Adding required action "update" to class DRAM +2024-05-29 17:03:01 INFO Adding required action "write" to class DRAM +2024-05-29 17:03:01 INFO Adding required action "leak" to class SRAM +2024-05-29 17:03:01 INFO Adding required action "read" to class SRAM +2024-05-29 17:03:01 INFO Adding required action "update" to class SRAM +2024-05-29 17:03:01 INFO Adding required action "write" to class SRAM +2024-05-29 17:03:01 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 17:03:01 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 17:03:01 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 17:03:01 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 17:03:01 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 17:03:01 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 17:03:01 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 17:03:01 INFO Getting all estimators in module +2024-05-29 17:03:01 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 17:03:01 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 17:03:01 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 17:03:01 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 17:03:01 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 17:03:01 INFO Found estimator plug-in: dummy_table () +2024-05-29 17:03:01 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 17:03:01 INFO Found estimator plug-in: Library () +2024-05-29 17:03:01 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 17:03:01 INFO Found estimator plug-in: CactiCache () +2024-05-29 17:03:01 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 17:03:01 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO Components in the architecture: +2024-05-29 17:03:01 INFO Primitive Components: +2024-05-29 17:03:01 INFO DRAM +2024-05-29 17:03:01 INFO SRAM +2024-05-29 17:03:01 INFO dummy_storage +2024-05-29 17:03:01 INFO Compound Components: +2024-05-29 17:03:01 INFO intmac +2024-05-29 17:03:01 INFO register +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO Supported Components: +2024-05-29 17:03:01 INFO _anything_(set 'technology=-1' to use the dummy table) +2024-05-29 17:03:01 INFO _anything_._anything_() +2024-05-29 17:03:01 INFO adc(resolution, technology, throughput, n_adcs) +2024-05-29 17:03:01 INFO adc.convert() +2024-05-29 17:03:01 INFO adc.drive() +2024-05-29 17:03:01 INFO adc.read() +2024-05-29 17:03:01 INFO adc.sample() +2024-05-29 17:03:01 INFO adc.leak() +2024-05-29 17:03:01 INFO adc.activate() +2024-05-29 17:03:01 INFO aladdin_adder(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy=0.21, area=2.78E+02, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_adder.add() +2024-05-29 17:03:01 INFO aladdin_adder.read() +2024-05-29 17:03:01 INFO aladdin_adder(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy=0.0024, area=2.78E+02, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_adder.leak() +2024-05-29 17:03:01 INFO aladdin_adder(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy=0, area=2.78E+02, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_adder.update() +2024-05-29 17:03:01 INFO aladdin_adder.write() +2024-05-29 17:03:01 INFO aladdin_comparator(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy(pJ)=0.02947, area(um^2)=71, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_comparator.compare() +2024-05-29 17:03:01 INFO aladdin_comparator.read() +2024-05-29 17:03:01 INFO aladdin_comparator(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy(pJ)=2.51E-05, area(um^2)=71, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_comparator.leak() +2024-05-29 17:03:01 INFO aladdin_comparator(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy(pJ)=0, area(um^2)=71, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_comparator.update() +2024-05-29 17:03:01 INFO aladdin_comparator.write() +2024-05-29 17:03:01 INFO aladdin_counter(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy(pJ)=0.25074, area(um^2)=495.5, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_counter.count() +2024-05-29 17:03:01 INFO aladdin_counter.read() +2024-05-29 17:03:01 INFO aladdin_counter(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy(pJ)=0.0003213, area(um^2)=495.5, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_counter.leak() +2024-05-29 17:03:01 INFO aladdin_counter(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, energy(pJ)=0, area(um^2)=495.5, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_counter.update() +2024-05-29 17:03:01 INFO aladdin_counter.write() +2024-05-29 17:03:01 INFO aladdin_multiplier(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, width_a|datawidth_a=32, width_b|datawidth_b=32, energy(pJ)=12.68, area(um^2)=6350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_multiplier.multiply() +2024-05-29 17:03:01 INFO aladdin_multiplier.read() +2024-05-29 17:03:01 INFO aladdin_multiplier(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, width_a|datawidth_a=32, width_b|datawidth_b=32, energy(pJ)=0.08, area(um^2)=6350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_multiplier.leak() +2024-05-29 17:03:01 INFO aladdin_multiplier(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=32, width_a|datawidth_a=32, width_b|datawidth_b=32, energy(pJ)=0, area(um^2)=6350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_multiplier.update() +2024-05-29 17:03:01 INFO aladdin_multiplier.write() +2024-05-29 17:03:01 INFO aladdin_register(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=1, dynamic energy(pJ)=0.009, area(um^2)=5.98E+00, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_register.read() +2024-05-29 17:03:01 INFO aladdin_register(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=1, dynamic energy(pJ)=0, area(um^2)=5.98E+00, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_register.write() +2024-05-29 17:03:01 INFO aladdin_register(technology=45nm, global_cycle_seconds=1e-9, width|datawidth=1, dynamic energy(pJ)=0, area(um^2)=5.98E+00, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO aladdin_register.leak() +2024-05-29 17:03:01 INFO aladdin_register.update() +2024-05-29 17:03:01 INFO array_adc(rows=32, cols=32, cols_active_at_once=8, cell_config=placeholder, average_input_value=1, average_cell_value=1, sequential=False, adc_resolution=0, read_pulse_width=1e-08, voltage_dac_bits=1, temporal_dac_bits=1, temporal_spiking=False, voltage=0, threshold_voltage=0, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO array_adc.read() +2024-05-29 17:03:01 INFO array_adc.mac_random() +2024-05-29 17:03:01 INFO array_adc.mac_reused() +2024-05-29 17:03:01 INFO array_adc.compute() +2024-05-29 17:03:01 INFO array_adc.add() +2024-05-29 17:03:01 INFO array_adc.shift_add() +2024-05-29 17:03:01 INFO array_adc.convert() +2024-05-29 17:03:01 INFO array_adc.write() +2024-05-29 17:03:01 INFO array_adc.set() +2024-05-29 17:03:01 INFO array_adc.erase() +2024-05-29 17:03:01 INFO array_adc.update() +2024-05-29 17:03:01 INFO array_adc.leak() +2024-05-29 17:03:01 INFO array_adc: alias for ADC Plug-In plug-in adc +2024-05-29 17:03:01 INFO array_col_drivers(rows=32, cols=32, cols_active_at_once=8, cell_config=placeholder, average_input_value=1, average_cell_value=1, sequential=False, adc_resolution=0, read_pulse_width=1e-08, voltage_dac_bits=1, temporal_dac_bits=1, temporal_spiking=False, voltage=0, threshold_voltage=0, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO array_col_drivers.read() +2024-05-29 17:03:01 INFO array_col_drivers.mac_random() +2024-05-29 17:03:01 INFO array_col_drivers.mac_reused() +2024-05-29 17:03:01 INFO array_col_drivers.compute() +2024-05-29 17:03:01 INFO array_col_drivers.add() +2024-05-29 17:03:01 INFO array_col_drivers.shift_add() +2024-05-29 17:03:01 INFO array_col_drivers.convert() +2024-05-29 17:03:01 INFO array_col_drivers.write() +2024-05-29 17:03:01 INFO array_col_drivers.set() +2024-05-29 17:03:01 INFO array_col_drivers.erase() +2024-05-29 17:03:01 INFO array_col_drivers.update() +2024-05-29 17:03:01 INFO array_col_drivers.leak() +2024-05-29 17:03:01 INFO array_row_drivers(rows=32, cols=32, cols_active_at_once=8, cell_config=placeholder, average_input_value=1, average_cell_value=1, sequential=False, adc_resolution=0, read_pulse_width=1e-08, voltage_dac_bits=1, temporal_dac_bits=1, temporal_spiking=False, voltage=0, threshold_voltage=0, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO array_row_drivers.read() +2024-05-29 17:03:01 INFO array_row_drivers.mac_random() +2024-05-29 17:03:01 INFO array_row_drivers.mac_reused() +2024-05-29 17:03:01 INFO array_row_drivers.compute() +2024-05-29 17:03:01 INFO array_row_drivers.add() +2024-05-29 17:03:01 INFO array_row_drivers.shift_add() +2024-05-29 17:03:01 INFO array_row_drivers.convert() +2024-05-29 17:03:01 INFO array_row_drivers.write() +2024-05-29 17:03:01 INFO array_row_drivers.set() +2024-05-29 17:03:01 INFO array_row_drivers.erase() +2024-05-29 17:03:01 INFO array_row_drivers.update() +2024-05-29 17:03:01 INFO array_row_drivers.leak() +2024-05-29 17:03:01 INFO atomlayer_input_buffer_transfers(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=16, depth=128, energy=6.46, area=2100, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO atomlayer_input_buffer_transfers.read() +2024-05-29 17:03:01 INFO atomlayer_input_buffer_transfers(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=16, depth=128, energy=0, area=2100, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO atomlayer_input_buffer_transfers.write() +2024-05-29 17:03:01 INFO atomlayer_input_buffer_transfers.update() +2024-05-29 17:03:01 INFO atomlayer_input_buffer_transfers.leak() +2024-05-29 17:03:01 INFO atomlayer_register_ladder(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=16, depth=128, energy=0.083, area=1620, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO atomlayer_register_ladder.read() +2024-05-29 17:03:01 INFO atomlayer_register_ladder.write() +2024-05-29 17:03:01 INFO atomlayer_register_ladder(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=16, depth=128, energy=0, area=1620, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO atomlayer_register_ladder.update() +2024-05-29 17:03:01 INFO atomlayer_register_ladder.leak() +2024-05-29 17:03:01 INFO bitwise(technology, global_cycle_seconds, width) +2024-05-29 17:03:01 INFO bitwise.leak() +2024-05-29 17:03:01 INFO bitwise.access() +2024-05-29 17:03:01 INFO brahms_dac(technology=40nm, global_cycle_seconds=1e-9, resolution=8, energy=0.291, area=438, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO brahms_dac.read() +2024-05-29 17:03:01 INFO brahms_dac.convert() +2024-05-29 17:03:01 INFO brahms_dac(technology=40nm, global_cycle_seconds=1e-9, resolution=8, energy=0, area=438, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO brahms_dac.update() +2024-05-29 17:03:01 INFO brahms_dac.write() +2024-05-29 17:03:01 INFO brahms_dac.leak() +2024-05-29 17:03:01 INFO cache(technology, width, depth, n_rw_ports=1, n_banks=1, associativity=1, tag_size=None) +2024-05-29 17:03:01 INFO cache.idle() +2024-05-29 17:03:01 INFO cache.read(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO cache.read_access(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO cache.update(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO cache.update_access(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO cache.write(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO cache.write_access(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO cache.leak(global_cycle_seconds) +2024-05-29 17:03:01 INFO cim_adc: alias for ADC Plug-In plug-in adc +2024-05-29 17:03:01 INFO cim_array_adc: alias for ADC Plug-In plug-in adc +2024-05-29 17:03:01 INFO comparator(technology, global_cycle_seconds, width) +2024-05-29 17:03:01 INFO comparator.leak() +2024-05-29 17:03:01 INFO comparator.access() +2024-05-29 17:03:01 INFO counter(technology, global_cycle_seconds, width) +2024-05-29 17:03:01 INFO counter.leak() +2024-05-29 17:03:01 INFO counter.access() +2024-05-29 17:03:01 INFO crossbar(technology, global_cycle_seconds, n_inputs, n_outputs, width) +2024-05-29 17:03:01 INFO crossbar.leak() +2024-05-29 17:03:01 INFO crossbar.access() +2024-05-29 17:03:01 INFO DRAM(width, type=LPDDR4) +2024-05-29 17:03:01 INFO DRAM.idle() +2024-05-29 17:03:01 INFO DRAM.read() +2024-05-29 17:03:01 INFO DRAM.update() +2024-05-29 17:03:01 INFO DRAM.write() +2024-05-29 17:03:01 INFO DRAM.leak(global_cycle_seconds) +2024-05-29 17:03:01 INFO dummy_compute(global_cycle_seconds=1e-9, energy=0, area=0, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO dummy_compute.read() +2024-05-29 17:03:01 INFO dummy_compute.update() +2024-05-29 17:03:01 INFO dummy_compute.leak() +2024-05-29 17:03:01 INFO dummy_compute.write() +2024-05-29 17:03:01 INFO dummy_compute.*() +2024-05-29 17:03:01 INFO dummy_storage(global_cycle_seconds=1e-9, energy=0, area=0, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO dummy_storage.read() +2024-05-29 17:03:01 INFO dummy_storage.update() +2024-05-29 17:03:01 INFO dummy_storage.leak() +2024-05-29 17:03:01 INFO dummy_storage.write() +2024-05-29 17:03:01 INFO dummy_storage.*() +2024-05-29 17:03:01 INFO FIFO(technology, global_cycle_seconds, width, depth) +2024-05-29 17:03:01 INFO FIFO.leak() +2024-05-29 17:03:01 INFO FIFO.access() +2024-05-29 17:03:01 INFO flip_flop(n_bits=8, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO flip_flop.read() +2024-05-29 17:03:01 INFO flip_flop.mac_random() +2024-05-29 17:03:01 INFO flip_flop.mac_reused() +2024-05-29 17:03:01 INFO flip_flop.compute() +2024-05-29 17:03:01 INFO flip_flop.add() +2024-05-29 17:03:01 INFO flip_flop.shift_add() +2024-05-29 17:03:01 INFO flip_flop.convert() +2024-05-29 17:03:01 INFO flip_flop.write() +2024-05-29 17:03:01 INFO flip_flop.set() +2024-05-29 17:03:01 INFO flip_flop.erase() +2024-05-29 17:03:01 INFO flip_flop.update() +2024-05-29 17:03:01 INFO flip_flop.leak() +2024-05-29 17:03:01 INFO forms_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=4, energy=0.22619, area=284.375, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO forms_adc.convert() +2024-05-29 17:03:01 INFO forms_adc.read() +2024-05-29 17:03:01 INFO forms_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=4, energy=0, area=284.375, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO forms_adc.update() +2024-05-29 17:03:01 INFO forms_adc.write() +2024-05-29 17:03:01 INFO forms_adc.leak() +2024-05-29 17:03:01 INFO fpadder(technology, global_cycle_seconds, exponent, mantissa) +2024-05-29 17:03:01 INFO fpadder.leak() +2024-05-29 17:03:01 INFO fpadder.access() +2024-05-29 17:03:01 INFO fpmac(technology, global_cycle_seconds, exponent, mantissa) +2024-05-29 17:03:01 INFO fpmac.leak() +2024-05-29 17:03:01 INFO fpmac.access() +2024-05-29 17:03:01 INFO fpmultiplier(technology, global_cycle_seconds, exponent, mantissa) +2024-05-29 17:03:01 INFO fpmultiplier.leak() +2024-05-29 17:03:01 INFO fpmultiplier.access() +2024-05-29 17:03:01 INFO intadder(technology, global_cycle_seconds, width) +2024-05-29 17:03:01 INFO intadder.leak() +2024-05-29 17:03:01 INFO intadder.access() +2024-05-29 17:03:01 INFO intadder(n_bits=8, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO intadder.read() +2024-05-29 17:03:01 INFO intadder.mac_random() +2024-05-29 17:03:01 INFO intadder.mac_reused() +2024-05-29 17:03:01 INFO intadder.compute() +2024-05-29 17:03:01 INFO intadder.add() +2024-05-29 17:03:01 INFO intadder.shift_add() +2024-05-29 17:03:01 INFO intadder.convert() +2024-05-29 17:03:01 INFO intadder.write() +2024-05-29 17:03:01 INFO intadder.set() +2024-05-29 17:03:01 INFO intadder.erase() +2024-05-29 17:03:01 INFO intadder.update() +2024-05-29 17:03:01 INFO intadder.leak() +2024-05-29 17:03:01 INFO intadder_tree(n_bits=8, n_adder_tree_inputs=2, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO intadder_tree.read() +2024-05-29 17:03:01 INFO intadder_tree.mac_random() +2024-05-29 17:03:01 INFO intadder_tree.mac_reused() +2024-05-29 17:03:01 INFO intadder_tree.compute() +2024-05-29 17:03:01 INFO intadder_tree.add() +2024-05-29 17:03:01 INFO intadder_tree.shift_add() +2024-05-29 17:03:01 INFO intadder_tree.convert() +2024-05-29 17:03:01 INFO intadder_tree.write() +2024-05-29 17:03:01 INFO intadder_tree.set() +2024-05-29 17:03:01 INFO intadder_tree.erase() +2024-05-29 17:03:01 INFO intadder_tree.update() +2024-05-29 17:03:01 INFO intadder_tree.leak() +2024-05-29 17:03:01 INFO intmac(technology, global_cycle_seconds, width) +2024-05-29 17:03:01 INFO intmac.leak() +2024-05-29 17:03:01 INFO intmac.access() +2024-05-29 17:03:01 INFO intmultiplier(technology, global_cycle_seconds, width) +2024-05-29 17:03:01 INFO intmultiplier.leak() +2024-05-29 17:03:01 INFO intmultiplier.access() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=8, energy=1.666666667, area=1200, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.convert() +2024-05-29 17:03:01 INFO isaac_adc.read() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=8, energy=0, area=1200, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.leak() +2024-05-29 17:03:01 INFO isaac_adc.update() +2024-05-29 17:03:01 INFO isaac_adc.write() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=4, energy=0.79, area=361.04, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.convert() +2024-05-29 17:03:01 INFO isaac_adc.read() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=5, energy=0.99, area=476.91, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.convert() +2024-05-29 17:03:01 INFO isaac_adc.read() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=6, energy=1.20, area=626.91, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.convert() +2024-05-29 17:03:01 INFO isaac_adc.read() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=7, energy=1.42, area=845.18, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.convert() +2024-05-29 17:03:01 INFO isaac_adc.read() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=8, energy=1.67, area=1200, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.convert() +2024-05-29 17:03:01 INFO isaac_adc.read() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=9, energy=1.969078145, area=1827.911647, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.convert() +2024-05-29 17:03:01 INFO isaac_adc.read() +2024-05-29 17:03:01 INFO isaac_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=10, energy=2.379022742, area=3002.008032, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO isaac_adc.convert() +2024-05-29 17:03:01 INFO isaac_adc.read() +2024-05-29 17:03:01 INFO isaac_chip2chip_link(technology=65nm, global_cycle_seconds=1e-9, width|datawidth=128, energy=26, area=23000000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_chip2chip_link.read() +2024-05-29 17:03:01 INFO isaac_chip2chip_link.write() +2024-05-29 17:03:01 INFO isaac_chip2chip_link.update() +2024-05-29 17:03:01 INFO isaac_chip2chip_link(technology=65nm, global_cycle_seconds=1e-9, width|datawidth=128, energy=0, area=23000000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_chip2chip_link.leak() +2024-05-29 17:03:01 INFO isaac_dac(technology=32nm, global_cycle_seconds=1e-9, resolution=1, energy=0.41667, area=0.166015625, rows=1, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_dac.drive() +2024-05-29 17:03:01 INFO isaac_dac.read() +2024-05-29 17:03:01 INFO isaac_dac(technology=32nm, global_cycle_seconds=1e-9, resolution=1, energy=0, area=0.166015625, rows=1, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_dac.write() +2024-05-29 17:03:01 INFO isaac_dac.leak() +2024-05-29 17:03:01 INFO isaac_dac.update() +2024-05-29 17:03:01 INFO isaac_edram(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=256, depth=2048, energy=20.45, area=83000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_edram.read() +2024-05-29 17:03:01 INFO isaac_edram.write() +2024-05-29 17:03:01 INFO isaac_edram.update() +2024-05-29 17:03:01 INFO isaac_edram(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=256, depth=2048, energy=0, area=83000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_edram.leak() +2024-05-29 17:03:01 INFO isaac_edram_bus(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=1, energy=0.054, area=29.296875, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_edram_bus.read() +2024-05-29 17:03:01 INFO isaac_edram_bus(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=1, energy=0, area=29.296875, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_edram_bus.leak() +2024-05-29 17:03:01 INFO isaac_edram_bus.update() +2024-05-29 17:03:01 INFO isaac_edram_bus.write() +2024-05-29 17:03:01 INFO isaac_router(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=256, energy=20.74, area=150000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_router.read() +2024-05-29 17:03:01 INFO isaac_router(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=256, energy=0, area=150000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_router.leak() +2024-05-29 17:03:01 INFO isaac_router.update() +2024-05-29 17:03:01 INFO isaac_router.write() +2024-05-29 17:03:01 INFO isaac_router_shared_by_four(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=256, energy=20.74, area=37500, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_router_shared_by_four.read() +2024-05-29 17:03:01 INFO isaac_router_shared_by_four(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=256, energy=0, area=37500, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_router_shared_by_four.leak() +2024-05-29 17:03:01 INFO isaac_router_shared_by_four.update() +2024-05-29 17:03:01 INFO isaac_router_shared_by_four.write() +2024-05-29 17:03:01 INFO isaac_shift_add(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=16, energy=0.021, area=60, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_shift_add.shift_add() +2024-05-29 17:03:01 INFO isaac_shift_add.read() +2024-05-29 17:03:01 INFO isaac_shift_add.write() +2024-05-29 17:03:01 INFO isaac_shift_add(technology=32nm, global_cycle_seconds=1e-9, width|datawidth=16, energy=0.00E+00, area=60, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO isaac_shift_add.leak() +2024-05-29 17:03:01 INFO isaac_shift_add.update() +2024-05-29 17:03:01 INFO jia_datapath(technology=65nm, global_cycle_seconds=540e-9, voltage=1.2, energy=12, area=10535, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_datapath.read() +2024-05-29 17:03:01 INFO jia_datapath(technology=65nm, global_cycle_seconds=540e-9, voltage=1.2, energy=2.4, area=10535, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_datapath.leak() +2024-05-29 17:03:01 INFO jia_datapath(technology=65nm, global_cycle_seconds=540e-9, voltage=1.2, energy=0, area=10535, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_datapath.write() +2024-05-29 17:03:01 INFO jia_datapath.update() +2024-05-29 17:03:01 INFO jia_shift_add(technology=65nm, global_cycle_seconds=540e-9, resolution=8, voltage=1.2, energy=2.25, area=5000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_shift_add.read() +2024-05-29 17:03:01 INFO jia_shift_add(technology=65nm, global_cycle_seconds=540e-9, resolution=8, voltage=1.2, energy=1.2, area=5000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_shift_add.leak() +2024-05-29 17:03:01 INFO jia_shift_add(technology=65nm, global_cycle_seconds=540e-9, resolution=8, voltage=1.2, energy=0, area=5000, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_shift_add.write() +2024-05-29 17:03:01 INFO jia_shift_add.update() +2024-05-29 17:03:01 INFO jia_zero_gate(technology=65nm, global_cycle_seconds=540e-9, rows=1, resolution=8, voltage=1.2, energy=0.5, area=174, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_zero_gate.read() +2024-05-29 17:03:01 INFO jia_zero_gate(technology=65nm, global_cycle_seconds=540e-9, rows=1, resolution=8, voltage=1.2, energy=0.2, area=174, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_zero_gate.leak() +2024-05-29 17:03:01 INFO jia_zero_gate(technology=65nm, global_cycle_seconds=540e-9, rows=1, resolution=8, voltage=1.2, energy=0, area=174, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO jia_zero_gate.write() +2024-05-29 17:03:01 INFO jia_zero_gate.update() +2024-05-29 17:03:01 INFO max_pool(n_bits=8, pool_window=2, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO max_pool.read() +2024-05-29 17:03:01 INFO max_pool.mac_random() +2024-05-29 17:03:01 INFO max_pool.mac_reused() +2024-05-29 17:03:01 INFO max_pool.compute() +2024-05-29 17:03:01 INFO max_pool.add() +2024-05-29 17:03:01 INFO max_pool.shift_add() +2024-05-29 17:03:01 INFO max_pool.convert() +2024-05-29 17:03:01 INFO max_pool.write() +2024-05-29 17:03:01 INFO max_pool.set() +2024-05-29 17:03:01 INFO max_pool.erase() +2024-05-29 17:03:01 INFO max_pool.update() +2024-05-29 17:03:01 INFO max_pool.leak() +2024-05-29 17:03:01 INFO memory_cell(rows=32, cols=32, cols_active_at_once=8, cell_config=placeholder, average_input_value=1, average_cell_value=1, sequential=False, adc_resolution=0, read_pulse_width=1e-08, voltage_dac_bits=1, temporal_dac_bits=1, temporal_spiking=False, voltage=0, threshold_voltage=0, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO memory_cell.read() +2024-05-29 17:03:01 INFO memory_cell.mac_random() +2024-05-29 17:03:01 INFO memory_cell.mac_reused() +2024-05-29 17:03:01 INFO memory_cell.compute() +2024-05-29 17:03:01 INFO memory_cell.add() +2024-05-29 17:03:01 INFO memory_cell.shift_add() +2024-05-29 17:03:01 INFO memory_cell.convert() +2024-05-29 17:03:01 INFO memory_cell.write() +2024-05-29 17:03:01 INFO memory_cell.set() +2024-05-29 17:03:01 INFO memory_cell.erase() +2024-05-29 17:03:01 INFO memory_cell.update() +2024-05-29 17:03:01 INFO memory_cell.leak() +2024-05-29 17:03:01 INFO mux(n_mux_inputs=2, n_bits=8, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO mux.read() +2024-05-29 17:03:01 INFO mux.mac_random() +2024-05-29 17:03:01 INFO mux.mac_reused() +2024-05-29 17:03:01 INFO mux.compute() +2024-05-29 17:03:01 INFO mux.add() +2024-05-29 17:03:01 INFO mux.shift_add() +2024-05-29 17:03:01 INFO mux.convert() +2024-05-29 17:03:01 INFO mux.write() +2024-05-29 17:03:01 INFO mux.set() +2024-05-29 17:03:01 INFO mux.erase() +2024-05-29 17:03:01 INFO mux.update() +2024-05-29 17:03:01 INFO mux.leak() +2024-05-29 17:03:01 INFO nand_gate(global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO nand_gate.read() +2024-05-29 17:03:01 INFO nand_gate.mac_random() +2024-05-29 17:03:01 INFO nand_gate.mac_reused() +2024-05-29 17:03:01 INFO nand_gate.compute() +2024-05-29 17:03:01 INFO nand_gate.add() +2024-05-29 17:03:01 INFO nand_gate.shift_add() +2024-05-29 17:03:01 INFO nand_gate.convert() +2024-05-29 17:03:01 INFO nand_gate.write() +2024-05-29 17:03:01 INFO nand_gate.set() +2024-05-29 17:03:01 INFO nand_gate.erase() +2024-05-29 17:03:01 INFO nand_gate.update() +2024-05-29 17:03:01 INFO nand_gate.leak() +2024-05-29 17:03:01 INFO newton_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=9, energy=2.58333333333, area=1500, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO newton_adc.convert() +2024-05-29 17:03:01 INFO newton_adc.read() +2024-05-29 17:03:01 INFO newton_adc(technology=32nm, global_cycle_seconds=1e-9, resolution=9, energy=0, area=1500, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO newton_adc.write() +2024-05-29 17:03:01 INFO newton_adc.update() +2024-05-29 17:03:01 INFO newton_adc.leak() +2024-05-29 17:03:01 INFO nor_gate(global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO nor_gate.read() +2024-05-29 17:03:01 INFO nor_gate.mac_random() +2024-05-29 17:03:01 INFO nor_gate.mac_reused() +2024-05-29 17:03:01 INFO nor_gate.compute() +2024-05-29 17:03:01 INFO nor_gate.add() +2024-05-29 17:03:01 INFO nor_gate.shift_add() +2024-05-29 17:03:01 INFO nor_gate.convert() +2024-05-29 17:03:01 INFO nor_gate.write() +2024-05-29 17:03:01 INFO nor_gate.set() +2024-05-29 17:03:01 INFO nor_gate.erase() +2024-05-29 17:03:01 INFO nor_gate.update() +2024-05-29 17:03:01 INFO nor_gate.leak() +2024-05-29 17:03:01 INFO not_gate(global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO not_gate.read() +2024-05-29 17:03:01 INFO not_gate.mac_random() +2024-05-29 17:03:01 INFO not_gate.mac_reused() +2024-05-29 17:03:01 INFO not_gate.compute() +2024-05-29 17:03:01 INFO not_gate.add() +2024-05-29 17:03:01 INFO not_gate.shift_add() +2024-05-29 17:03:01 INFO not_gate.convert() +2024-05-29 17:03:01 INFO not_gate.write() +2024-05-29 17:03:01 INFO not_gate.set() +2024-05-29 17:03:01 INFO not_gate.erase() +2024-05-29 17:03:01 INFO not_gate.update() +2024-05-29 17:03:01 INFO not_gate.leak() +2024-05-29 17:03:01 INFO pim_adc: alias for ADC Plug-In plug-in adc +2024-05-29 17:03:01 INFO pim_array_adc: alias for ADC Plug-In plug-in adc +2024-05-29 17:03:01 INFO raella_quant_multiplier(technology=45nm, global_cycle_seconds=1e-9, energy=0.25, area=0, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO raella_quant_multiplier.multiply() +2024-05-29 17:03:01 INFO raella_quant_multiplier.read() +2024-05-29 17:03:01 INFO raella_quant_multiplier(technology=45nm, global_cycle_seconds=1e-9, energy=0, area=0, n_instances=1, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO raella_quant_multiplier.update() +2024-05-29 17:03:01 INFO raella_quant_multiplier.leak() +2024-05-29 17:03:01 INFO raella_quant_multiplier.write() +2024-05-29 17:03:01 INFO reg(technology, global_cycle_seconds, width) +2024-05-29 17:03:01 INFO reg.leak() +2024-05-29 17:03:01 INFO reg.access() +2024-05-29 17:03:01 INFO regfile(technology, global_cycle_seconds, width, depth) +2024-05-29 17:03:01 INFO regfile.leak() +2024-05-29 17:03:01 INFO regfile.access() +2024-05-29 17:03:01 INFO sar_adc: alias for ADC Plug-In plug-in adc +2024-05-29 17:03:01 INFO shift_add(n_bits=8, shift_register_n_bits=16, global_cycle_seconds=1e-09, technology=32) +2024-05-29 17:03:01 INFO shift_add.read() +2024-05-29 17:03:01 INFO shift_add.mac_random() +2024-05-29 17:03:01 INFO shift_add.mac_reused() +2024-05-29 17:03:01 INFO shift_add.compute() +2024-05-29 17:03:01 INFO shift_add.add() +2024-05-29 17:03:01 INFO shift_add.shift_add() +2024-05-29 17:03:01 INFO shift_add.convert() +2024-05-29 17:03:01 INFO shift_add.write() +2024-05-29 17:03:01 INFO shift_add.set() +2024-05-29 17:03:01 INFO shift_add.erase() +2024-05-29 17:03:01 INFO shift_add.update() +2024-05-29 17:03:01 INFO shift_add.leak() +2024-05-29 17:03:01 INFO SRAM(technology, global_cycle_seconds, width, depth) +2024-05-29 17:03:01 INFO SRAM.leak() +2024-05-29 17:03:01 INFO SRAM.access() +2024-05-29 17:03:01 INFO SRAM(technology, width, depth, n_rw_ports=1, n_banks=1) +2024-05-29 17:03:01 INFO SRAM.idle() +2024-05-29 17:03:01 INFO SRAM.read(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO SRAM.update(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO SRAM.write(address_delta=True, data_delta=True) +2024-05-29 17:03:01 INFO SRAM.leak(global_cycle_seconds) +2024-05-29 17:03:01 INFO timely_charging_comparator(technology=65nm, global_cycle_seconds=1e-9, energy=0.0417, area=40, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_charging_comparator.compare() +2024-05-29 17:03:01 INFO timely_charging_comparator.read() +2024-05-29 17:03:01 INFO timely_charging_comparator(technology=65nm, global_cycle_seconds=1e-9, energy=0, area=40, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_charging_comparator.write() +2024-05-29 17:03:01 INFO timely_charging_comparator.update() +2024-05-29 17:03:01 INFO timely_charging_comparator.leak() +2024-05-29 17:03:01 INFO timely_dtc(technology=65nm, global_cycle_seconds=1e-9, resolution=8, energy=0.0375, area=240, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_dtc.convert() +2024-05-29 17:03:01 INFO timely_dtc.read() +2024-05-29 17:03:01 INFO timely_dtc(technology=65nm, global_cycle_seconds=1e-9, resolution=8, energy=0, area=240, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_dtc.write() +2024-05-29 17:03:01 INFO timely_dtc.leak() +2024-05-29 17:03:01 INFO timely_dtc.update() +2024-05-29 17:03:01 INFO timely_iadder(technology=65nm, global_cycle_seconds=1e-9, energy=0.0368, area=40, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_iadder.read() +2024-05-29 17:03:01 INFO timely_iadder.add() +2024-05-29 17:03:01 INFO timely_iadder(technology=65nm, global_cycle_seconds=1e-9, energy=0, area=40, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_iadder.write() +2024-05-29 17:03:01 INFO timely_iadder.update() +2024-05-29 17:03:01 INFO timely_iadder.leak() +2024-05-29 17:03:01 INFO timely_input_output_buffer(technology=65nm, global_cycle_seconds=1e-9, width|datawidth=128, depth=128, energy=203.776, area=40, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_input_output_buffer.read() +2024-05-29 17:03:01 INFO timely_input_output_buffer(technology=65nm, global_cycle_seconds=1e-9, width|datawidth=128, depth=128, energy=496.624, area=40, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_input_output_buffer.write() +2024-05-29 17:03:01 INFO timely_input_output_buffer.update() +2024-05-29 17:03:01 INFO timely_input_output_buffer(technology=65nm, global_cycle_seconds=1e-9, width|datawidth=128, depth=128, energy=0, area=40, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_input_output_buffer.leak() +2024-05-29 17:03:01 INFO timely_psubbuf(technology=65nm, global_cycle_seconds=1e-9, n_instances=1, energy=0.0023, area=5, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO timely_psubbuf.drive() +2024-05-29 17:03:01 INFO timely_psubbuf.read() +2024-05-29 17:03:01 INFO timely_psubbuf.convert() +2024-05-29 17:03:01 INFO timely_psubbuf(technology=65nm, global_cycle_seconds=1e-9, n_instances=1, energy=0, area=5, area_scale=1, energy_scale=1) +2024-05-29 17:03:01 INFO timely_psubbuf.leak() +2024-05-29 17:03:01 INFO timely_psubbuf.update() +2024-05-29 17:03:01 INFO timely_psubbuf.write() +2024-05-29 17:03:01 INFO timely_tdc(technology=65nm, global_cycle_seconds=1e-9, resolution=8, energy=0.145, area=310, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_tdc.convert() +2024-05-29 17:03:01 INFO timely_tdc.read() +2024-05-29 17:03:01 INFO timely_tdc(technology=65nm, global_cycle_seconds=1e-9, resolution=8, energy=0, area=310, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_tdc.leak() +2024-05-29 17:03:01 INFO timely_tdc.write() +2024-05-29 17:03:01 INFO timely_tdc.update() +2024-05-29 17:03:01 INFO timely_xsubbuf(technology=65nm, global_cycle_seconds=1e-9, rows=1, energy=0.00062, area=5, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_xsubbuf.read() +2024-05-29 17:03:01 INFO timely_xsubbuf.drive() +2024-05-29 17:03:01 INFO timely_xsubbuf.buffer() +2024-05-29 17:03:01 INFO timely_xsubbuf(technology=65nm, global_cycle_seconds=1e-9, rows=1, energy=0, area=5, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO timely_xsubbuf.leak() +2024-05-29 17:03:01 INFO timely_xsubbuf.write() +2024-05-29 17:03:01 INFO timely_xsubbuf.update() +2024-05-29 17:03:01 INFO wan_analog_integrator(technology=130nm, n_steps=1, global_cycle_seconds=1e-6, voltage=1.8, energy=0.25, area=350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_analog_integrator.read() +2024-05-29 17:03:01 INFO wan_analog_integrator(technology=130nm, n_steps=*, global_cycle_seconds=1e-6, voltage=1.8, energy=0, area=350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_analog_integrator.leak() +2024-05-29 17:03:01 INFO wan_analog_integrator(technology=130nm, n_steps=*, global_cycle_seconds=1e-6, voltage=1.8, energy=0, area=350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_analog_integrator.write() +2024-05-29 17:03:01 INFO wan_analog_integrator.update() +2024-05-29 17:03:01 INFO wan_analog_sample(technology=130nm, global_cycle_seconds=1e-6, voltage=1.8, energy=1.2, area=350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_analog_sample.read() +2024-05-29 17:03:01 INFO wan_analog_sample(technology=130nm, global_cycle_seconds=1e-6, voltage=1.8, energy=0, area=350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_analog_sample.leak() +2024-05-29 17:03:01 INFO wan_analog_sample(technology=130nm, global_cycle_seconds=1e-6, voltage=1.8, energy=0, area=350, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_analog_sample.write() +2024-05-29 17:03:01 INFO wan_analog_sample.update() +2024-05-29 17:03:01 INFO wan_shift_add(technology=130nm, n_steps=1, global_cycle_seconds=1e-6, resolution=8, voltage=1.8, energy=0.1, area=170, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_shift_add.read() +2024-05-29 17:03:01 INFO wan_shift_add(technology=130nm, n_steps=*, global_cycle_seconds=1e-6, resolution=8, voltage=1.8, energy=0, area=170, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_shift_add.leak() +2024-05-29 17:03:01 INFO wan_shift_add(technology=130nm, n_steps=*, global_cycle_seconds=1e-6, resolution=8, voltage=1.8, energy=0, area=170, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_shift_add.write() +2024-05-29 17:03:01 INFO wan_shift_add.update() +2024-05-29 17:03:01 INFO wan_variable_precision_adc(technology=130nm, n_steps=1, global_cycle_seconds=1e-6, voltage=1.8, energy=0.3, area=400, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_variable_precision_adc.read() +2024-05-29 17:03:01 INFO wan_variable_precision_adc(technology=130nm, n_steps=*, global_cycle_seconds=1e-6, voltage=1.8, energy=0, area=400, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_variable_precision_adc.leak() +2024-05-29 17:03:01 INFO wan_variable_precision_adc(technology=130nm, n_steps=*, global_cycle_seconds=1e-6, voltage=1.8, energy=0, area=400, area_scale=1, energy_scale=1, n_instances=1) +2024-05-29 17:03:01 INFO wan_variable_precision_adc.write() +2024-05-29 17:03:01 INFO wan_variable_precision_adc.update() +2024-05-29 17:03:01 INFO wire(technology, global_cycle_seconds, length, width) +2024-05-29 17:03:01 INFO wire.transfer() +2024-05-29 17:03:01 INFO wire.transfer_random() +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO Plug-ins without entries: +2024-05-29 17:03:01 INFO DEPRECATED table-based-plug-ins. Use the Library plug-in instead. +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO Parsing functions: +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO Calculated adder."width" as "adder_width" = 16. +2024-05-29 17:03:01 INFO Calculated multiplier."width" as "multiplier_width" = 8. +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:01 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:01 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 17:03:01 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Identified a set of tables named: test_tables +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class DRAM is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support dram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find leak for dram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support DRAM.leak. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:01 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class DRAM is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support dram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for dram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support DRAM.read. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:01 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class DRAM is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support dram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for dram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support DRAM.update. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:01 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class DRAM is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support dram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for dram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support DRAM.write. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:01 INFO CactiSRAM estimated 2.71132e-16 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:01 INFO | Unused arguments (action_latency_cycles) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 17:03:01 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpntuyfp_5 +2024-05-29 17:03:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpw98laspx +2024-05-29 17:03:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpntuyfp_5 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpw98laspx 2>&1 +2024-05-29 17:03:01 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:01 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:01 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.771652 +2024-05-29 17:03:01 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Only SRAMs with depth <= 128 and width <= 32 are supported by Aladdin +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support sram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find leak for sram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support SRAM.leak. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:01 INFO CactiSRAM estimated 9.65335e-12 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for SRAM.read. Arguments used: () +2024-05-29 17:03:01 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp77zxe0u3 +2024-05-29 17:03:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3bo6j67k +2024-05-29 17:03:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp77zxe0u3 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp3bo6j67k 2>&1 +2024-05-29 17:03:01 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:01 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Only SRAMs with depth <= 128 and width <= 32 are supported by Aladdin +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support sram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for sram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support SRAM.read. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:01 INFO CactiSRAM estimated 1.26203e-11 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for SRAM.update. Arguments used: () +2024-05-29 17:03:01 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl2s2a7rt +2024-05-29 17:03:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmptquvmjfp +2024-05-29 17:03:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpl2s2a7rt >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmptquvmjfp 2>&1 +2024-05-29 17:03:01 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:01 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Only SRAMs with depth <= 128 and width <= 32 are supported by Aladdin +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support sram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for sram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support SRAM.update. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:01 INFO CactiSRAM estimated 1.26203e-11 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:01 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:01 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr1vp6a3l +2024-05-29 17:03:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5vts3hta +2024-05-29 17:03:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpr1vp6a3l >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5vts3hta 2>&1 +2024-05-29 17:03:01 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:01 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Only SRAMs with depth <= 128 and width <= 32 are supported by Aladdin +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support sram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for sram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support SRAM.write. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:01 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 17:03:01 INFO | Found 1 entries for aladdin_adder.add. +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 17:03:01 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:01 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:01 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 17:03:01 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:01 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 17:03:01 DEBUG Estimator logs: +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Found 1 entries for aladdin_adder.add. +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Primitive class aladdin_adder is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | ERROR: NeuroSim estimator does not support aladdin_adder. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | ADC Plug-In does not support aladdin_adder.add. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_adder is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_adder is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_adder is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class aladdin_adder is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support aladdin_adder. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support aladdin_adder.add. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name aladdin_adder is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name aladdin_adder is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name aladdin_adder is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO ENERGY ESTIMATION for aladdin_multiplier(width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).multiply(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:01 INFO Library estimated 3.17p with accuracy 90%. Messages: +2024-05-29 17:03:01 INFO | Found 1 entries for aladdin_multiplier.multiply. +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=12.68, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x energy', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_multiplier energy has been scaled 0.25x'] +2024-05-29 17:03:01 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | Scaling width from 32 to 8 +2024-05-29 17:03:01 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:01 INFO | Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x energy +2024-05-29 17:03:01 INFO | Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:01 INFO | aladdin_multiplier energy has been scaled 0.25x +2024-05-29 17:03:01 DEBUG Estimator logs: +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Found 1 entries for aladdin_multiplier.multiply. +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=12.68, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Primitive class aladdin_multiplier is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | ERROR: NeuroSim estimator does not support aladdin_multiplier. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | ADC Plug-In does not support aladdin_multiplier.multiply. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: value=12.68, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class aladdin_multiplier is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support aladdin_multiplier. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support aladdin_multiplier.multiply. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 WARNING No action counts are specified as yaml input +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:01 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:01 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support dram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find area for dram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support DRAM.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO AREA ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:01 INFO CactiSRAM estimated 4.36084e-08 with accuracy 80%. Messages: +2024-05-29 17:03:01 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:01 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:01 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4neel843 +2024-05-29 17:03:01 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5ar5ag6a +2024-05-29 17:03:01 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:01 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp4neel843 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp5ar5ag6a 2>&1 +2024-05-29 17:03:01 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:01 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:01 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 80% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support sram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find area for sram +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support SRAM.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:01 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 17:03:01 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 100% estimating accuracy: No messages found. +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: value=0.0, matching_attrs=2, log=['Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support dummy_storage. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support dummy_storage.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name dummy_storage is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name dummy_storage is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name dummy_storage is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:01 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:01 INFO | Found 5 entries for aladdin_adder. +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:01 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:01 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:01 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 17:03:01 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:01 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 17:03:01 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:01 DEBUG Estimator logs: +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Found 5 entries for aladdin_adder. +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | ERROR: NeuroSim estimator does not support aladdin_adder. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | ADC Plug-In does not support aladdin_adder.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_adder is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_adder is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_adder is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support aladdin_adder. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support aladdin_adder.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name aladdin_adder is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name aladdin_adder is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name aladdin_adder is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO +2024-05-29 17:03:01 INFO AREA ESTIMATION for aladdin_multiplier(width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:01 INFO Library estimated 1587.5u^2 with accuracy 90%. Messages: +2024-05-29 17:03:01 INFO | Found 5 entries for aladdin_multiplier. +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'read', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0.08', 'area(um^2)': '6350', 'action': 'leak', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0', 'area(um^2)': '6350', 'action': 'update', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:01 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0', 'area(um^2)': '6350', 'action': 'write', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:01 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 INFO | Scaling width from 32 to 8 +2024-05-29 17:03:01 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:01 INFO | Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area +2024-05-29 17:03:01 INFO | Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:01 INFO | aladdin_multiplier area has been scaled 0.25x +2024-05-29 17:03:01 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:01 DEBUG Estimator logs: +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Found 5 entries for aladdin_multiplier. +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'read', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0.08', 'area(um^2)': '6350', 'action': 'leak', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0', 'area(um^2)': '6350', 'action': 'update', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0', 'area(um^2)': '6350', 'action': 'write', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:01 DEBUG | | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | ERROR: NeuroSim estimator does not support aladdin_multiplier. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | ADC Plug-In does not support aladdin_multiplier.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: +2024-05-29 17:03:01 DEBUG | | Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | | Class name aladdin_multiplier is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 DEBUG Why plug-ins did not estimate: +2024-05-29 17:03:01 DEBUG | Library with accuracy 90% estimating accuracy: value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09'] +2024-05-29 17:03:01 DEBUG | DEPRECATED table-based-plug-ins. Use the Library plug-in instead. with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-05-29 17:03:01 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-05-29 17:03:01 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support aladdin_multiplier. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-05-29 17:03:01 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support aladdin_multiplier.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-05-29 17:03:01 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['cache'] +2024-05-29 17:03:01 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['DRAM'] +2024-05-29 17:03:01 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name aladdin_multiplier is not supported. Supported class names: ['SRAM'] +2024-05-29 17:03:01 INFO verbose flattened architecture is saved to: +2024-05-29 17:03:01 INFO ./flattened_architecture_verbose.yaml +2024-05-29 17:03:01 INFO energy reference table is saved to: +2024-05-29 17:03:01 INFO ./ERT.yaml +2024-05-29 17:03:01 INFO verbose energy reference table summary is saved to: +2024-05-29 17:03:01 INFO ./ERT_summary_verbose.yaml +2024-05-29 17:03:01 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 17:03:01 INFO area reference table is saved to: +2024-05-29 17:03:01 INFO ./ART.yaml +2024-05-29 17:03:01 INFO verbose area reference table summary is saved to: +2024-05-29 17:03:01 INFO ./ART_summary_verbose.yaml diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/flattened_architecture_verbose.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/flattened_architecture_verbose.yaml new file mode 100644 index 00000000..17e51e33 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/flattened_architecture_verbose.yaml @@ -0,0 +1,140 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.reg[1..8] + class: register + attributes: + datawidth: 8 + depth: 1 + width: 24 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 8 + meshY: 1 + power_gated_at: null + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-09 + DATAWIDTH: 8 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + primitive_components: [] + actions: + - name: read + arguments: {} + primitive_actions: [] + - name: write + arguments: {} + primitive_actions: [] + - name: update + arguments: {} + primitive_actions: [] + - name: leak + arguments: {} + primitive_actions: [] + - name: system_top_level.mac[1..8] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 8 + meshY: 1 + power_gated_at: null + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-09 + DATAWIDTH: 8 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + primitive_components: + - name: adder + class: aladdin_adder + attributes: + width: 16 + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + technology: "45nm" + n_instances: 1 + area_scale: 1 + - name: multiplier + class: aladdin_multiplier + attributes: + width: 8 + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + technology: "45nm" + n_instances: 1 + area_scale: 1 + actions: + - name: compute + arguments: {} + primitive_actions: + - name: adder + action: add + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + technology: "45nm" + n_instances: 1 + energy_scale: 1.0 + - name: multiplier + action: multiply + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + technology: "45nm" + n_instances: 1 + energy_scale: 1.0 + - name: system_top_level.DRAM[1..1] + class: DRAM + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + - name: system_top_level.buffer[1..1] + class: SRAM + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + - name: system_top_level.inter_PE_spatial[1..1] + class: dummy_storage + actions: [] diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/parsed-processed-input.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/parsed-processed-input.yaml new file mode 100644 index 00000000..1f9c0647 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/parsed-processed-input.yaml @@ -0,0 +1,257 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: system_top_level + attributes: + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-9 + DATAWIDTH: 8 + has_power_gating: false + power_gated_at: null + local: + - name: DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - leak + - read + - update + - write + enabled: true + - name: buffer[1..1] + class: SRAM + attributes: + depth: 512 + width: 128 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + required_actions: + - leak + - read + - update + - write + enabled: true + - name: inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + enabled: true + - name: mac[1..8] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 8 + meshY: 1 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: + - type: temporal + permutation: GSR + target: DRAM + - keep: + - Inputs + - Outputs + - Weights + type: bypass + target: buffer + - type: temporal + permutation: GSR + target: buffer + - type: spatial + factors: N=1,P=1,Q=1,R=1,M=8,C=1 + permutation: GNPQRSCM + split: 17 + target: inter_PE_spatial + - factors: C=1,M=1,R=1,S=1,N=1,P=1,Q=1,G=1 + permutation: CMRSNPQG + type: temporal + target: inter_PE_spatial + - bypass: + - Weights + - Inputs + - Outputs + type: bypass + target: inter_PE_spatial +problem: + version: '0.4' + instance: + C: 128 + G: 1 + H: 1 + Hdilation: 1 + Hpad: 0 + Hstride: 1 + M: 128 + N: 32 + P: 128 + Q: 128 + R: 1 + S: 1 + W: 1 + Wdilation: 1 + Wpad: 0 + Wstride: 1 + densities: {} + shape: + coefficients: + - name: Wstride + default: 1 + - name: Hstride + default: 1 + - name: Wdilation + default: 1 + - name: Hdilation + default: 1 + data_spaces: + - name: Weights + projection: + - - - C + - - - M + - - - R + - - - S + - - - G + read_write: false + - name: Inputs + projection: + - - - N + - - - C + - - - R + - Wdilation + - - P + - Wstride + - - - S + - Hdilation + - - Q + - Hstride + - - - G + read_write: false + - name: Outputs + projection: + - - - N + - - - M + - - - Q + - - - P + - - - G + read_write: true + dimensions: + - C + - M + - R + - S + - N + - P + - Q + - G + name: '' +compound_components: + version: '0.4' + classes: + - name: intmac + attributes: + multiplier_width: "must_specify" + adder_width: "must_specify" + subcomponents: + - name: adder + class: aladdin_adder + attributes: + width: adder_width + - name: multiplier + class: aladdin_multiplier + attributes: + width: multiplier_width + actions: + - name: compute + subcomponents: + - name: adder + actions: + - name: add + - name: multiplier + actions: + - name: multiply + - name: register + attributes: {} + subcomponents: [] + actions: + - name: read + subcomponents: [] + - name: write + subcomponents: [] + - name: update + subcomponents: [] + - name: leak + subcomponents: [] +mapping: [] +mapper: + optimization_metrics: + - edp + version: '0.4' + live_status: false + num_threads: 4 + search_size: 1000 + victory_condition: 10000 + timeout: 10000 + max_permutations_per_if_visit: 4 + algorithm: random_pruned + max_temporal_loops_in_a_mapping: 9 + out_prefix: timeloop-mapper + optimization_metric: [] + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + filter_revisits: false +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ART.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ART.yaml new file mode 100644 index 00000000..d3fd9e81 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ART.yaml @@ -0,0 +1,11 @@ +ART: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + area: 0.0 + - name: system_top_level.buffer[1..1] + area: 43608.4 + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + - name: system_top_level.mac[1..8] + area: 1726.5 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ART_summary.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ART_summary.yaml new file mode 100644 index 00000000..8f9bce07 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ART_summary.yaml @@ -0,0 +1,19 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_top_level.buffer[1..1] + area: 43608.4 + primitive_estimations: CactiSRAM + - name: system_top_level.inter_PE_spatial[1..1] + area: 1.0 + primitive_estimations: dummy_table + - name: system_top_level.mac[1..8] + area: 1726.5 + primitive_estimations: + - name: adder + estimator: Library + - name: multiplier + estimator: Library diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ERT.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ERT.yaml new file mode 100644 index 00000000..0ff64242 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ERT.yaml @@ -0,0 +1,52 @@ +ERT: + version: '0.4' + tables: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 512.0 + - name: system_top_level.buffer[1..1] + actions: + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.000271 + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 9.65335 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 12.6203 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 12.6203 + - name: system_top_level.mac[1..8] + actions: + - name: compute + arguments: {} + energy: 3.275 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ERT_summary.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ERT_summary.yaml new file mode 100644 index 00000000..07e6d99f --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.ERT_summary.yaml @@ -0,0 +1,38 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_top_level.DRAM[1..1] + actions: + - name: leak + energy: 0.0 + - name: read + energy: 512.0 + - name: update + energy: 512.0 + - name: write + energy: 512.0 + primitive_estimation(s): + - name: system_top_level.DRAM[1..1] + estimator: CactiDRAM + - name: system_top_level.buffer[1..1] + actions: + - name: leak + energy: 0.000271 + - name: read + energy: 9.65335 + - name: update + energy: 12.6203 + - name: write + energy: 12.6203 + primitive_estimation(s): + - name: system_top_level.buffer[1..1] + estimator: CactiSRAM + - name: system_top_level.mac[1..8] + actions: + - name: compute + energy: 3.275 + primitive_estimation(s): + - name: adder + estimator: Library + - name: multiplier + estimator: Library diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.accelergy.log b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.accelergy.log new file mode 100644 index 00000000..a3c864b2 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.accelergy.log @@ -0,0 +1,216 @@ +2024-05-29 17:03:09 INFO _ _ +2024-05-29 17:03:09 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-05-29 17:03:09 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-05-29 17:03:09 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-05-29 17:03:09 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-05-29 17:03:09 INFO |___/ |___/ +2024-05-29 17:03:09 INFO generating outputs according to the following specified output flags... +2024-05-29 17:03:09 INFO Please use the -f flag to update the preference (default to all output files) +2024-05-29 17:03:09 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-05-29 17:03:09 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-05-29 17:03:09 INFO config file located: +2024-05-29 17:03:09 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-05-29 17:03:09 WARNING File /home/tanner/.config/accelergy/accelergy_config.yaml is outdated. File version is 0.3, while the latest version is 0.4. +2024-05-29 17:03:09 WARNING Please update the file to the latest version. +2024-05-29 17:03:09 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/parsed-processed-input.yaml for architecture info +2024-05-29 17:03:09 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/parsed-processed-input.yaml for compound_components info +2024-05-29 17:03:09 INFO Adding required action "leak" to class DRAM +2024-05-29 17:03:09 INFO Adding required action "read" to class DRAM +2024-05-29 17:03:09 INFO Adding required action "update" to class DRAM +2024-05-29 17:03:09 INFO Adding required action "write" to class DRAM +2024-05-29 17:03:09 INFO Adding required action "leak" to class SRAM +2024-05-29 17:03:09 INFO Adding required action "read" to class SRAM +2024-05-29 17:03:09 INFO Adding required action "update" to class SRAM +2024-05-29 17:03:09 INFO Adding required action "write" to class SRAM +2024-05-29 17:03:09 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-05-29 17:03:09 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-05-29 17:03:09 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-05-29 17:03:09 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-05-29 17:03:09 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-05-29 17:03:09 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-05-29 17:03:09 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-05-29 17:03:09 INFO Getting all estimators in module +2024-05-29 17:03:09 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-05-29 17:03:09 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-05-29 17:03:09 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-05-29 17:03:09 INFO Found estimator plug-in: DEPRECATED table-based-plug-ins. Use the Library plug-in instead. () +2024-05-29 17:03:09 INFO Found estimator plug-in: Aladdin_table () +2024-05-29 17:03:09 INFO Found estimator plug-in: dummy_table () +2024-05-29 17:03:09 INFO Found estimator plug-in: Neurosim Plug-In () +2024-05-29 17:03:09 INFO Found estimator plug-in: Library () +2024-05-29 17:03:09 INFO Found estimator plug-in: ADC Plug-In () +2024-05-29 17:03:09 INFO Found estimator plug-in: CactiCache () +2024-05-29 17:03:09 INFO Found estimator plug-in: CactiDRAM () +2024-05-29 17:03:09 INFO Found estimator plug-in: CactiSRAM () +2024-05-29 17:03:09 INFO Calculated adder."width" as "adder_width" = 16. +2024-05-29 17:03:09 INFO Calculated multiplier."width" as "multiplier_width" = 8. +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:09 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:09 INFO | Unused arguments (action_latency_cycles) provided for DRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 17:03:09 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:09 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:09 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.read. Arguments used: () +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:09 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:09 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.update. Arguments used: () +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:09 INFO CactiDRAM estimated 5.12e-10 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:09 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for DRAM.write. Arguments used: () +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).leak(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:09 INFO CactiSRAM estimated 2.71132e-16 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:09 INFO | Unused arguments (action_latency_cycles) provided for SRAM.leak. Arguments used: (global_cycle_seconds) +2024-05-29 17:03:09 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:09 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo2tdnz34 +2024-05-29 17:03:09 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpurnwcfo0 +2024-05-29 17:03:09 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:09 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpo2tdnz34 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpurnwcfo0 2>&1 +2024-05-29 17:03:09 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:09 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:09 INFO | Global cycle time 1e-09 is less than the cache's random cycle time 0.771652 +2024-05-29 17:03:09 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).read(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:09 INFO CactiSRAM estimated 9.65335e-12 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:09 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for SRAM.read. Arguments used: () +2024-05-29 17:03:09 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:09 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpt8ihkeq_ +2024-05-29 17:03:09 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp150ng5d1 +2024-05-29 17:03:09 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:09 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpt8ihkeq_ >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp150ng5d1 2>&1 +2024-05-29 17:03:09 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:09 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).update(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:09 INFO CactiSRAM estimated 1.26203e-11 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:09 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for SRAM.update. Arguments used: () +2024-05-29 17:03:09 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:09 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprynadnuc +2024-05-29 17:03:09 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzmtidaok +2024-05-29 17:03:09 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:09 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmprynadnuc >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpzmtidaok 2>&1 +2024-05-29 17:03:09 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:09 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1).write(global_cycle_seconds=1e-09, action_latency_cycles=1) +2024-05-29 17:03:09 INFO CactiSRAM estimated 1.26203e-11 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:09 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles) provided for SRAM.write. Arguments used: () +2024-05-29 17:03:09 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:09 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmparut6pti +2024-05-29 17:03:09 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6tz_kuw4 +2024-05-29 17:03:09 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:09 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmparut6pti >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp6tz_kuw4 2>&1 +2024-05-29 17:03:09 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:09 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).add(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:09 INFO Library estimated 0.105p with accuracy 90%. Messages: +2024-05-29 17:03:09 INFO | Found 1 entries for aladdin_adder.add. +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=0.21, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_adder energy has been scaled 0.5x'] +2024-05-29 17:03:09 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:09 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:09 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x energy +2024-05-29 17:03:09 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:09 INFO | aladdin_adder energy has been scaled 0.5x +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO ENERGY ESTIMATION for aladdin_multiplier(width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1).multiply(global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:09 INFO Library estimated 3.17p with accuracy 90%. Messages: +2024-05-29 17:03:09 INFO | Found 1 entries for aladdin_multiplier.multiply. +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=12.68, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x energy', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x energy', 'aladdin_multiplier energy has been scaled 0.25x'] +2024-05-29 17:03:09 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | Scaling width from 32 to 8 +2024-05-29 17:03:09 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:09 INFO | Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x energy +2024-05-29 17:03:09 INFO | Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x energy +2024-05-29 17:03:09 INFO | aladdin_multiplier energy has been scaled 0.25x +2024-05-29 17:03:09 WARNING No action counts are specified as yaml input +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO AREA ESTIMATION for DRAM(type=LPDDR4, width=64, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:09 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, n_banks, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, technology, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for DRAM.__init__. Arguments used: (type, width) +2024-05-29 17:03:09 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO AREA ESTIMATION for SRAM(depth=512, width=128, datawidth=8, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, technology=45nm, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:09 INFO CactiSRAM estimated 4.36084e-08 with accuracy 80%. Messages: +2024-05-29 17:03:09 INFO | Unused arguments (datawidth, has_power_gating, cluster_size, reduction_supported, multiple_buffering, min_utilization, allow_overbooking, meshX, meshY, version, global_cycle_seconds, DATAWIDTH, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, n_banks, technology) +2024-05-29 17:03:09 INFO | Calling CACTI with cache_size=8192 n_rw_ports=1 block_size=16 tech_node_um=0.045 n_banks=2 tag_size=0 associativity=1 +2024-05-29 17:03:09 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpf5mn1atb +2024-05-29 17:03:09 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_ksoeemq +2024-05-29 17:03:09 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-05-29 17:03:09 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpf5mn1atb >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmp_ksoeemq 2>&1 +2024-05-29 17:03:09 INFO | Cache bandwidth: 32.0 bits/cycle +2024-05-29 17:03:09 INFO | Cache bandwidth: 331.75576555234744 bits/second +2024-05-29 17:03:09 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO AREA ESTIMATION for dummy_storage(width=1, depth=1, datawidth=1, technology=-1, has_power_gating=False, n_banks=2, cluster_size=1, reduction_supported=True, multiple_buffering=1, min_utilization=0, allow_overbooking=False, meshX=1, meshY=1, version=0.4, global_cycle_seconds=1e-09, DATAWIDTH=8, action_latency_cycles=1, cycle_seconds=1e-09, n_instances=1) +2024-05-29 17:03:09 INFO dummy_table estimated 1u^2 with accuracy 100%. Messages: +2024-05-29 17:03:09 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO AREA ESTIMATION for aladdin_adder(width=16, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:09 INFO Library estimated 139.0u^2 with accuracy 90%. Messages: +2024-05-29 17:03:09 INFO | Found 5 entries for aladdin_adder. +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'read', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.0024', 'area': '2.78E+02', 'action': 'leak', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'update', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0', 'area': '2.78E+02', 'action': 'write', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=278.0, matching_attrs=3, log=['Scaling width from 32 to 16', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area', 'Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_adder area has been scaled 0.5x'] +2024-05-29 17:03:09 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'energy': '0.21', 'area': '2.78E+02', 'action': 'add', 'name': 'aladdin_adder', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | Scaling width from 32 to 16 +2024-05-29 17:03:09 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:09 INFO | Scaled aladdin_adder.width from 32.0 to 16.0: 0.5x area +2024-05-29 17:03:09 INFO | Scaled aladdin_adder.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:09 INFO | aladdin_adder area has been scaled 0.5x +2024-05-29 17:03:09 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:09 INFO +2024-05-29 17:03:09 INFO AREA ESTIMATION for aladdin_multiplier(width=8, global_cycle_seconds=1e-09, action_latency_cycles=1, cycle_seconds=1e-09, technology=45nm, n_instances=1) +2024-05-29 17:03:09 INFO Library estimated 1587.5u^2 with accuracy 90%. Messages: +2024-05-29 17:03:09 INFO | Found 5 entries for aladdin_multiplier. +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'read', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0.08', 'area(um^2)': '6350', 'action': 'leak', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0', 'area(um^2)': '6350', 'action': 'update', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:09 INFO | Checking entry "{'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '0', 'area(um^2)': '6350', 'action': 'write', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | value=6350.0, matching_attrs=3, log=['Scaling width from 32 to 8', 'Scaling global_cycle_seconds from 1e-9 to 1e-09', 'Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area', 'Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area', 'aladdin_multiplier area has been scaled 0.25x'] +2024-05-29 17:03:09 INFO | Best-matching entry: {'technology': '45nm', 'global_cycle_seconds': '1e-9', 'width|datawidth': '32', 'width_a|datawidth_a': '32', 'width_b|datawidth_b': '32', 'energy(pJ)': '12.68', 'area(um^2)': '6350', 'action': 'multiply', 'name': 'aladdin_multiplier', 'area_scale': 1, 'energy_scale': 1, 'n_instances': 1} +2024-05-29 17:03:09 INFO | Scaling width from 32 to 8 +2024-05-29 17:03:09 INFO | Scaling global_cycle_seconds from 1e-9 to 1e-09 +2024-05-29 17:03:09 INFO | Scaled aladdin_multiplier.width from 32.0 to 8.0: 0.25x area +2024-05-29 17:03:09 INFO | Scaled aladdin_multiplier.global_cycle_seconds from 1e-09 to 1e-09: 1x area +2024-05-29 17:03:09 INFO | aladdin_multiplier area has been scaled 0.25x +2024-05-29 17:03:09 INFO | Multiplying by n_instances 1 +2024-05-29 17:03:09 INFO flattened architecture is saved to: +2024-05-29 17:03:09 INFO ./timeloop-mapper.flattened_architecture.yaml +2024-05-29 17:03:09 INFO energy reference table is saved to: +2024-05-29 17:03:09 INFO ./timeloop-mapper.ERT.yaml +2024-05-29 17:03:09 INFO energy reference table summary is saved to: +2024-05-29 17:03:09 INFO ./timeloop-mapper.ERT_summary.yaml +2024-05-29 17:03:09 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-05-29 17:03:09 INFO area reference table is saved to: +2024-05-29 17:03:09 INFO ./timeloop-mapper.ART.yaml +2024-05-29 17:03:09 INFO area reference table summary is saved to: +2024-05-29 17:03:09 INFO ./timeloop-mapper.ART_summary.yaml diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.flattened_architecture.yaml b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.flattened_architecture.yaml new file mode 100644 index 00000000..7d6151c6 --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.flattened_architecture.yaml @@ -0,0 +1,104 @@ +architecture: + version: '0.4' + local: + - name: system_top_level.DRAM[1..1] + class: DRAM + attributes: + type: "LPDDR4" + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-09 + DATAWIDTH: 8 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - read + - update + - write + enabled: true + - name: system_top_level.buffer[1..1] + class: SRAM + attributes: + depth: 512 + width: 128 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-09 + DATAWIDTH: 8 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - leak + - read + - update + - write + enabled: true + - name: system_top_level.inter_PE_spatial[1..1] + class: dummy_storage + attributes: + width: 1 + depth: 1 + datawidth: 1 + technology: -1 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + power_gated_at: null + version: '0.4' + global_cycle_seconds: 1e-09 + DATAWIDTH: 8 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + enabled: true + - name: system_top_level.mac[1..8] + class: intmac + attributes: + multiplier_width: 8 + adder_width: 16 + has_power_gating: false + meshX: 8 + meshY: 1 + power_gated_at: null + version: '0.4' + technology: "45nm" + global_cycle_seconds: 1e-09 + DATAWIDTH: 8 + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.map.tenssella.txt b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.map.tenssella.txt new file mode 100644 index 00000000..2e39275b --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.map.tenssella.txt @@ -0,0 +1,16 @@ +t2 +C 2 M 2 R 1 S 1 N 32 P 128 Q 4 G 1 +PQMNC +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +#error Tenssella does not support bypass. +t1 +C 64 M 8 R 1 S 1 N 1 P 1 Q 32 G 1 +MQC +t0 +C 1 M 1 R 1 S 1 N 1 P 1 Q 1 G 1 +G +s0 +C 1 M 8 R 1 S 1 N 1 P 1 Q 1 G 1 +M +8 diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.oaves.csv b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/outputs/timeloop-mapper.oaves.csv new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/top.yaml.jinja b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/top.yaml.jinja new file mode 100644 index 00000000..a6f7bedc --- /dev/null +++ b/workspace/tutorial_exercises/02_interface_and_design_space_exploration_2024/top.yaml.jinja @@ -0,0 +1,9 @@ +# This file will be converted into a YAML file by Jinja2 templating. +{{add_to_path(cwd() ~ '/inputs')}} + +# Grab the necessary top keys from each file and put them here +architecture: {{include('arch.yaml', 'architecture')}} +components: {{include('components.yaml', 'components')}} +variables: {{include('variables.yaml', 'variables')}} +mapper: {{include('mapper.yaml', 'mapper')}} +problem: {{include(problem|default('problem.yaml'), 'problem')}} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/.gitkeep b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/README.md b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/README.md new file mode 100644 index 00000000..796f3c6c --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/README.md @@ -0,0 +1 @@ +## Please navigate to `notebooks` to try out exercises \ No newline at end of file diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/.gitkeep b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/00.1-background-fibertree.ipynb b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/00.1-background-fibertree.ipynb new file mode 100644 index 00000000..8c2da61f --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/00.1-background-fibertree.ipynb @@ -0,0 +1,184 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "# Sparseloop Tutorial - 00 - Background\n", + "\n", + "The notebooks with names \"\\.1-\\-fibertree\" contain a series of examples of various computations using the **fibertree** emulator to illustrate the impact of a set of optimizations to exploit sparsity. \n", + "\n", + "To initialize the fibertree environment some setup is required using the incantation in the following cell:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "# Run boilerplate code to set up environment\n", + "\n", + "%run ./prelude.py --style=tree --animation=movie" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Einsum notation\n", + "\n", + "The computations in there notebooks will generally be characterized by an Einsum-style expression. For example the Einsum for matrix multiply is:\n", + "\n", + "$$ A_{m,n} = A_{m,k} \\times B_{k,n} $$\n", + " \n", + "In an Einsum the capital letters represent the **tensors** in the computation and their subscripts (**indices**) indicate the ranks of the tensor. Indices that appear in variables on both the left (output) and right (input) side of the expression mean that a output will be created for each valid values for those indices and that output will be based on the corresponding inputs with the same index values. The ranks associated with such indices are referred to as **uncontracted** dimensions. Indices that only appear on the right imply that there is a reduction across all the values of that index. The ranks associated with such indices are referred to as **contracted** dimensions. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Coding conventions\n", + "\n", + "These fibertree-based notebooks usually following the following naming convention:\n", + "\n", + "- Rank names (or **ids**) will be an uppercase letter string, e.g., \"K\"\n", + "- Variables holding the **shape** of a fiber in a rank will be an uppercase letter matching the name of the rank, e.g., `K`\n", + "- Variables holding a **coordinate** in a fiber of a rank will be a lowercase letter matching the name of the rank, e.g., `k`\n", + "- Variables holding a **tensor** will be uppercase letters with the name of the tensor followed by an underscore (_) and the names of its ranks in uppercase, e.g., \"A_MK\"\n", + "- Variables holding a **fiber** of a rank will be lowercase letters with the name of the tensor followed by an underscore (_) and the name of the fiber's rank in lowercase, .e.g., \"a_m\"." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Creating Tensors\n", + "\n", + "The fibertree language allows one to set up Jupyter controls using the `TensorMaker()` class to dynamically set attributes of a randomly populated tensor. The attributes that can be set are:\n", + "\n", + "- name - the name of the tensor\n", + "- rank_ids - a list of names of the ranks in the tensor in order from top to bottom\n", + "- shape - a list of **shapes** of the fibers in each rank\n", + "- interval - the top of the interval starting at 0 of legal values from elements of the tensor\n", + "- density - the uniform density for values of elements of tensor being non-zero\n", + "- color - a color to use when displaying the tensor\n", + "- seed - a random number seed used when creating the tensor\n", + "\n", + "When declaring a tensor the `name` and `rank_ids` parameters are required but default values can be set for all the other attributes using keyword parameters to the `TensorMaker.addTensor()` method.\n", + "\n", + "The cell below declares a rank-1 and a rank-2 tensor." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Set default tensor attributes (i.e., the shape of the tensors)\n", + "#\n", + "L = 10\n", + "N = 5\n", + "\n", + "#\n", + "# Create controls to configure the `A` and `B` tensors\n", + "#\n", + "tm = TensorMaker(\"sparseloop-background\")\n", + "\n", + "tm.addTensor(\"A\", rank_ids=[\"L\"], shape=[L], density=0.4, color=\"blue\")\n", + "tm.addTensor(\"B\", rank_ids=[\"N\", \"L\"], shape=[N, L], density=0.2, color=\"green\")\n", + "\n", + "tm.displayControls()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create and display the tensors\n", + "\n", + "The tensors `A` and `B` declared above can be instantiated using the `TensorMaker.makeTensor()` method and displayed using the `displayTensor()` method.\n", + "\n", + "In the diagrams the tree begins with a root (black diamond). Below the root, the **ranks** are visible as labeled levels in the tree, and each rank consists of one or more **fibers** (grey ovals). Each fiber contains a set of **coordinates** (numbers in brown circles) and each coordinate is assocaited with a **payload** that is either another fiber at the next rank or a leaf **value** (box colored as specified in the control boxes above).\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#\n", + "# Create instances of the tensors\n", + "#\n", + "\n", + "A_K = tm.makeTensor(\"A\")\n", + "B_K = tm.makeTensor(\"B\")\n", + "\n", + "#\n", + "# Display the tensors\n", + "#\n", + "displayTensor(A_K)\n", + "displayTensor(B_K)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Testing area\n", + "\n", + "For running alternative algorithms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/01.1-dotproduct-fibertree.ipynb b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/01.1-dotproduct-fibertree.ipynb new file mode 100644 index 00000000..cf8d165f --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/01.1-dotproduct-fibertree.ipynb @@ -0,0 +1,473 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "# Sparseloop Tutorial - 01 - Dot Product\n", + "\n", + "This notebook contains a series of examples of a **dot product** computation, i.e., a reduction of the element-wise products of all the elements of the inputs. The **fibertree** emulator is used to illustrate the impact of a set of optimizations to exploit sparsity. The basic computation is represented by the Einsum:\n", + "\n", + "$$ Z_m = A_k \\times B_k $$\n", + "\n", + "Note that while the output is nominally a scalar, for consistency with the **Timeloop** tool the output implemented as a 1-D tensor. However, that tensor contains only a single element.\n", + "\n", + "First, include some libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "# Run boilerplate code to set up environment\n", + "\n", + "%run ./prelude.py --style=tree --animation=movie" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Configure two rank-1 input tensors\n", + "\n", + "The following cell sets up the control sliders to specify the attributes of the `A` and `B` input tensors. Those attributes include their **shape**, which specifies the allowable range of **coordinates** of elements of the tensor and their **density**.\n", + "\n", + "The rank names use the following convention:\n", + "\n", + "- K - contracted dimension shared by `A` and `B`\n", + "- M - dummy rank for output `Z`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Set default problem instance attributes (i.e., the shape of the tensors)\n", + "#\n", + "K = 10\n", + "M = 1\n", + "\n", + "#\n", + "# Create controls to configure the `A` and `B` tensors\n", + "#\n", + "tm = TensorMaker(\"sparseloop-dot-product\")\n", + "\n", + "tm.addTensor(\"A\", rank_ids=[\"K\"], shape=[K], density=0.4, color=\"blue\")\n", + "tm.addTensor(\"B\", rank_ids=[\"K\"], shape=[K], density=1.0, color=\"green\")\n", + "\n", + "tm.displayControls()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create and display the tensors\n", + "\n", + "Create the `A` and `B` tensors based on the current settings of the configuration sliders above and display the resulting tensors. These tensors are represented in the **fibertree** tensor abstraction, where for sparse fibers only the **elements** (**coordinate**/**payload** tuples) in a fiber with **non-empty** (non-zero) payloads need be shown. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "A_K = tm.makeTensor(\"A\")\n", + "B_K = tm.makeTensor(\"B\")\n", + "\n", + "displayTensor(A_K)\n", + "displayTensor(B_K)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dot product - A, B uncompressed\n", + "\n", + "The following code sequence corresponds to an implementation of dot product where the hardware must read every **coordinate** of each input tensor and reduces the element-wise products of those values into the output irrespective of whether any **payload** value is zero. This corresponds to the totally unoptimized case.\n", + "\n", + "Notes:\n", + "\n", + "- The code below uses the `Fiber.getPayload()` method to obtain a **payload** value by **coordinate**. For `A` and `B` in an **uncompressed** format this is a cheap direct access because the **coordinate** equals the **position** of the value, but the operation could be much more expensive for other formats.\n", + "\n", + "- To force a useful visualization of the traversal of the `A` tensor it's **empty** coordinates are filled with zeros using the `uncompressTensor()` method.\n", + "\n", + "- The code below assumes that the output tensor `Z` is in an uncompressed format. Again this is facilitated with the `uncompressTensor()` method and allows updates to be performed with direct indexing into the output tensor by **coordinate** (again because for uncompressed formats the **coordinate** and **position** are equal).\n", + "\n", + "Observations:\n", + "\n", + "- The computation takes `K` cycles irrespective of the sparsity of the the input tensors.\n", + "\n", + "- The hardware reads a value from both tensors irrespective of whether a **payload** value in `A` is zero." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#\n", + "# Create the input/output tensors\n", + "#\n", + "K = getShape(tm, \"K\")\n", + "M = 1\n", + "\n", + "A_K = tm.makeTensor(\"A\")\n", + "B_K = tm.makeTensor(\"B\")\n", + "Z_M = Tensor(name=\"Z\", rank_ids=[\"M\"], shape=[M])\n", + "\n", + "uncompressTensor(A_K)\n", + "uncompressTensor(Z_M)\n", + "\n", + "#\n", + "# Display the input tensors\n", + "#\n", + "print(\"Problem instance:\")\n", + "print(f\"K: {K}\")\n", + "print(f\"M: {M}\")\n", + "print(\"\")\n", + "\n", + "print(\"Input tensor A\")\n", + "displayTensor(A_K)\n", + "print(\"Input tensor B\")\n", + "displayTensor(B_K)\n", + "print(\"Output tensor Z (intial)\")\n", + "displayTensor(Z_M)\n", + "\n", + "#\n", + "# Get the root fibers of each tensor\n", + "#\n", + "a_k = A_K.getRoot()\n", + "b_k = B_K.getRoot()\n", + "z_m = Z_M.getRoot()\n", + "\n", + "#\n", + "# Animation bookkeeping\n", + "#\n", + "canvas = createCanvas(A_K, B_K, Z_M)\n", + "\n", + "#\n", + "# Traverse all `M` coordinates of the output tensor\n", + "#\n", + "for m in range(M):\n", + "\n", + " #\n", + " # Traverse all `K` coordinates of the input tensors\n", + " #\n", + " for k in range(K):\n", + " #\n", + " # Get the values of `A` and `B` at coordinate `k`\n", + " #\n", + " a_val = a_k.getPayload(k)\n", + " b_val = b_k.getPayload(k)\n", + " \n", + " #\n", + " # Do the dot product multiplication and reduction\n", + " #\n", + " z_m[m] += a_val * b_val\n", + " \n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " canvas.addActivity([(k,)], [(k,)], [(m,)],\n", + " spacetime=(0, k))\n", + " \n", + " \n", + "#\n", + "# Display results\n", + "#\n", + "print(\"Output tensor Z (final)\")\n", + "displayTensor(Z_M)\n", + "\n", + "displayCanvas(canvas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dot Product - Gating Unneeded Reads\n", + "\n", + "The following code sequence corresponds to an implementation of dot product where the hardware must read every **coordinate** of the input tensor `A` but then **gates** the read of `B` and computation when the **payload** value of an element of tensor `A` is zero. This corresponds to the case where `B` is gated on `A`.\n", + "\n", + "Notes:\n", + "\n", + "- The code below again uses the `Fiber.getPayload()` method to obtain a **payload** value by **coordinate** for both the `A` and `B` tensors. \n", + "\n", + "- The cost of the reference to `A` may vary based on whether the specific format needs to do an access for **coordinates** with zero values.\n", + "\n", + "- As in the case above, the code in this cell assumes that the output tensor `Z` is in an uncompressed format.\n", + "\n", + "Observations:\n", + "\n", + "- The computation takes `K` cycles irrespective of the sparsity of the the input tensors\n", + "\n", + "- The hardware saves reads of data and computation when the **payload** value of `A` is zero." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#\n", + "# Create the input/output tensors\n", + "#\n", + "K = getShape(tm, \"K\")\n", + "M = 1\n", + "\n", + "A_K = tm.makeTensor(\"A\")\n", + "B_K = tm.makeTensor(\"B\")\n", + "Z_M = Tensor(name=\"Z\", rank_ids=[\"M\"], shape=[M])\n", + "\n", + "uncompressTensor(A_K)\n", + "uncompressTensor(Z_M)\n", + "\n", + "#\n", + "# Display the input tensors\n", + "#\n", + "print(\"Problem instance:\")\n", + "print(f\"K: {K}\")\n", + "print(f\"M: {M}\")\n", + "print(\"\")\n", + "\n", + "print(\"Input A\")\n", + "displayTensor(A_K)\n", + "print(\"Input B\")\n", + "displayTensor(B_K)\n", + "print(\"Output Z (initial)\")\n", + "displayTensor(Z_M)\n", + "\n", + "#\n", + "# Get the root fibers of each tensor\n", + "#\n", + "a_k = A_K.getRoot()\n", + "b_k = B_K.getRoot()\n", + "z_m = Z_M.getRoot()\n", + "\n", + "#\n", + "# Animation bookkeeping\n", + "#\n", + "canvas = createCanvas(A_K, B_K, Z_M)\n", + "\n", + "#\n", + "# Traverse the single element of the output shape\n", + "#\n", + "for m in range(M):\n", + " #\n", + " # Traverse all `K` coordinates of the input tensor `A`\n", + " #\n", + " for k in range(K):\n", + " #\n", + " # Get the value of `A` at coordinate `k`\n", + " #\n", + " a_val = a_k.getPayload(k)\n", + " \n", + " #\n", + " # Gate the access to the value of `B`\n", + " # and computation based on the value of `A`\n", + " #\n", + " if a_val != 0:\n", + " b_val = b_k.getPayload(k)\n", + "\n", + " z_m[m] += a_val * b_val\n", + "\n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " if a_val == 0:\n", + " B_activity = []\n", + " Z_activity = []\n", + " else:\n", + " B_activity = [(k,)]\n", + " Z_activity = [(m,)]\n", + " \n", + " canvas.addActivity([(k,)], B_activity, Z_activity,\n", + " spacetime=(0, k))\n", + " \n", + "\n", + "#\n", + "# Display results\n", + "#\n", + "print(\"Output tensor Z (final)\")\n", + "displayTensor(Z_M)\n", + "\n", + "displayCanvas(canvas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dot Product - Skipping \"empty\" coordinates in A\n", + "\n", + "The following code sequence corresponds to an implementation of dot product where the hardware can traverse just the **non-empty** elements of the input tensor `A` and then only accesses the elements of `B` for the **coordinates** of those **non-empty** elements of `A`. This corresponds to the case where there is **skipping** of elements of `A`.\n", + "\n", + "Notes:\n", + "\n", + "- The code below uses the default `Fiber` iterator to obtain the **coordinates** and **payloads** of the **non-empty** elements of tensor `A`. \n", + "\n", + "- The cost of the reference to `B` using `Fiber.getPayload()` will vary based on the cost of finding a **payload** by **coordinates** for the specific format used for `B`.\n", + "\n", + "- As in the case above, the code in this cell assumes that the output tensor `Z` is in an uncompressed format.\n", + "\n", + "Observations:\n", + "\n", + "- The computation takes a number of cycles (and does reads and computes) proportional to the number of **non-empty** elements in `A`, i.e., `A`'s **occupancy**.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#\n", + "# Create the input/output tensors\n", + "#\n", + "K = getShape(tm, \"K\")\n", + "M = 1\n", + "\n", + "A_K = tm.makeTensor(\"A\")\n", + "B_K = tm.makeTensor(\"B\")\n", + "Z_M = Tensor(name=\"Z\", rank_ids=[\"M\"], shape=[M])\n", + "\n", + "uncompressTensor(Z_M)\n", + "\n", + "#\n", + "# Display the input tensors\n", + "#\n", + "print(\"Problem instance:\")\n", + "print(f\"K: {K}\")\n", + "print(f\"M: {M}\")\n", + "print(\"\")\n", + "\n", + "print(\"Input A\")\n", + "displayTensor(A_K)\n", + "print(\"Input B\")\n", + "displayTensor(B_K)\n", + "print(\"Output Z (initial)\")\n", + "displayTensor(Z_M)\n", + "\n", + "#\n", + "# Get the root fibers of each tensor\n", + "#\n", + "a_k = A_K.getRoot()\n", + "b_k = B_K.getRoot()\n", + "z_m = Z_M.getRoot()\n", + "\n", + "\n", + "#\n", + "# Animation bookkeeping\n", + "#\n", + "canvas = createCanvas(A_K, B_K, Z_M)\n", + "\n", + "#\n", + "# Traverse the single element of the output shape\n", + "#\n", + "for m in range(M):\n", + " #\n", + " # Traverse non-empty elements of the tensor `A`\n", + " #\n", + " for k, a_val in a_k:\n", + " #\n", + " # Get value of `B` at non-zero coordinates of `A`\n", + " # and then do compute\n", + " #\n", + " b_val = b_k.getPayload(k)\n", + "\n", + " z_m[m] += a_val * b_val\n", + "\n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " canvas.addActivity([(k,)], [(k,)], [(m,)],\n", + " spacetime=(0, k))\n", + "\n", + "#\n", + "# Display results\n", + "#\n", + "print(\"Output tensor Z (final)\")\n", + "displayTensor(Z_M)\n", + "\n", + "displayCanvas(canvas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Testing area\n", + "\n", + "For running alternative algorithms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/01.2-dotproduct-sparseloop.ipynb b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/01.2-dotproduct-sparseloop.ipynb new file mode 100644 index 00000000..21cee9f1 --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/01.2-dotproduct-sparseloop.ipynb @@ -0,0 +1,431 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dot Product\n", + "\n", + "The following sequence of cells illustrate hardware processing of a dot product computation:\n", + "\n", + "$$ Z_{m} = A_{k} \\times B_{k} $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\"DUDU_setup\"\n", + "\n", + "## Exercise 01.2.1 Uncompressed Dense Vectors \n", + "\n", + "### Understanding the inputs: Problem Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env BASELINE_DIR=../../../example_designs\n", + "%set_env DESIGNS_DIR=../../../example_designs/example_designs/sparseloop\n", + "%set_env SCRIPTS_DIR=../scripts" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/01.2.1-DUDU-dot-product/ && cat problem.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the inputs: Architecture Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/01.2.1-DUDU-dot-product/\n", + "cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the inputs: Mapping Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/01.2.1-DUDU-dot-product/\n", + "cat mapping.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/01.2.1-DUDU-dot-product" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats: Storage Capacity & Accesses\n", + "Different access types\n", + " - fills: initial writes of the data (zero for 1 level storage, so not shown)\n", + " - reads: streaming out data\n", + " - updates: writebacks of the updated data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env OUT_DIR=../../../example_designs/example_designs/sparseloop/01.2.1-DUDU-dot-product/outputs/default_problem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/01.2.1-DUDU-dot-product-buffer-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats: Computes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/01.2.1-DUDU-dot-product-buffer-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats: Summary" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/01.2.1-DUDU-dot-product-summary-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sparse vector A\n", + "\n", + "\"SU_C_DU_setup\"\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 01.2.2 Sparse Uncompressed A and Uncompressed Dense B\n", + "### Updated Inputs: Problem Specification Now Reflects Sparsity" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/01.2.2-SUDU-dot-product/ && grep \"instance:\" problem.yaml -A 10" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example With All Other Inputs Stay the Same" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "# cd ../designs/01.2.2-SUDU-dot-product\n", + "# timeloop-model arch/*.yaml map/*.yaml prob/*.yaml -o output/no-optimization\n", + "export S\n", + "\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/01.2.2-SUDU-dot-product --remove-sparse-opts" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats\n", + "\n", + "You should see **no changes** in runtime statistics. Although there are potential savings introduced by the A vector, with a default uncompressed representation and no sparse optimization applied, it is not possible to exploit such savings. Thus, the baseline architecture's behaviors will not change." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env OUT_DIR=../../../example_designs/example_designs/sparseloop/01.2.2-SUDU-dot-product/outputs/default_problem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/01.2.2-SUDU-dot-product-aggregated-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### Additional Input: Sparse Optimization Feature Specification To Enable Gating\n", + "- Goal: Perform gating on B and Z based on the payloads in A\n", + "\n", + "\"figures/01.2.2.SUDU_gating_setup.png\"\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "# sparse tensor instance\n", + "cd $DESIGNS_DIR/01.2.2-SUDU-dot-product/ && cat arch.yaml " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example With Gating Applied" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/01.2.2-SUDU-dot-product" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats\n", + "\n", + "- `A`: no change, as A tensor is still represented in an uncompressed format and requires the same amount of storage capacity.\n", + "- `B`: reduced number of actual reads and **gated reads** counts show up.\n", + "- `Z`: reduced number of actual reads and actual updates, and **gated reads** && **gated updates** counts show up.\n", + "- `MAC`: reduced number of actual computes. As a result of `gating` on `B`, no operands are sent to `MAC` unit when `A` is empty (i.e., `NOT_EXIST` for both operands). So the number of computes reduced by 75%.\n", + "- lower utilization. The reduced number of computes make MAC stays idle for 75% of the cycles, during which there is still access to `A` stored in the `Buffer` (but no accesses to `B` and `Z`). \n", + "- total number of cycles no change.\n", + "- total energy reduced. Reduced number of accesses to `B` and `Z`, and reduced number of computes both save energy " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/01.2.2-SUDU-dot-product-aggregated-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 01.2.3 Sparse Compressed A and Dense Uncompressed B\n", + "\n", + "\n", + "\"figures/01.2.3.SCDU_skipping_setup.png\"\n", + "\n", + "\n", + "\n", + "### Updated Input: Sparse Optimization Specification\n", + "- Represent sparse A in a compressed format: coordinate payload\n", + "- Perform skipping based on the compressed A\n", + "\n", + "### Updated Input: Architecture Sepcfication\n", + "Extra metadata storage needed to store the *coordiantes* in the compressed representation format" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/01.2.3-SCDU-dot-product\n", + "cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example with Updated Sparse Optimization Specification and Architecture Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "\n", + "# Run example\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/01.2.3-SCDU-dot-product" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats\n", + "\n", + "- `A` related:\n", + " - Reduced capacity requirement and reduced number of accesses due to compressed data representation format.\n", + " - Extra metadata storage overhead, extra metadata access overhead. Note that # of metadata units equals to # of nonzero data in A.\n", + "- `B`: Reduced number of actual reads and **skipped reads** counts show up due to explicit skipping optimization.\n", + "- `Z`: Reduced number of actual reads and actual updates, and **skipped reads** && **skipped updates** counts show up due to explicit skipping optimization.\n", + "- `MAC`: Reduced number of actual computes. As a result of `skipping` on `B`, no operands are sent to `MAC` unit when `A` is empty (i.e., `NOT_EXIST` for both operands). So the number of computes reduced by 75%.\n", + "- Full utilization at 1.0. Since both computes and storage accesses are skipped, the utilization of the MAC unit is still full and the total number of cycles reduced as well.\n", + "- Total number of cycles reduced.\n", + "- Total energy reduced." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env OUT_DIR=../../../example_designs/example_designs/sparseloop/01.2.3-SCDU-dot-product/outputs/default_problem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/01.2.3-SCDU-dot-product-aggregated-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "metadata": { + "collapsed": false + }, + "source": [] + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/02.1-matrixmultiply-fibertree.ipynb b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/02.1-matrixmultiply-fibertree.ipynb new file mode 100644 index 00000000..1d9dd404 --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/02.1-matrixmultiply-fibertree.ipynb @@ -0,0 +1,476 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "# Sparseloop Tutorial - 02 - Matrix Multiply\n", + "\n", + "This notebook contains a series of examples of a **matrix multiply** computation. The **fibertree** emulator is used to illustrate the impact of a set of optimizations to exploit sparsity. The basic computation is represented by the Einsum:\n", + "\n", + "$$ Z_{m,n} = A_{m,k} \\times B_{k,n} $$\n", + "\n", + "Note that while the output is nominally a sparse rank-2 tensor, in this notebook the output is assumed to be in an uncompressed format and is directly referenced by **coordinate** since **position** == **coordinate** in an uncompressed format.\n", + "\n", + "First, include some libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "# Run boilerplate code to set up environment\n", + "\n", + "%run ./prelude.py --style=tree --animation=movie" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Configure two rank-2 input tensors\n", + "\n", + "The following cell sets up the control sliders to specify the attributes of the `A` and `B` input tensors. Those attributes include their **shape**, which specifies the allowable range of **coordinates** of elements of the tensor and their **density**.\n", + "\n", + "The rank names use the following convention:\n", + "\n", + "- M - uncontracted dimension in input `A`\n", + "- N - uncontracted dimension in input `B`\n", + "- K - contracted dimension shared by `A` and `B`\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Set default problem instance attributes (i.e., the shape of the tensors)\n", + "#\n", + "K = 8\n", + "M = 6\n", + "N = 6\n", + "\n", + "#\n", + "# Create controls to configure the `A` and `B` tensors\n", + "#\n", + "tm2 = TensorMaker(\"sparseloop-matrix-multiply\", autoload=True)\n", + "\n", + "tm2.addTensor(\"A\", rank_ids=[\"M\", \"K\"], shape=[M, K], density=0.4, color=\"blue\")\n", + "tm2.addTensor(\"B\", rank_ids=[\"K\", \"N\"], shape=[K, N], density=0.5, color=\"green\")\n", + "\n", + "tm2.displayControls()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create and display the input tensors\n", + "\n", + "Create the `A` and `B` tensors based on the current settings of the configuration sliders above and display the resulting tensors. These tensors are represented in the **fibertree** tensor abstraction, where for sparse fibers only the **elements** (**coordinate**/**payload** tuples) in a fiber with **non-empty** (non-zero) payloads need be shown." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "A_MK = tm2.makeTensor(\"A\")\n", + "B_KN = tm2.makeTensor(\"B\")\n", + "\n", + "displayTensor(A_MK)\n", + "displayTensor(B_KN)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Traverse a rank-2 tensor\n", + "\n", + "As a simple illustration of the traversal of a rank-2 tensor, the following code shows how that can be accomplished with two nested `for` loops where the **payload** of the traversal of the top rank is a reference to a **fiber** in the next rank.\n", + "\n", + "This natural traversal order where the bottom rank is traversed fastest (i.e., in a depth first fashion) is referred to as a **concordant** traversal and tend to be the most efficient. Other, less efficient, traversal orders are referred to as **discordant**.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Create a rank-2 tensor\n", + "#\n", + "A_MK = tm2.makeTensor(\"A\")\n", + "\n", + "#\n", + "# Get root of tensor\n", + "#\n", + "a_m = A_MK.getRoot()\n", + "\n", + "#\n", + "# Animation bookkeeeping\n", + "#\n", + "canvas = createCanvas(A_MK)\n", + "\n", + "cycle = 0\n", + "\n", + "#\n", + "# Traverse non-empty elements of top rank\n", + "#\n", + "for m, a_k in a_m:\n", + " #\n", + " # Traverse non-empty element of bottom rank\n", + " #\n", + " for k, a_val in a_k:\n", + " \n", + " print(f\"{a_val} \", end='')\n", + " \n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " canvas.addActivity((m,k), spacetime=(0,cycle))\n", + " cycle += 1\n", + "\n", + "displayCanvas(canvas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Matrix multiply\n", + "\n", + "The following code illustrates the traversal and accesses associated with the computation of untiled matrix multiply as expressed by the following Einsum:\n", + "\n", + "$$ Z_{m,n} = A_{m,k} \\times B_{k,n} $$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#\n", + "# Create the input/output tensors\n", + "#\n", + "K = getShape(tm2, \"K\")\n", + "M = getShape(tm2, \"M\")\n", + "N = getShape(tm2, \"N\")\n", + "\n", + "A_MK = tm2.makeTensor(\"A\")\n", + "B_KN = tm2.makeTensor(\"B\")\n", + "\n", + "Z_MN = Tensor(name=\"Z\", rank_ids=[\"M\", \"N\"], shape=[M, N])\n", + "\n", + "uncompressTensor(Z_MN)\n", + "\n", + "#\n", + "# Display the tensors\n", + "#\n", + "print(\"Problem instance:\")\n", + "print(f\"M: {M}\")\n", + "print(f\"K: {K}\")\n", + "print(f\"N: {N}\")\n", + "print(\"\")\n", + "\n", + "print(\"Input A\")\n", + "displayTensor(A_MK)\n", + "print(\"Input B\")\n", + "displayTensor(B_KN)\n", + "print(\"Output Z (initial)\")\n", + "displayTensor(Z_MN)\n", + "\n", + "#\n", + "# Get the root fibers of each tensor\n", + "#\n", + "a_m = A_MK.getRoot()\n", + "b_k = B_KN.getRoot()\n", + "z_m = Z_MN.getRoot()\n", + "\n", + "#\n", + "# Animation bookkeeping\n", + "#\n", + "canvas = createCanvas(A_MK, B_KN, Z_MN)\n", + "\n", + "cycle = 0\n", + "\n", + "#\n", + "# Traverse non-empty elements of top rank of `A`\n", + "#\n", + "for m, a_k in a_m:\n", + " #\n", + " # Traverse the K rank of `A`\n", + " #\n", + " for k, a_val in a_k:\n", + " #\n", + " # Obtain the matching fiber in `B`\n", + " #\n", + " b_n = b_k.getPayload(k)\n", + " \n", + " #\n", + " # Traverse the bottom rank of `B`\n", + " #\n", + " for n, b_val in b_n:\n", + " #\n", + " # Do the reduction\n", + " #\n", + " z_m[m][n] += a_val * b_val\n", + " \n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " canvas.addActivity((m,k), (k,n), (m, n), spacetime=(0,cycle))\n", + " cycle += 1\n", + " \n", + "#\n", + "# Display results\n", + "#\n", + "print(\"Output tensor Z (final)\")\n", + "displayTensor(Z_MN)\n", + "\n", + "displayCanvas(canvas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Tiled Matrix Multiply\n", + "\n", + "$$ Z_{n1,m,n0} = A_{m,k} \\times B_{n1,k,n0}$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Splitting of B\n", + "\n", + "First we look at the sequence for splitting the `B` tensor along the N rank.\n", + "\n", + "Notes:\n", + "\n", + "- The coordinates in the N0 rank are the original N coordinates\n", + "- We are assuming that this is done offline... Online tiling is beyond the scope of this notebook." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Create tensors\n", + "#\n", + "\n", + "N0 = 3\n", + "\n", + "B_KN = tm2.makeTensor(\"B\")\n", + "\n", + "print(\"Original B tensor\")\n", + "displayTensor(B_KN)\n", + "\n", + "#\n", + "# Split the `N` rank of `B` into a series of fibers with shape `N0`\n", + "# then rename the coordinates of the N1 rank to match the coordinates we want in the output (hacky)\n", + "#\n", + "B_N1N0K = B_KN.splitUniform(N0, depth=1)\n", + "B_N1N0K = B_N1N0K.updateCoords(lambda n, c, p: n, depth=1)\n", + "\n", + "print(\"B tensor with N rank split into fibers with a shape={N0}\")\n", + "displayTensor(B_N1N0K)\n", + "\n", + "#\n", + "# Swizzle the ranks of B so that we can traverse it in a **concordant** fashion\n", + "#\n", + "B_N1KN0 = B_N1N0K.swapRanks()\n", + "\n", + "print(\"B tensor split and swizzed for concordant traversal\")\n", + "displayTensor(B_N1KN0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Tiled Matrix Multiply" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#\n", + "# Create the input/output tensors\n", + "#\n", + "K = getShape(tm2, \"K\")\n", + "M = getShape(tm2, \"M\")\n", + "N = getShape(tm2, \"N\")\n", + "\n", + "N1 = 2\n", + "N0 = (N+1)//2\n", + "\n", + "#\n", + "# Create tensors\n", + "#\n", + "\n", + "A_MK = tm2.makeTensor(\"A\")\n", + "B_KN = tm2.makeTensor(\"B\")\n", + "\n", + "\n", + "B_N1KN0 = B_KN.splitUniform(N0, depth=1).swapRanks()\n", + "B_N1KN0 = B_N1KN0.updateCoords(lambda n, c, p: n)\n", + "\n", + "Z_MN = Tensor(name=\"Z\",\n", + " rank_ids=[\"M\", \"N\"],\n", + " shape=[M, N])\n", + "uncompressTensor(Z_MN)\n", + "\n", + "Z_N1MN0 = Z_MN.splitUniform(N0, depth=1).swapRanks()\n", + "Z_N1MN0 = Z_N1MN0.updateCoords(lambda n, c, p: n)\n", + "Z_N1MN0.setMutable(True)\n", + "\n", + "#\n", + "# Display Tensors\n", + "#\n", + "print(\"Problem instance:\")\n", + "print(f\"K: {K}\")\n", + "print(f\"M: {M}\")\n", + "print(f\"N: {N}\")\n", + "print(f\"N1: {N1}\")\n", + "print(f\"N0: {N0}\")\n", + "\n", + "displayTensor(A_MK)\n", + "displayTensor(B_N1KN0)\n", + "displayTensor(Z_N1MN0)\n", + "\n", + "#\n", + "# Get the root fibers of each tensor\n", + "#\n", + "a_m = A_MK.getRoot()\n", + "b_n1 = B_N1KN0.getRoot()\n", + "z_n1 = Z_N1MN0.getRoot()\n", + "\n", + "#\n", + "# Animation bookkeeping\n", + "#\n", + "canvas = createCanvas(A_MK, B_N1KN0, Z_N1MN0)\n", + "\n", + "cycle = 0\n", + "\n", + "#\n", + "# Traverse non-empty elements of `N1` (top) rank of `B`\n", + "#\n", + "for n1, b_k in b_n1:\n", + " #\n", + " # Traverse non-empty elements of `M` (top) rank of A\n", + " #\n", + " for m, a_k in a_m:\n", + " #\n", + " # Traverse the K (bottom) rank of `A`\n", + " #\n", + " for k, a_val in a_k:\n", + " #\n", + " # Obtain the matching fiber in `B`\n", + " #\n", + " b_n0 = b_k.getPayload(k)\n", + " \n", + " #\n", + " # Traverse the `N0` (bottom) rank of `B`\n", + " #\n", + " for n0, b_val in b_n0:\n", + " #\n", + " # Do the reduction\n", + " #\n", + " # Note hack to get right position in `N0` rank of `Z`\n", + " #\n", + " z_n1[n1][m][n0%N0] += a_val * b_val\n", + " \n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " canvas.addActivity([(m,k)], [(n1,k,n0)], [(n1, m, n0)], \n", + " spacetime=(0,cycle))\n", + " cycle += 1\n", + " \n", + "displayTensor(Z_N1MN0)\n", + "displayCanvas(canvas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Testing area\n", + "\n", + "For running alternative algorithms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/02.2-matrixmultiply-sparseloop.ipynb b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/02.2-matrixmultiply-sparseloop.ipynb new file mode 100644 index 00000000..a696024d --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/02.2-matrixmultiply-sparseloop.ipynb @@ -0,0 +1,381 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Matrix Multiply\n", + "\n", + "The following sequence of cells illustrate hardware processing of a matrix multiply computation:\n", + "
\n", + "
\n", + " Zm,n = Am,k x Bk,n\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 02.2.1 Sparse Matrix Multiplitcation\n", + "\"spMspM_setup\"\n", + "\n", + "### Understanding the inputs: Problem Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env BASELINE_DIR=../../../example_designs\n", + "%set_env DESIGNS_DIR=../../../example_designs/example_designs/sparseloop\n", + "%set_env SCRIPTS_DIR=../scripts" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/02.2.1-spMspM/ && cat problem.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the inputs: Architecture Specification\n", + "We consider a more realistic architecture with a larger `BackingStorage` and a smaller local `Buffer`. We use small storages here for simplicity." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/02.2.1-spMspM/ && cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the inputs: Mapping Specification\n", + "We need to specify the loops for each storage unit. Since we are doing simple streaming from `BackingStorage` to `Buffer`, all the loops below the `BackingStorage` level have trivial bounds." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/02.2.1-spMspM/ && cat mapping.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the inputs: Sparse Optimization Feature Specification\n", + "As shown in the setup figure above, we need the following sparse optimizations to achieve the expected behaviors\n", + "- compressed representation of tensors A and B at both storage levels\n", + "- skipping optimization applied to all A, B, and Z with different skipping conditions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/02.2.1-spMspM/ && cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/02.2.1-spMspM" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats\n", + "\n", + "1. `A` Tensor Related: \n", + " - Reduced data storage capacity requirement due to its compressed data representation.\n", + " - There are skipped data accesses due to the explicit skipping optimization of A based on B, i.e., if B has an empty payload value, then it is not necessary to read out the corresponding A anymore.\n", + " - Reduced number of accesses actual data accesses because of compressed representation format as well as explicit skipping optimization.\n", + " - Metadata storage overhead and accesses. Note that # of metadata units > # of nonzero values in A. There are 25 units of metadata overhead because we have 16 coordinates in the lower rank and 8+1 offsets in the upper rank. Thus, the total number of metadata + number of data units < original tile shape.\n", + " - Some of the metadata accesses are also skipped.\n", + "2. `B` Tensor Related\n", + " - Reduced data storage capacity requirement due to its compressed data representation.\n", + " - Skipped data accesses due to the explicit skipping optimization of B based on A, i.e., if A has an empty payload value, then it is not necessary to read out the corresponding B fiber.\n", + " - Reduced number of actual data accesses because of compressed representation format as well as explicit skipping optimization.\n", + " - Metadata storage overhead and accesses. Note the due to the higher density in B, total number of metadata + number of data units > original tile shape because of higher tensor density.\n", + "3. `Z`: \n", + " - Capacity requirement == tile shape due to uncompressed representation.\n", + " - Reduced number of actual reads and actual updates, and skipped reads && skipped updates counts show up.\n", + "4. `MAC`: reduced number of actual computes since the operands are skipped at the `Buffer` and become `NOT_EXSIT` at the compute.\n", + "6. Total number of cycles reduced as both computes and storage accesses are skipped. As a result, MAC has a full utilization fo 1.0.\n", + "7. Total energy reduced due to reduced storage accesses and computes." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env OUT_DIR=../../../example_designs/example_designs/sparseloop/02.2.1-spMspM/outputs/default_problem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/02.2.1-spMspM-aggregated-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 02.2.2 Tiled Sparse Matrix Multiplitcation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding Inputs: Mapping Specification with Tiling on `N`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/02.2.2-spMspM-tiled/ && cat mapping.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding Inputs: Architecture with A Smaller Buffer\n", + "\n", + "Tiling allows smaller `B` and `Z` tiles to be stored in the `Buffer`, so we can reduce the storage space in our architecture. In this specific example, we reduce the `depth` of the `Buffer` to half, i.e., 128 to 64." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "echo \"===========================================\"\n", + "echo \" Untiled Exampe Buffer Specification\"\n", + "echo \"===========================================\"\n", + "\n", + "cd $DESIGNS_DIR/02.2.1-spMspM\n", + "grep Buffer -A 9 arch.yaml\n", + "\n", + "printf \"\\n===========================================\\n\"\n", + "printf \" Tiled Exampe Buffer Specification\\n\"\n", + "printf \"===========================================\\n\"\n", + "\n", + "cd ../02.2.2-spMspM-tiled\n", + "grep Buffer -A 9 arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding Inputs: Data Representaiton Format Specification for Pretiled Tensors\n", + "\n", + "#### Tiling introduces splitted rank(s) and thus additional ranks in tensor\n", + "\"tiled_mapping\"\n", + "\n", + "\n", + "#### Pretiling \n", + "Accelerator designs usually only support concordant traversal of compressed tensors, and thus when tiling is necessary, the input tensor to the accelerator is often **pre-tiled**.\n", + "\n", + "Thus the `B` tensor stored in `BackingStorage` needs to have three ranks, N1, K, N0 *(N/N1)*. Failing to specify enough ranks for the tensor representation will result in an error.\n", + "\n", + "In this example, the top `N1` rank is only useful in `BackingStroage` to identify the tiles (elements in the `N1` ranks) being transferred to `Buffer`, so the `N1` rank is not transferred to `Buffer` storage." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/02.2.2-spMspM-tiled && grep sparse_optimizations -A 9 arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/02.2.2-spMspM-tiled" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats: `B` Tensor - Centric View\n", + "- `A` Tensor Related: \n", + " - All observations from the last part stay true, as `A` tensor is not tiled.\n", + "- `B` Tensor Related\n", + " - `BackingStorage` has the tensor pre-tiled to 3 ranks. \n", + " - Metadata storage capacity overhead increased significantly in `BackingStorage`, and thus the number of metadata reads.\n", + " - Smaller tiles are stored in `Buffer`, each tile in `Buffer` is still in rank2 format.\n", + "- `Z` Tensor Related: \n", + " - Smaller tiles are stored in `Buffer` in uncompressed format.\n", + " - Other observations stay the same as the untiled case.\n", + "- `MAC`: Same behaviors as untiled." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env OUT_DIR=../../../example_designs/example_designs/sparseloop/02.2.2-spMspM-tiled/outputs/default_problem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/02.2.2-spMspM-pretiling-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Compare Untiled and Tiled Examples\n", + "Compared to untiled example, the tiled example consumes 67% energy per algorithmic compute." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "echo \"========================================\"\n", + "echo \" Untiled Run \"\n", + "echo \"========================================\"\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/02.2.1-spMspM\n", + "\n", + "echo \"========================================\"\n", + "echo \" Tiled Run \"\n", + "echo \"========================================\"\n", + "python3 run_example_designs.py --architecture sparseloop/02.2.2-spMspM-tiled" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "metadata": { + "collapsed": false + }, + "source": [] + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/03.1-convolution.ipynb b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/03.1-convolution.ipynb new file mode 100644 index 00000000..3a656749 --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/03.1-convolution.ipynb @@ -0,0 +1,508 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "source": [ + "# Sparseloop Tutorial - 03 - Convolution\n", + "\n", + "This notebook contains a series of examples of a DNN **convolution** computation. The **fibertree** emulator is used to illustrate the impact of a set of optimizations to exploit sparsity. The basic computation for a 1-D convolution with one input channel and one output channel is represented by the Einsum:\n", + "\n", + "$$ O_{q} = I_{(q+s)} \\times F_{s} $$\n", + "\n", + "Note that while the output is possibly a sparse rank-1 tensor, in this notebook the output is assumed to be in an uncompressed format and is directly referenced by **coordinate** since **position** == **coordinate** in an uncompressed format.\n", + "\n", + "First, include some libraries" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "slideshow": { + "slide_type": "-" + } + }, + "outputs": [], + "source": [ + "# Run boilerplate code to set up environment\n", + "\n", + "%run ./prelude.py --style=tree --animation=movie" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Configure convolution tensors input tensors\n", + "\n", + "The following cell sets up the control sliders to specify the attributes of the 1-D `I` (input activations) and `F` (filter weight) input tensors. Those attributes include their **shape**, which specifies the allowable range of **coordinates** of elements of the tensor and their **density**.\n", + "\n", + "The empty 1-D 'O' (output activations) tensors are declared when used in later cells. \n", + "\n", + "The rank names use the following convention:\n", + "\n", + "- `W` - The width of the input activation tensor (`I`)\n", + "- `S` - The width of the filter weight tensor (`F`)\n", + "- `Q` - The width of the output activation tensor (`O`)\n", + "- `M` - The number of output channels in `F` and `O` (used in later cells).\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Set default problem instance attributes (i.e., the shape of the tensors)\n", + "#\n", + "W = 12\n", + "S = 3\n", + "\n", + "\n", + "#\n", + "# Create controls to configure the `I` and `F` tensors\n", + "#\n", + "tm3 = TensorMaker(\"sparseloop-convolution-1\", autoload=True)\n", + "\n", + "tm3.addTensor(\"F\", rank_ids=[\"S\"], shape=[S], density=0.5, color=\"green\")\n", + "tm3.addTensor(\"I\", rank_ids=[\"W\"], shape=[W], density=1.0, color=\"blue\")\n", + "\n", + "tm3.displayControls()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create and display convolution tensors" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "F_S = tm3.makeTensor(\"F\")\n", + "I_W = tm3.makeTensor(\"I\")\n", + "\n", + "displayTensor(F_S)\n", + "displayTensor(I_W)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Simple 1-D Convolution\n", + "\n", + "$$ O_{q} = I_{(q+s)} \\times F_{s} $$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Create input convolution tensors\n", + "#\n", + "S = getShape(tm3, \"S\")\n", + "W = getShape(tm3, \"W\")\n", + "Q = W-S+1\n", + "\n", + "F_S = tm3.makeTensor(\"F\")\n", + "I_W = tm3.makeTensor(\"I\")\n", + "\n", + "O_Q = Tensor(name=\"O\", rank_ids=[\"Q\"], shape=[Q])\n", + "uncompressTensor(O_Q)\n", + "\n", + "#\n", + "# Display Tensors\n", + "#\n", + "print(\"Problem Instance:\")\n", + "print(f\"S: {S}\")\n", + "print(f\"W: {W}\")\n", + "print(f\"Q: {Q}\")\n", + "print(\"\")\n", + "\n", + "print(\"Filter weight tensor F\")\n", + "displayTensor(F_S)\n", + "print(\"Input activation tensor I\")\n", + "displayTensor(I_W)\n", + "print(\"Output activation tensor O (initial)\")\n", + "displayTensor(O_Q)\n", + "\n", + "#\n", + "# Get root of tensors\n", + "#\n", + "i_w = I_W.getRoot()\n", + "f_s = F_S.getRoot()\n", + "o_q = O_Q.getRoot()\n", + "\n", + "#\n", + "# Animation bookkeeeping\n", + "#\n", + "canvas = createCanvas(F_S, I_W, O_Q)\n", + "\n", + "cycle = 0\n", + "\n", + "#\n", + "# Traverse all `Q` coordinates of the output tensor\n", + "#\n", + "for q in range(Q):\n", + " #\n", + " # Traverse the non-empty coordinates of the filter weights\n", + " #\n", + " for s, f_val in f_s:\n", + " #\n", + " # Compute and fetch the required input activation coordinate\n", + " #\n", + " w = q + s\n", + " i_val = i_w.getPayload(w)\n", + " \n", + " #\n", + " # Compute value to contribute to partial output sum\n", + " #\n", + " o_q[q] += i_val * f_val\n", + " \n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " canvas.addActivity((s,), (w,), (q,), spacetime=(0,cycle))\n", + " cycle += 1\n", + " \n", + "#\n", + "# Display results\n", + "#\n", + "print(\"Output activation tensor O (final)\")\n", + "displayTensor(O_Q)\n", + "\n", + "displayCanvas(canvas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Convolution - 1D - with output channels\n", + "\n", + "$$ O_{m,q} = I_{(q+s)} \\times F_{m,s} $$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Configure convolution tensors" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#\n", + "# Set default problem instance attributes (i.e., the shape of the tensors)\n", + "#\n", + "M = 4\n", + "W = 12\n", + "S = 4\n", + "\n", + "#\n", + "# Create controls to configure the `I` and `F` tensors\n", + "#\n", + "tm4 = TensorMaker(\"sparseloop-convolution-2\", autoload=True)\n", + "\n", + "tm4.addTensor(\"F\", rank_ids=[\"M\", \"S\"], shape=[M, S], density=0.5, color=\"green\")\n", + "tm4.addTensor(\"I\", rank_ids=[\"W\"], shape=[W], density=1.0, color=\"blue\")\n", + "\n", + "tm4.displayControls()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create and display convolution tensors" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "F_MS = tm4.makeTensor(\"F\")\n", + "I_W = tm4.makeTensor(\"I\")\n", + "\n", + "displayTensor(F_MS)\n", + "displayTensor(I_W)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Convolution with multiple output channels" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#\n", + "# Create input convolution tensors\n", + "#\n", + "M = getShape(tm4, \"M\")\n", + "S = getShape(tm4, \"S\")\n", + "W = getShape(tm4, \"W\")\n", + "Q = W - S + 1\n", + "\n", + "F_MS = tm4.makeTensor(\"F\")\n", + "I_W = tm4.makeTensor(\"I\")\n", + "\n", + "O_MQ = Tensor(name=\"O\", rank_ids=[\"M\", \"Q\"], shape=[M, Q])\n", + "uncompressTensor(O_MQ)\n", + "\n", + "#\n", + "# Display Tensors\n", + "#\n", + "print(\"Problem Instance:\")\n", + "print(f\"M: {M}\")\n", + "print(f\"S: {S}\")\n", + "print(f\"W: {W}\")\n", + "print(f\"Q: {Q}\")\n", + "print(\"\")\n", + "\n", + "print(\"Filter weight tensor F\")\n", + "displayTensor(F_MS)\n", + "print(\"Input activation tensor I\")\n", + "displayTensor(I_W)\n", + "print(\"Output activation tensor O (initial)\")\n", + "displayTensor(O_MQ)\n", + "\n", + "#\n", + "# Get root of tensors\n", + "#\n", + "i_w = I_W.getRoot()\n", + "f_m = F_MS.getRoot()\n", + "o_m = O_MQ.getRoot()\n", + "\n", + "#\n", + "# Animation bookkeeeping\n", + "#\n", + "canvas = createCanvas(F_MS, I_W, O_MQ)\n", + "\n", + "cycle = 0\n", + "\n", + "#\n", + "# Traverse filter weight output channels\n", + "#\n", + "for m, f_s in f_m: \n", + " #\n", + " # Traverse all `Q` coordinates of the output tensor\n", + " #\n", + " for q in range(Q):\n", + " #\n", + " # Traverse all non-empty filter weights for this output channel\n", + " #\n", + " for s, f_val in f_s:\n", + " #\n", + " # Compute and fetch the required input activation coordinate\n", + " #\n", + " w = q + s\n", + " i_val = i_w.getPayload(w)\n", + "\n", + " #\n", + " # Compute value to contribute to partial output sum\n", + " #\n", + " o_m[m][q] += i_val * f_val\n", + "\n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " canvas.addActivity((m,s), (w,), (m,q), spacetime=(0,cycle))\n", + " cycle += 1\n", + "\n", + "#\n", + "# Display results\n", + "#\n", + "print(\"Output activation tensor O (initial)\")\n", + "displayTensor(O_MQ)\n", + "\n", + "displayCanvas(canvas)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Convolution - spatial output channels" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "#\n", + "# Create input convolution tensors\n", + "#\n", + "\n", + "split = 2\n", + "\n", + "F_MS = tm4.makeTensor(\"F\")\n", + "F_M1M0S = F_MS.splitUniform(split)\n", + "F_M1M0S = F_M1M0S.updateCoords(lambda n, c, p: n)\n", + "\n", + "I_W = tm4.makeTensor(\"I\")\n", + "\n", + "W = I_W.getShape(\"W\")\n", + "S = F_MS.getShape(\"S\")\n", + "Q = W-S+1\n", + "\n", + "M = F_MS.getShape(\"M\")\n", + "M0 = split\n", + "M1 = (M+split-1)//split\n", + "\n", + "O_MQ = Tensor(name=\"O\", rank_ids=[\"M\", \"Q\"], shape=[M, Q])\n", + "uncompressTensor(O_MQ)\n", + "O_M1M0Q = O_MQ.splitUniform(split)\n", + "\n", + "#\n", + "# Display Tensors\n", + "#\n", + "print(\"Problem Instance:\")\n", + "print(f\"M1: {M1}\")\n", + "print(f\"M0: {M0}\")\n", + "print(f\"W: {W}\")\n", + "print(f\"Q: {Q}\")\n", + "print(f\"S: {S}\")\n", + "\n", + "displayTensor(F_M1M0S)\n", + "displayTensor(I_W)\n", + "displayTensor(O_M1M0Q)\n", + "\n", + "#\n", + "# Get root of tensors\n", + "#\n", + "i_w = I_W.getRoot()\n", + "f_m1 = F_M1M0S.getRoot()\n", + "o_m1 = O_M1M0Q.getRoot()\n", + "\n", + "#\n", + "# Animation bookkeeeping\n", + "#\n", + "canvas = createCanvas(F_M1M0S, I_W, O_M1M0Q)\n", + "\n", + "#\n", + "# Traverse group of filter weight output channels\n", + "#\n", + "for m1, f_m0 in f_m1:\n", + " #\n", + " # Traverse filter weight output channels in this group\n", + " #\n", + " for m0, f_s in f_m0: \n", + " #\n", + " # Traverse all output locations for this output channel\n", + " #\n", + " for q in range(Q):\n", + " #\n", + " # Traverse all output locations\n", + " #\n", + " for s, f_val in f_s:\n", + " #\n", + " # Compute and fetch the required input activation coordinate\n", + " #\n", + " w = q + s\n", + " i_val = i_w.getPayload(w)\n", + "\n", + " #\n", + " # Compute value to contribute to partial output sum\n", + " #\n", + " o_m1[m1][m0%M0][q] += i_val * f_val\n", + " #\n", + " # Animation bookkeeping\n", + " #\n", + " spacestamp = m0\n", + " \n", + " # TBD: Time should be counted in position not coordinates!\n", + " timestamp = m1*W*S + q*S + s \n", + " \n", + " canvas.addActivity((m1,m0,s), (w,), (m1,m0,q),\n", + " spacetime=(spacestamp, timestamp))\n", + "\n", + "\n", + "displayTensor(O_M1M0Q)\n", + "displayCanvas(canvas)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Testing area\n", + "\n", + "For running alternative algorithms" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/03.2-convolution-sparseloop.ipynb b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/03.2-convolution-sparseloop.ipynb new file mode 100644 index 00000000..26a9ce3c --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/03.2-convolution-sparseloop.ipynb @@ -0,0 +1,408 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Convolution\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 03.2.1 1D Convolution\n", + "\n", + "$$ O_{q} = I_{(q+s)} \\times F_{s} $$\n", + "\n", + "\"conv1d_setup\"\n", + "\n", + "\n", + "### Understanding the Inputs: Workload Specification\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env BASELINE_DIR=../../../example_designs\n", + "%set_env DESIGNS_DIR=../../../example_designs/example_designs/sparseloop\n", + "%set_env SCRIPTS_DIR=../scripts" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.1-conv1d/ && cat problem.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding Inputs: Architecture Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.1-conv1d/ && cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the Inputs: Mapping Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.1-conv1d/ && cat mapping.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the Inputs: Sparse Optimziation Specification\n", + "- Compressed representation format for Weights. Note we use run length encoding (RLE) this time.\n", + "- Skip Inputs and Outputs based on Weights" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.1-conv1d/ && cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/03.2.1-conv1d" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats\n", + "- Only Weights data has associated metadata (and thus the savings and overhead brought by metadata).\n", + "- Inputs and Outputs are skipped according to Weight's sparsity.\n", + "- Reduced number of computes due to skipping at the `Buffer`.\n", + "- Overall similar behaviors compared to what we saw for the similar dot product example." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env OUT_DIR=../../../example_designs/example_designs/sparseloop/03.2.1-conv1d/outputs/default_problem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/03.2-conv-aggregated-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Conv1D with Output Channels\n", + "\n", + "\n", + "$$ O_{m,q} = I_{(q+s)} \\times F_{m,s} $$\n", + "\n", + "## Exercise 03.2.2 conv1D + Outputs Channels\n", + "\n", + "### Understanding the Inputs: Workload Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.2-conv1d+oc/ && cat problem.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the Inputs: Mapping Specification for New Workload\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.2-conv1d+oc/ && cat mapping.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the Inputs: Sparse Optimization Specification\n", + "The extra output channel dimension introduces an extra rank in data representation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.2-conv1d+oc/ && cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/03.2.2-conv1d+oc" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise 03.2.3 Conv1D + Output Channels- Spatial Tiling\n", + "\n", + "### Understanding the Inputs: Architecture Specification\n", + "\n", + "- Spatial fanout of the PEs for parallel processing\n", + "- Reduced the per-PE buffer size\n", + "\n", + "\"figures/03.2.3.spatial_arch.png\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.3-conv1d+oc-spatial/ && cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the Inputs: Mapping Specification" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.3-conv1d+oc-spatial/ && cat mapping.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Understanding the Inputs: Sparse Optimization Specification\n", + "\n", + "Because of the spatial tiling, we need to pretile the tensor before sending it out for processing. We now have more ranks for Filter." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/03.2.3-conv1d+oc-spatial/ && cat arch.yaml" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run Example" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/03.2.3-conv1d+oc-spatial" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Examine Important Stats\n", + "- Pretiling overhead incurred by the temporal and spatial tiling.\n", + "- Reduced tile size stored in `Buffer`.\n", + "- Similar savings from explicit skipping as above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env OUT_DIR=../../../example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/outputs/default_problem" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/03.2-conv-aggregated-stats.sh)\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR && $SCRIPT_PATH" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Compare Untiled Example and Tiled Example\n", + "\n", + "- Untiled exampled consumes more energy and has a slower processing speed\n", + "- Spatially tiled example consumes more area but has lower energy consumption and faster processing speed" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "export OUT_DIR_1=$(realpath ../../../example_designs/example_designs/sparseloop/03.2.2-conv1d+oc/outputs/default_problem)\n", + "export OUT_DIR_2=$(realpath ../../../example_designs/example_designs/sparseloop/03.2.3-conv1d+oc-spatial/outputs/default_problem)\n", + "export SCRIPT_PATH=$(realpath $SCRIPTS_DIR/03.2-conv-summary-stats.sh)\n", + "\n", + "echo \"========================================\"\n", + "echo \" Untiled Example \"\n", + "echo \"========================================\"\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR_1 && $SCRIPT_PATH\n", + "\n", + "echo \"========================================\"\n", + "echo \" Tiled Example \"\n", + "echo \"========================================\"\n", + "chmod +x $SCRIPT_PATH && cd $OUT_DIR_2 && $SCRIPT_PATH\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "metadata": { + "collapsed": false + }, + "source": [] + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/04.2-more-examples-and-mapspace-search-sparseloop.ipynb b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/04.2-more-examples-and-mapspace-search-sparseloop.ipynb new file mode 100644 index 00000000..d4b472b5 --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/04.2-more-examples-and-mapspace-search-sparseloop.ipynb @@ -0,0 +1,131 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# More examples with larger hardware setups and problems" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## We provide more examples on realisitic DNN layers and hardware setups\n", + "\n", + "## Exercise 04.2.1 Eyeriss like design\n", + "We include Eyeriss architecture with offchip compression and onchip gating based on input activation's sparsity\n", + "\n", + "### Examine Sparse Optimization\n", + "We introduce a new specification key called `flattened_rankIDs`, whcih specifies which dimension can be flattened together and indexed with one specific type of metadata. Each list in the `flattened_rankIDs` specification indicates the set of dimensions that can be flattened together. For example, `RLE` can be applied to a large tile of multidimensional data that's falttened into a single diemension." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%set_env BASELINE_DIR=../../../example_designs\n", + "%set_env DESIGNS_DIR=../../../example_designs/example_designs/sparseloop\n", + "%set_env SCRIPTS_DIR=../scripts" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $DESIGNS_DIR/04.2.1-eyeriss-like-gating/ && cat arch.yaml" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/04.2.1-eyeriss-like-gating" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise 04.2.2 Eyeriss like design with mapspace seach\n", + "We furthur illustrate the potential of mapspace search for a sparse design and a sparse problem with `timeloop-mapper`\n", + "The search might take a while (<5min), and we recommend using the terminal to run the example, since the progress prints do not show in jupyter notebook cells" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/04.2.2-eyeriss-like-gating-mapspace-search" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercise 04.2.3 Eyeriss like design with onchip compression\n", + "We furthur enhance the design to allow onchip compression of input activations and skipping\n", + "The search might take a while (<5min), and we recommend using the terminal to run the example, since the progress prints do not show in jupyter notebook cells\n", + "\n", + "Note that, with skipping, we can enhance the utilization of the design." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "%%bash\n", + "cd $BASELINE_DIR\n", + "python3 run_example_designs.py --architecture sparseloop/04.2.3-eyeriss-like-onchip-compression" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "metadata": { + "collapsed": false + }, + "source": [] + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/.gitkeep b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/01.2.1.DUDU_setup.png b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/01.2.1.DUDU_setup.png new file mode 100644 index 0000000000000000000000000000000000000000..ec3d98d7309779e607ee8c66e8320f993fee6e7a GIT binary patch literal 103382 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 z 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� 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 B@uNn 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
Zkggr{G7w)@0(OcE?$#H~BlTzVPzpsM=qS& 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 literal 0 HcmV?d00001 diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/02.2.1.spMspM_setup.png b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/02.2.1.spMspM_setup.png new file mode 100644 index 0000000000000000000000000000000000000000..096a3c7909a7a03d098f70ebde1c3bafcfdcf17a GIT binary patch literal 172593 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 z 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

BWnEp$uxBge6^$NZaPgFBmE<(eg3MIVnj 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

n%|+k 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�VLqJxAy2MnnYzJXm3Z#ASr_F(qZ2;Yd`Ku;P{ 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%0DU!>TMC!OzAhi`Z zz}D{Bzu_lL47?Pz557F;QNEvd>#4#4EGz|Wo1?(;udu>+czJpC#VhAVEMQBFt-_zX zhD^1WY=D*)l8Ti}Cy=2=F54yIbYi~#U$vcmT#{+J$7j#yGuzo_PL!!@rm=0usUUSI zqSVAGB}+q7A~aKL(A1C|Lu*vfX{H?uLX$#GR3=b-mr?_DOlwLh9VH~xpmNI>L{#zx zl~>P$ot<*`oIlQI_dNeU&wa!Fc3s!+dtX;eT?uX+P^Ft!taUuqujXyTOBZ2v{;`TE zY0ar#Vqnb`sVp&lL-@h=+&(FSV)KJ}HO59Dv12yIt@91qAnFlf9k&4F0^zs#9Uz(P zIKzY^3V1G!d9(;UxywU18QEe{lLOOeppb2N!E=0nqYGGCFe|J(|-Xj z*Q~AEwPF}Cy_%9`;7A3e-V;@;ncujtF?Swjo`<}t9*}AJwRWm~!MgGT!J_u8AKE+p z0VHYbjn+KuVR=nEtqdATT9KiQowrE@( z4wS~QLY@cmO62e(RTE0|K=~wR3rG$Sj4z8U0biwfvy;7V$2#U-NJ)~5x z+y;3%z-1gB`JQvY#lC)OI{H&ov;*_s+>wBS)w7GZdd*ISIr`K(*T;7e!z(+e*bkfl&_m3j#L9CS`Bgqr1J!ls&E}ae%T67=g~1_9221Ve zSL-@C!Rq5FGN44!?dg)MTtH=-dxxSuDQkPj6Y(_!}mK zzG9**aqO*~j?_A}uUB_!s32maxlx$Xwqa(sn)U)A)~#JJ-qyi|l?w1ML^6jQ@?US` zF0otM--5i8)iKQLUNvpoM)%JBhC28f5jT4}{g0tCSS933Ybef_l*uybF| zi?KZf2t6{;-tpojZc0Xg%ryLmY8J}`NUb(1?0$DyU(jyntq8sqdSO~57`fosu95V$n)->%nXbnP39R9%FkI*e%+LRG8wY)T&xQXCj2#?hUl~ z!C#e4svqQ)OBP+Saxy@1sjZ3@FL`63=?Gpyn4Q-a5DnzdH+;ND9@*Sp(QMjZYlQ|w z%-$)K?-DZl_>ynIEdIIbT-9e19_X!emGMp(Fp-}jXx2NsqL`vX27-FtDbq%F{QGk2 zImIo~HL|W$N8(#IC^7{1yJPJm9}v8_Fe2t6t-H|DE6=UwlyZ-QsaZzD0eFX~n1B*9 zz4n}E{|ra8S)l`m2Jr>d-I1K}{KdF%$1P}K99EMZbhr3ipgnXWv$@XGkIfHdyA&@i zgO`@g(n4x6U?}j+_zw#B`yapv*f{ejeCbkiU{9vh>`kIH)_~^kne?)ZE1LC`wR}-8 z{;yqsc7_(cp1Wjzxl@22rmgW$9SJ@0%dmBl{ESz&lRc}0O>ze(r$ZojjfoOUZpW0Vudah5tW`wh2L*tBT zmrw?4x>hw~lH@V{QpqN>YC+=mYy>tl_*uo6-3!40{zUP-$oz7yAe{GZO1)b>lu_JJ zba4ft7X@I25#zzw<8#0bLTzQ3<3Y(Pss2xcc|Q94$mc@PD--Mr@=AZ^0>X1o!PfAe z!d)HsVfJkK&6!dZYclBe*Ij*t{Xn{?QpsK@W3FoS-s0rDI0$CK7_c0KPYZg3{i6*= zHPhhe{v*~fE;=Yx`0yV#G}dbst&6kHMQspO+E?%|&|tvJ%1BRZ;HL(5ngah6zG=&S zwq6<5C26_f#P#|;AZBIQN5-E`g_3o-g2ChwRrf*+yUSF=p0hFHGV1-g7+>Srw z;7IZ)ZgO%8-Dmd7gEJ?+A4k@>jVjq6@BWvsYpHFMF_`HwehZL6Y2D#sT2>Ktr$;Ut z=fRlbKy6Jnj3ylIf@AotIK`Lqy(?ZO`K8jHpdMlI>Y}m2kpFZO@=jutvV0W|C?MA` zGcPK}Nc5x3A$NC#QEI)7vTM!3d+nvZ#+nH1@xV8_vX76i|4+U7bM|bHheq{wqzv@k zBL|>jdRA;Jl9P;5oN9U>ecjTfv{)9I;v#2fLF@P;Xny-M{nbuuC=>(`{m0-xPPk~fFbb-jOZ5tC6O4>W zxC^QU$PN?SGtV0+KuzOV7?onW<5oa~{QGYnJvJIMA)?N)u(r%NGOWD1`BWc)v_o`e zVp<#qFPd0si098;_%SHy(;KybgRgPFKoG@xaD2MnsW{{=w}ZI?r{ANZ7p6;tZ*Hc2 zVG}QST?m~v63=oKEW{)$I;VdELi3xf@;WZJg+lL%RkB>lId)%FvVIZIodgtYz1$@u zV$5SF7iR0|zp+Zkfu(1Ra}tRO*^|m_-i?pMeZc(5f6EV%*T;zWaD%O51XOo#>@!-Hb>y4lO6dTrc4D*E^SWx7NXLew3}ju{T}js!xU zBrQ8KFg#`8*afINNS$?iN%xZv9ze3lAK`w>-V|gP6?5M3Llk8jm_9xIDW}yHFbCs} ztA^0(cc=rv+0q>Xrd&ywRh_Mky@ndOOecoDi*4yv;GVwWntD??i{Ec4s4W@!k)Cj) zkW{N)oIN#W6;R4>1#uZq*-LJ?h`wkE=`2&UjVcIN^v>xw{#oE$wGUxV!Rj38)6o~D z%sg~x5}UZ`ABG-(b?Fm#<)iqe-=#!4VOWgE*>s+vVS{=oI|m2|-`#=vdJ(T^D0X?< zFFYil8Vso$x9V9^e%BB+Q~GU>+Fzkb_{)hrgz|Z1wj{s)S3*nIm{;P!g_6GrTz@7N zU!*VK41J~DNP~`}in_SMTgqJoy&@r>%?rOGV#p1LS&S02Zs1IHAPYY%5;())$cvto zm>hickitg|@K!PM!bnPKWmFwBG+9;(W&^3a?W<;;nkh<-^0{4>B*fCVdXXVFa}Tqi z4@}rR_l2Yg6i(;TEJkEop|=7x*FLbw3|RXhwQkBoGxxhjx{RMZNEaL-{{f@jpQbmZ z`N4Z)B%I!icl_jo_@o`ZP=-9$j+X03iORv363=b)?3dK(e+}_#oa-wzi-S~SLkqXh zRcGC$OEp|r5TG6mWvlG6=xylw*O?Py{cd{=epW`8?WAm$pZOn$fV%XJf&=2!9GL+J zL$QNb0sipfX$T~-!MXLTpt!NFhp}!*+RX&p45tcCbX*#_DJol`QRLcLrtu5QH2(Fj zJ!ZmTep=aFghNWs>;3f2nDd=s#4@%hf}i^8*sEXa&kn}7Q96>Yb=Xd}IkI5DwNtO) zML6@7pFaJp_+C1_2kj(}sp(>aZM`Dhi8f1zPp@8KDTZ)C+1S*@DjV&kd&tI3dhZmQ za{X6|j8nB%9T^W^@s6rFWN9;HT?tW&I2*P*yiFK~ae*kUJc@}{&Sm_umT7fB8{v*i z0Zw>btK>!q-Nh!tV;;5$gSe08j8yyQrqCCdb6&v%#8V^=BS=}4!Io*XqzCijwmm4r zM49rSGOpR-H+S|D;Li4h!Zw+;|L?=OS>>)qeKhpwix zfcjgwiAUR(+dN=xa=dF)1KAJ%56^c`b%cz`rBwrypn&m$2Wrc!hfx7OwFgdp|6d@- BZ(slb literal 0 HcmV?d00001 diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/03.2.3.spatial_arch.png b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/figures/03.2.3.spatial_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..7a86be9525aef7e49cd173dd1b90cc4bad1a35e6 GIT binary patch literal 53858 zcma&Nc|6qL7e7u5dE1hZY>^DvvSeQpLiS4bQI;gez6}N;vhQTiQbd`Eu?__f zJ7bx_#29|B>Aifuzkj}u@8f|nuh+Tvo_o%{=brOC=SCXnY0&<4{Vy^yGFmN7wMS%R z=iAB1&S_qvAR{9mG4Is|UXXh{(zs7n-p9TUe7Rt+qN_qiRuNBq^86z3oyt|y)PszS zg@N=--pz+oCLz2>5);!-EX7oTfry)C+=Lzi~zjnq%gIBRRU z2sVa=a6Xlv-(~$wC<+r=za(E{4P~NI(V0%F_ zEp5c(ZLX>tUL8g9O_mvf>y2K@mf8?4LO6t+^6E~!Zx_9u)2>PTfKLw4Y%Z2dk-mZD zTvHi4!X6t>3Wgbz5A6s<74SzrJXs7^44M=i__+MhutM@^I~=aFC)Wu1=etDbbr-TJ zGKiV;btdg?GIQjQmw#0`)Hys6(nWC83%9XZ(7Qad4v`X;j*a@Te#0?=Zi`HNic+Le z5;hv@arW`NLz7;as<+eag1;zPcY=sPN)j9clrBiO%+u|=jzh00;^*9Pwg;@u3U#;z zj$}6FgL|3rKU(~e;QDQPKF8V9^7W?cinaICG}K3;$SE|N=NCtl1q1OdU0MABKbI0Y zxUvGU62`ie8WbikWK6s^J`JB(%G2pkn$lWCIcewK64X#nk?-VoQvUtP)0KWU$V%>x z-}k$e2n9un;PjKR`V5uo_cYfZv?a?2d+kz8{A4qsovNCayqz{pj`MA+5Y9j3weW?$uv=LsJ^)vT#Eh z9%?SA&K@$G*qmX#Z7U~im<=i_*gYkiC z%n7zmR(&d9*QAOzV}IFBRdoGkxyP`gOs67cC=}ZTYJff?9Abv?*Hm2zn3`hv?VQkQ zds~a$(mC|O*0+8=t9a$p-}?vq!}@tE4oQ-9*n-D$on^*w@8K@j`5WUDGU#(Uc;SlQ5kFDN%<35aLQ#wkc7wiB zo$h6`Cf`n3!Z_#UDLQkmrpC2pCc}|9@eRbVwrF8VjuyCDWsK`FEby$*8Er^6$KNVA zKs$(1f1m9fK>@Aj(2!ExLY%jq zf9yR|IPHzDGUZNYly5I}7NRb;=O$e7S+4ii(MFO#QUPezu7I(as_%j5bKW8{xg-dK z(Qk6(^E}uDm#QgSog#dkbPeUZ*R8$#=h<)We*X zA|yzI9HT-x5y;)rain^TAN~F}eB`AbUYxYFKbm*Y$eUBFB^)ErksSQyy#WVsUGg z%}Izj6v#&fg;~1c^Zh*qE1|WeO!+FjNzT`+qgDO|2eLj|^Dx6D!G?clBEL1s*hk0u zAl=x9q03FSlLx;2u608czRi<_Zs%A!*c>m0C;4;>6c@o0j5)jIz4>#uDr^aq%D+{d z<&pI^iyX#7eX^_B`$p-JqkToWwV^@|*!rNe)BRCF!9V0q@@g!Wo`#3cA4uc}Dq#7> zN?;V8r20iVEEOpGYr##!zQ1XqEnD|y>J`;7yBl$lK3nE4jdyb{#VZ}ZOcT$raBE{S zL}iRH&4H{udhf26E!oWHBeBp9x?B2VUK7TG0OMD4f(FY{fthG2B6qJqy*hZG20^`8 z64}#3g|HiOTAxp`8zMZi+X12Mp+;p->kc9oM@=b#hQ1x2LrDTqI-ty;2^~`5`xz0c zaBly`nRN?1=?z+#N;&x+X{YOMwry2w*8YA^ahoQW^Pc>>B++$m^Cd_qVAV_Xyqph9 zKTzsWP$%L2%)u4cPmJolo+Rm$8b0A6*lj8$+>MR8MdYx6|7^J72-t4Fgu7XJM``k8 zkUwu+f`ti)Z7<3~fl9#a^D38pb=)aFi;(`Fwko~jO3BA(I$UCsq=Miz-M&G+IsQf4 zs(1dE)A%jOH75O8vQS<@SX=zB&kak9o`iWKUYC-!xjjPCby}=Lr%!qF^S&Yll`^#e zG|BsbR=ODedsJzu2cc0(&-B>a_2SXN`)_lHAJ?BPjC<|hKr^jhdzRxpelV_&C%;y^ zsT?@&dD-s09V%%{wJk;ZdwypyXjF%@d3j|W(MB`>3!yP}=XNggM_H(JE$8feGZOnt zwC`>Sq%|$Foa36@tLRD{Z?ehcgJ-VRz?5{yL!%+4eHUGVRUV~93CQ2$)T&s2w#cOX z?XA_R=lj}D&$q`OL8yD%^A7d#xldgIUmtmu9thVXC+SS=Tk%Wd0 zG6OUJ3>4Zx(fs&KvrNH0^?nTX;89YbjHY@NshMV2}O z`vmWW(^EppY(rD5hY!3tC!5%plx~I!z_Faup2NC=*zcH{IVD(L>hcYGa+*9PUI0GsEvxi-zr48fJH)t20Eq_Hs^m+rffFQ#W|C zCopOa`w_j1>@E~q%Lr9*}@o79RqAvt&ta$oCb&0ounE1e%BhTE;V9BPprjxP&ee_@+@-cnXYxhCbX zU$G1V6>)H#t$_rq3u*kF9P*r3Ip_mikHLi~hdC}nl<|ccMglLusVDF4M7rMFo;_Xu z0)=dJdAumH<`p!D)qoeu594qCV76!6+)I96>aAkuy*QgWlsNV@Cp|CAnWY-nWlz`8 zL1}t)92x_Uc#*0@m1BhUxa=G6=UMpLC*a4}MNhUcf9dIjrVVjFuB^E6+Zg_zoEm+T zJRNE7$BhrtX(6C)zA$=sgsLD(8(3XHn1I3kxEn`bd9te#N2T<5`9qB^$*RwIONn>> zUI|HecBu4FCM-Mp55`^2bha0zsEgDqm*~`Q-tl?5RIM^h9PPXjF|>cff1Ohoag)yr zH5sk4o!LZRZcvjmNO9ypceW5!CAwqU%tJd;-6<|YoIo%+#P6K7MoB*Ju-nnHB8YeD z9*j?iW*gm+2G8XC9*nk?Df7*WZO)J8Xdv{7Dsi{q+Xk*z#KQcL$2M0~jZl$TDt6mT z2fha#yy2w?#%0DS)}^gylVhKe^{QQE68ccgy-edEol^d%^56Ux>D-?>90#7A5{L2X z*bTZ{@YBb7vUZsf#!fCMgz(H^m^hdywikweC@)&SR}*~wz6hNtBK$#605yz|=K=(~w3_DwK`gJ%R_jvB19 zO%Q7oqhzP;1h8j=IhXRZe6|0a3@nU8Dj)etKKpgJ>x{WN_^8zDCGq*;L&GP!Guf`r zA-QjT=@alClLWXe{4&_b4nBcj+*0JV6O(O(85S22!H2g|2`QmVieMG6KmV)!BrTqM zej)RUeC%Ob7qm_@sJyw5JwfS4qN7;_QqbZIZ>Kgb<^Bx9$ zI&^F}Yso3`G6j6EoXe^g|80A6p*lj^aC2xs==!U__J`el44)`3>&+^79*x?cRLYy) z<=^?>-&s@_G>i>usbti0F<#zabM_uq{jtZ$Us{uyQDV1-#d5;WogTI0P;sX>1+}bz zIAC4s^n6dK^sEdn&m^H4*C)@{!Qt_1>Ev5qW?HJk$v6XYL+g$45!_KqKLO)4E_5c9 zu6{_xjfyDnD_d`M%53yklFxb1`EH&Jg2f8|me!dq8lFFMIybVu91%hsG`%`%T$fx9 zK}MRTvq(WaKxl>cd1(#N1;+wD)}tz?^tpUH&D!Bu42aWI%y94pffL?>u9-#_WY6mk zU9PMbD6Me^8E_PdSQh7Y!u@&$hmBhYllY!EPC|XCk)9fOrGH&U<_bcp6cR2^8OyVb% zmoEy0#AnrL{}pxJ17$us7ieb=^7_AWzAjw{!EO!XU3nglOwlVd*q+oVdTV{q3JGe< zYV@jxV(OYx8b9#A0(*%iCQ`~|2$Y6I@i~HLjq+qXc%I24G!RGPbv=iLC4;3qjFV~0 zwjcR5yg=@UQbx&)M_su7v%5~pb%#i8*+_xX@F>2zr^D%ESJivD^=zZe$lQQIzrWEE zvehcT6Zs<#QoA-K^vR%$cP1jzOwv>~F#?{a`J0VOIcL{>NO+Rh8z-6P`y2CnC)zo; z<72gB)5-_xNi}br=FWGEw(PcP-2*h0a@ODB&?VMO@4iuiY&~R%$){)L@H^bClpYj9 z!os~yp*2HZ-XVF_qn^((y!ze4#_^z`=Ql5K?gGIa24$jc1KA|ZtQ~&wO-ouq$m133Q4Emjql`b{_I3!(437{V61zKJc|`t zHTH~?DwghX5PjR3yt#>0yeUJ8>i4=eC6y^*ALX>BC|J(%vC%LR@BodE zZy)j@_z2?{y}D!%-Fed8Y=^reT9Lu=@Cq?mBoqC$- zW63wtJhFkQ=Mz-!aU3@bFEX8hnP7#(1A2}r-aOi~$oC?DCd*pSb#a877#WCM-Y6Sx z3czRHb;wLf^cX!0XFe01BGgpjLh6^;DPdm_a{zAsGXZfKIjEm=Y^f>FNx=(Oy|D#oF2VX$Lkw2 z*2Mq-K$qgUIM%w0r~B9j96p^V3YlIzG-dEQ2K)+7>BNI(2K6J7cf3yoDSH^z#~ODf zAB)ub%Fd<|C81{_SC`rVR^N&V0XU(1-r8O3)DC{O` zV#mux!J!`hp!?;a@J!ano}-8c?7MnE5A6cEh<3qXXyktKzCy2mnb=v$rg<{NT6Y zhPT~;D@P64Vo`Eu z@Ikpk|Gorc-R<9|Y@#zEbH&&p-1q*mi7NY9yu9GhhJhWA@rT~ix9V8{O|-QYCuv`D z^sBW?y&as4zLWSt+0)EYCNZlXPG(>6jn5ho`p%5i3-;?iLv2ALX*o>hX%t^Zc7 zncYh3zuB%EVLfExlaUr(W@oc$5>}vXwsdK|3-# zqX$^t>oeBr!=^lg3QjNR*_QM{JxF$Kt8D#LjR@FCgB;un$-GS(4-+Gg8IKhc4Yy+? z`Z^J5HPv5Xy?4iL%>{9)Z-_{5=D{|#F}po5p4N7=^ij9!GPF^Df3vzJ5G)_PX3aC_xA|olYi!~6#(x`IA4oh- zDQ!6g%lBL(8Lp4`;dLIO(vyh}M;lgZiNqQRD(&1l)|dWk(nHp+h=?IORa#ck$OV|l z&w%H@|6}22#4u!?dWI{B?gu*TZ?0Z4nzCOg>dABO78nl19X~D)ng3K>)5mzYH)Yb^ zqO&Arw2DOKc0xXt)6zhAYCe1g*Cb4&Bs|C@1CfmxEmCbg02>FTJqE zPHnOc|37a)K35!b=MJGh)?;>r$D*~2ANv1$v$(Pc_-1ca^yB1LuK6UH8A!SK_Zz2A zYn@+`0W}?0I|pXjLh?(%-8rAtJC%G#lO^H@+_4Ku1Zj?UdhGIv``%ge6I6gqzPu~4 zd&ad}FP)p>9JDm%m8?wIzw2_Llx{kB5*X> zQvVe>N<4ADEHG%jURl%1&U&-b`wI1DxoO_VHwhS3!^RO$_wW#y(osg)&^QwF2i2c+ z@gMdy=PSgQg2cdYjEZyR>VPxaz8h{;>eg+4c6M)J^J8 z`+W)cm7FYU{zI%45D+l?E)KB0_@3p;Y@uY+f*$RmC;vOzP_9eEUg;-L zn(hwL=kT<2uQ40CQ@5Kh@&Z$M)XzSaFndw$E+JDQ+dSOpiMWuzqWIirpm6b5)dpQOhejC>u?5A>{G z8DwVMz`fsW@y~xrm{M*EP|y9y-|Nq0dw&D(wZQxFxO{!-?Q7rprrq}OoJGA~rT;G0 z@!y;79p||`ha1S!H~jo_HH`m`22UN@2Rd4274y76j-3BI>bi>+t02x7Pe+!i{IhAw zpU1NTqrY^g%@F#jr9-P?{k|xyw|~a{5%!@WdJu?B$kC#tq{o#fdX7C8SC_XRr)U^H zx#%SuDGgV|r&sDm6>OA7YsGkSYZvgBmix-;8lE3G8ds`FX|&8oY6XmT^iTVYg8H&A z>FO_nL~7@+7P+}UPARNUmhsOjUDx_tBbzAD{SvGn1JSdN+A!E}y?WP`*6s@Eq-zC; zHF~sk44G1-Bfn(kwq8{qy$TXjr?to?(YRd!qL?<|^?8>69zOd*96&cmYFS7nioJd# z^y$gFB7k-@sjA_Rr&lUg-$`&q@IYDgRAd|Hf&WoOnHr4N?Tr%)Z+YyW&xo$u9?|avjfST9phckZVekz zpBp&W#cn3H;3~06N;nCG8t+xg^*Z-_z$f0+c$&hH0@Z6`c^8EihJe`o|jX?o1BdhGS+$&U#G9y58KvK@cwzL z$Z;jN)uvtKnT^#zrp%cb-eIk-Uoo=7xi-wRcRJbk*ThAqEow8yRpk{WT19*vsKV!c zQSO`eTo+a_M|6l!lP^60VR0%iL?NPZn0)_RP*woD=UpMz1%{ zdB%_WZ0xJkbRT<+_brGd-Nlqa^)1?S;UdeqmrZboK6OWAM;+|`(@UqiltXxM#=H4z z?z!INJ?63%@jkOq1t90f)S-wLE*tiX>NCWvm`+}M9|+6M&n^7RD?7{%x9zfu;F@;F z+c+!TJFRyd(-*PCQ?C2N|HOU$1E)HN4(*IwvyDG61DA8BtG6-?;sX!vtu9uV02J*0 zO~9eCqoA5#a3R^GMrGE~(~pg4SS)INM?dJCL-W1^*eVk8TI!f_WPR8+?}fr1kRj{c z9cmY?<1o9hLGE2J`}-5+$G7PZI1vZ_0&v_45YPQBtX8FZQEvsG2>&Ma&r0a@VZWv9 zBH=@(RjPiTo#!RRO@X6JNpohvVFVyOxnqx6Mhg2SMm(Ny_iO#yU&Z;>*Giq4(%4UIou@*0nu)P6am2OYhk>;DdV4>o%wMH{zyQ26!i zh_V=F6t*w0kvtAF$LoPARwMUH2ccs3EN5j|61RrqKqA&>9`wIF%Y*$mk$dg?qt0k1 zhaE!tPF5~*`;v}3=EE%)ut9ouvE_H{Q@t&8jt?hgZj;MLE;1UrRpfS3^zd;)xG_pO z9&_4PmE+q+3}Lh)POa{E$7+oScNQXTNS0{}*yOfByRy$vg>n({L(sdlh7yqpH%&quh z`kCci$4k)o!~36xS;SseDd!PlP{!OskeTJf$4sxLjL#I^7`(Rk|MF7u4Dm?DRZ*MF zc2B+t5`uj>;WOm~qSgt;RRvG0V1s_cHzL_#E0d}Rs;twV`^R72@({XjP8Q4SpLF$G z-2IkQGq*YGo0PR(aW)U29V>spf{}RRIw{D)MRa~B2Yj|HKQo_k0)93Vh%3fcMgR8}k#a+B}?Q?ar*+BbdjIMKi2hN`>p_-X_Xi`}?f2`VGO$U$Q4U5IqGw^V4o|;*p8?zMlS^CQ1`B zQpi1w&;7CT8e4m_tlt=X;J?qnETx5CbVwOpW!;c1H5k`g6Mt9qRY2=!nT`dLg%e1K z?H_bI&WX(!qlHT=;oI^%Ztr3APC-*jw3vR|JZFW96qSgsqAEfcLbpR{%{7MtiRRHA z5@R?8V)LwwR^QaotIM7sb0<*5Vs#IXou?^8(%RExmsj`FC#!p=Hy*^|lEw@0%nJJI zO@OrwMffND-^{1OoZW>=L?Vkw=_}d8Lda5ic^>8ysrqXw{kP z68}z)%kX^dP`g4=%zk=so5Aeno0&z+^<`aaLTSeXW~(mTv0ss1d%$eqZ|uZKVNYuD3IoDHqI{WgH#RJShnmD)r|f8>c38H&rl zyy?{oe@^S1X1)hG`9!K?CoAYL#Ylp4Eh4#s_=^x|&-cZpN;Wb}vZZNYg?GE92{=tF zUV2>V5VvRuK7gs5Kb~HAleHCpt+nJEMr+zTs82Dn%oBU;kJndf#;8m8Z?2UoxvkJ> zMh|xRHE3gF1Vt_JZE2QxV3bA-w*+vI6wwZndNnGMh=iCi=EPLF!1fl_%X<5NiaaxF ze85pSjMCLvWZ7x3|ETN+zOwS>=r5*S+%@Jh@zVDPd54SfZD5bEORQc$Ulr(eUm z)(KGXkgZ_3z^6NkqtE{{#@aX7ve=*gVcD&_Qr0DRrf%mbh{Ez(#g2I@K6R1YA6dfI zw_)IHHraQ(f_|ufU(#Z9i!jif*A-7ra>}yst?El&RkyrB+L_OAQU3}*_%^YEfS+sT zfxk6bg-06NzYGddLK$;<=r1+_P#y>$TMpVQ7(C#0&a4Bu(F}CW16jEIEYbI&Khp7^ zeQ?5S1}eqt;<#rlU$0S50XUBohF;XlH{cBPk+`tzuW7YayQL`MQ2$Gz)okFd*apqI z{(ujm+h$vfeb}{8LD#78O+~@upx=!U?o0??aim#3NqMUrZ9y$0gEyxU@{qZhGZLJP;Fw9t}2$n~M5E;@d z4(uN(D~e5_tH04S1dkr5MNe^wUHg`NNfBRk8t89rc~}rF(ml(O`eidpuv~LE>~eng zcpu^t1XKmoj%>|zdngC|c0JrKDdGwq56U$db6hp}N_@p!Fp@@cI>#CV_hMs5%TM2@O~3*j||fS_LR!Akx-zu&L;sd+Bqb1ZNSPUzAgQ$G@G`z6hSgYzAjK#7&uoTYlg0D;V%DWG`3y`m#&uj+!Q7r-`tA zmA?usNE#@ne$`4XS?_*#4gg&VI#C_IfQbD2YQRH(V+RgObN3zHIS}OCsVI#iH)c4* z1DZOvh$`y0Y#xUvq(4=k=m&&%Nzr9S|F|*m4YKMs33#(fBymPU%!pCfE|$N0G00j5ibDm)(pB2 zmK8by*XyZf+?KA*-0m+rJ@s2egdGB)9$;;}6bB0qHE1$DuRuPnpX!ii?5zDV9_a8{ zP^+C2AYpy|nEyX*`xY;Wk-Xe%|4+--2OUWW2m0Hc8opKb^ou)6_A1h2<2pR2LUY4q zj#2b4Z*s>LM%qZezMx;Q>weoF`qr`oCRW1v1mO)wr~B~@C2(%QcmV-ViALjB{21}_@z5mXL{#WcH)V?Ej?EP`4+C- z@4WFnpbgn}^5K7}T~b#0zn|-GwzYo$T&@|s#T834XnZ9w@JN^hw8d(y^1c1()WY!8 zt(`yO@NMaqxiN%2l+^C8iyHgJlVz(Zm%s23SGGpe2z3{7oNCc9}OtUDV z9c@sP_4+p~j5o6A3^A)#$e;XF=4#cTv(`J82O%Y8pe!vdbgD=M1 zQj9mEniW%6PW`kI6MYP#uSy0uz5Z$Uxv<-%r%9)?o@Eo0-!n9!!Ig_k>Pf{+8!^ih zNg~S!r%Cql)C&doyXPB6@wT37`-bcpmA%3ihkA?y|0+3EgkV6C!Y3Bi8cYp z%2ru&ZOM8HVl#mNEG0qrP2^E?Iwc)Yw)?#4tIH;M{D;YsZ+bZ)v@15x@0t5znU#Fq zDca{t=QtteqAdObAfVEap|)XJpS^P4f`3gxMLyeW{IjV0gU7r(BjfPy-ej0p zhQw^8UuJpTad=iSVcz=tN+>~ESmTV}5$9Y-s8~O(Fzm<&NWfMJ{Akt zy$y#&qS8t{ktwf<9|gg z$qM9n|ElQdEm|O&x+n&HqzT4_**s7xaBZOH@oW@6I&KWEPgt?kY`qtkK`I$EGN|`` zReX(Y=h_txG?A&<|M~H09Ho*>?>Hfwh>-r$sr(f;%M^D-&!oVTV>w*LM!{pu0c`uZ z$8oFa(X7WKbq8NKN0~9jk)L^X*#jP{$+Swy`ze)wdX7qVJSQ8z3_y=P!Z@HVPU-Q= z&6;v^!xd6o^Q*}>-h6g*TsS=yHQ|*lHfuh=hQoSFiXUV$2-Z>33HP2oa+RKIP78ea{vUBGQc5wCaP)DNL-Lc7E>iV`T$2*dzZ>AL zpMADQUJ%cICpydTs9);8#qNiR>6r=-2q62_;}})1%n)VY{`>Wn90X7?GUPGfa5yQR ztFjpoygCb=8{Woh=ssxxwtvZA4_Wm4*FCA4&M^&%q)>UayC~skV{OCH^ZQ$oXVFh;TTLI{BsQrJd{DvjBVTE(L%;Td` z5psvcn7zCFllnL9a6C3z<2QQK7@bVHZMhr@i(pI2pR)p`&9VzqM(G|G*tji)7)vpG zk@y1r%U4xjp`%m7ZYbA8J3byF>(&k|hJpZNQ-q?u({QUPv+UE@Fa4?;Dc;?p30fl} ztKmD3Y}j^w)a3c{dPV*AOD!^u$Vi`+l=o56u-7rX%4E2{C=gdD`u1n#IyO1O)poJ9 zwTs-Xd;;)PxpopMT8}IV9qGj=*V(s7!*)3$Gyyd)*NaM%gwne@o{|FA$4_&$d+>Q* z3b(F|djGpfL=Ryq* ziA*AL=)^|{p!=%-S*`*JKEVOG85_*o&8s3eZIJ<>JCufZ?hYOZttgIBonoR^TC4QaFu z6VGlLKBGa>dQIj_7+t!V)z)8M84az>5Ld3nS51D_u>Oz+EO7|?|?mSM9 zNIAeB-yeG*X9M&wL&jx8jL{2y+)lutYWh>C$O$^VlAlOcY@5YN# z-b^5&XLG;i{z#15l1w@42<4o!w=r7wxK^CjI)esgV53xbg*ljr!qInN%fA+sP zO-mF56gzZr_ghA@ovqH)E!$}aHnbhTjXoO(sG@^|)b!`u7-b-r^02Tg*rfVZs(fz6 zpQ=oB^65|-WS@L$_0H?Ly>gWyglxEK*vzsJQdpWCaZ?{x*XA zGYq-AKhB3rJMm83?)pY+;I-9I@KF8>OsN^#VY}Jn(g0IER>_TRNAz#W{EUnlWWLdE zK@kJ%$aSg9(V0?d|Haln@uZp_-07vAg&3qPomy@B;y)936Em0=`=W!@+g5=dCUyvT z1jc?~d!*fgBqptaD~sJ@%T2%+-a}8tDj}c7jRv<#-P0jxiY^^;xb=V1#cq)yLOkAJ z*08EP{ZjWvD|Vu8V`3nAD4(EV%s67tX%DF7O87`BxRS7o2#?9&=$Sao;IMbQiH7<< zA4YT?7K2?WFKL=PpNyPO{!^1r=!@{FUB-P^BITVW987!@%ZJ0G_M@e9D-vy>Xx6L( zYFX3lXKeQn7@72iNpg1ap)t#EfqbyH^9sSzY0+=9;r99!q-;CJgB%lF7zS%eD}sP0 z6|hbfdX_NtzBac0ceWj@U|S?+0P?u$@F0RuBX?^4x^1$i`JHF3-~G(#dCM=`v4zJ= znikn{sT>Zz&o0;Z7&GtBTj>fBrIx7;8h-5%Xsl_zWfC6a&x9g#7lLq6;sbtgH1o;g zbb+fXs>fvLFbITt=;l#lG&Ip+{9oo3Y0Bv@MYxX&21 z>OtAOHD!=|V_-n)eJB+xTcnd6+uPW6{PiM#hkNWb6dkDnS(LnR?IK}sAsdvvclLsM z`_#Lhm)#Q|gaIelrdtb?`_35-WH>-Tp_j~L9j?w(zMpmT$Cw>2Z6`t}t<0rXwkA85 zA9jCgE!N&?$t0JEBxAfjxs&PyVd>XaD$k(vnD*o#w<<`hYa%4ySt(}V%o0jrvJGF1* z&reytV{|fTp=5sg75N)dIQ^FqwAIbYqat zd?;AzuN|p)k)NHlmV}ADX^vzUr-PhoA+xj&mpZ5!#ZII6z3vIfZd1@vlVtDVw?GB% zwT`P3oJkU3lIZ-SXt!{?+b8!_rwU{NpX;xl&Kcz{JiC;VNw_2?=Etq(YGLw!n5An}t@dAWcAd4x6|`UZ4=c{TuU(X`Z;|DK^P%&I+W`mu|s0SY4LLybQ@7b_NeCG?bY=fne@^mtBKE`S{mh zyru0Pt0u~lJRN)O?hJ{zgZ8T1OIU<{py$c53gF z-_gW*zJIOY=;-yw)&NTu9Ub$$)$ZVlS9`@2a|kg7?p-N2^RcVA?trrWtHI6Qz~3|u z$HQq}H$e`e96kT8*8@|2_e5_}l>+V}$!UjxCoriF9< z8`}yQie={%K@ZIA*JN#STxu>_{Mf+WW456;f69-dT)m~IDk8(HKikt1aIn0SA@<;? zJ5?_kF1)r@OXnW&&p8#$u8r3g#Cr_QJxla-^e{^F``hNY zskh&NbGlhv^K3A&=1wi^5ro4!BwGfkKX1Wf&79S(uPi)dgx|xiUi3Pj^CAz#&4n3= z7W@v~pmM^K%h5)=<x zuULIxLZX7-WZA-oy@lxv;v(=ap1SUSsb2}E|5Z#{MTn4q@&M0H{3tLfcJUS^wnb6P zvWmJ0u`tM5!GlUeqHkOLfM0Ao_AQ+yRG1|@eQ}uzNTZcj(FoYTM3CR#I)BuU-0_)K5NEeWf##1#=}3+!#{=7G z3RQF0o)}Y_y3ZD=X1VJ8$l= zAZy34?LFzjZk=X^NbKZwcf(1sM_zlSk50c?HH}qMf3+J|bjbJ!Ie#^_4ng&r!9D2Z zkkV`WtdNw2e;Ba*)mbZSzqL$ddHvhvSFNZZT+VQ1OEg|sK5il`#y=S_cOqb;?q~_- zj?KX;2pOw}sQx7Z+=2d_tT1RRV8^Aw&SqeLqNAY8TgoBt+2EL{K=ILO^nzm$lXbj2 zDNJHzr8c55i!sGj^f&o`{B=3zsM*<%rx(vWo^TxT5V#Qb@CeyylI}1ib+7YxYHC+c z`u;~|WW{h1>|DPRrVV|03_jC*b}BhXLFZ0>v`@Bu`2CMJUt!SpzAd;>;rXR@ixhfQ zk+NnwZuD#sB)Bx%I29Xxg*9k1n!XrH>3qy6%>~sJ^45)q31vFjCm&L^e+^843Py{6YJDrcm%zn+Iyy>0FP_3_jKS8VNM>_gym-#VSPjuZ?95BNa4eC^X{OwGuJ3 zY*N3LL`fG$=p*?sj03EAN>T(O^1{|4;x+VP4YQ@1s&Oz}Sps6*0zwl&@8kKUD(PZZZTOaHdZoxPHVUl>{qF~59P{=PK|P%&G^QTw9f&%+ zvU@g%RIENz?I%K&u>IFcRg8$W$u)e_nQBb{Q*GeUKQWWIIK@=Ls-+Xx+*#x&ZfUy# z>!Oypp4rDHeLXjyw^q?UgP?o-#~PM5&Y2G&$OD0lV4dBqxt^OpzsoH_ImE`{-mmj| zPlRvUaF1D2SE=|PiSbL=4rtiWvEtPcv^Nk8CTkJ404*^xJT@o%ihaepv$)fswT~T3Kva(TNPV`Pmz}z}Y>MPk=QbA{?|f&LM(RD94pL}hgNSXq$JRSe z>R0)u%`4L(W$;`ZA1SsZ8fGELr`QS5_pyhnsx|$ei7_#&gFtOK$UfWc0pe~M*U3C( zGH_w>77F`@$OTlaJC&ILHRx^o?0>E!l5QR@wOG zvow3JyW%Fq&cK#7?b^M>Q3j|45TxKd;+x^ z!OgU<|1gm#6nsajECHRGYT6tKb7tLnhtrJvd&aOe#OpnkoY{-4%yLUVB3G#NnCzn1 z%c|t}L(0pSWWaNGRkCc9=~Zh63*>s@fKqtGkht|v@b?g+jn>q{fjMIJ>Kyox*T+*vLpQi0vl+e%-aO(fYs zVH#81hrT^+Jm2MtjH*N;6F{5Ut4?-7{oXd(amxp&%bkD{YRhf&!*)w)ub>un8f~H~ zqIYK>7(fY9w`6nwC?3y^q6j;7mEQ)kyqTZO+rd244JKOkY7M?{e8f_m*6bUwlNKBD z|D*1$qoVwxaA7(m6(yuYP$>!NP!K^8P!U0a0T~bwhLRe(6&Xq?kuVSx1*8U~5g1aC zkQzeijsXT?i0`}@zq)sQcYWWw>#n=j`v=T>-gEY;ea_kEdG@Zd3xbA5nEfl4e5&sT z3v?_|{b8nK#Z8@R{S3>Cq6pJW+vfZVK*8=GPb*H3bvB*du6J6^jx=Gu>8pL~C0D9o zlrg(B`gNL&K;zoBLudGK-w}z2D_jxD7x?)qHpM=*h_%({s-+Kn7M8E-^T^qE`L z@+`)gyA094Eue!%nJ#2p;Tqh!eB3@867Y9D?tyx|S#HtV#k2M&D4wy%(|9<+if8s@ zdJOm8?Ip`^RE7#rC@A65&Y(ym|DYOho9;7ZiuvZU_GyCInf#EXC@xsuYO*nD?0dSoSuZv#o>O`Uk)Yh!V1}PFP zfd;d^1uJG?6IYG6^5c#dj10QXOud}K^DyUh`ws>tn2DdFf&StV16yv$zI&GMLfY6$ zvXj@ELV4!kiI)fFV+9tzYjXTU*$wl`)HlZ%&z2U8eo~P!OL-<&UflvaTgu2d>l&+D zh-8eqvnHl$-Ei>kVQ?YrFgw4N=yE)jdr%ihelO$5G|}wl?Z@=>`43l=3~?(k z-1ixt`IYzZBTx=?-aK868f7Loh~#AiY_IEz9pX`Xmf#iR5Y0=ljhBZnX!_(*lSGa~RoiOEdCve=>9?VMppw)Ncve<7Ybi9W`01acKwdJLIXhy-Ob7ea-2Wmh6OiQG%RA zBAOaV(%6iVjWK>S&X@{L9Z>eM%PC|WVF_|Vi{}>52@}L}s?ImZ+TikVrA>|9F|re! z&mFu?nlA32ez_E1cY9mD^dg6tz~Q3L-LW}5?b1DL>bwV^{xy95jHCZgf4phvTNdcw zpHXkBsL2JHzBz}aImIgh-R6x`3{e=t4^at5t_?M^b5 z&DecW?weSbCC5XZ+EPg7Ga4S4WMwl`7Z&@1(my|*okN|4oU5=n78w2cv3Lq~c1LV& zj8BGq9GZZidcvi8Ir?!$KZJp%b?Dp2QoTwLTtIz+W+yh* z;ZMtCFQU$RZ~FAQJ@gG!mF(jBQ^K{Be2S1 zHkDJ>JkG>1?&c_G>#{7gH*UFG=GIM)RcI`Gp37%lv5hiIOY!f$<&eg>&Cg#lv}@#5 z0gqC4a2e0yN-_a1#<~#AW*(onpDyMH-tYK5_|ixtsiRh>q(;vSW4tqvy7}~P-Zilq zPJ*lBn?8wK?@Q9ss~)XYuHD&pFL7%}1V<2ySBg3SU8MK^*TpMt>CgD~zh~#5v|1oUWo3Xrl8hO%j{s|&ZU1jbQ9-=5c ziB^ae#5UDMqiiUV7~`9IoQFAbmGr`xD73nD55>-Ja97)vi5^DVw=O#N1iQvn0t7_2 z^o8k@{JJLSPKt?$@rE2%(=3w<&r{+w{g|30m<}fOYnm+gM>+xUils=Q*X?+SP*i4a z_rM3(;8I2a%-;_7w8{^$Y1SsE>72BJQOw?iDY~#>TE42tw}4UXtg=*@X35(Vz8}J1?ic zWu9PfY&{EVA_ot5cdMd6{&>WkCfmB`ET1L^&*0yGT)c0Axm3%`qAb-LrIR9&MmKL= zb)B9tR_We*{8R+hal$JV=UyG&#w))E{+RSLwWwF}1cYPqlo@gn5D6yGXE{pa4nKGw zt5m_#xChxN*NWFf1{0*6F=OVUp1LT8=mA&GYuctV45}_Ky94)*KhCgi%^3x zE-N?I#^|MEg!08JJbV~f64rv<@nO6i#9MYZ$g6YsQLjM+W^nSQ#sDQ=gb z>0_k5eQ~8q^6SwbVujN)A__-(K|-}+2(kt>w->#g$olT6>Jo4bH^099=(pz2P&w&Mb}tj{gLSM9eF3~!fvkX4PJJ-DFJ&1Znf3kr3)hkvgUFQw=w*o~{dDKw~j z5o#3qqwMXhQQVs!s)t_BX75769Bn;kTq(Wdl4OrvmKdME@gq5YgwoS3a9WnIKbS9i z0}Fvn&Vku8?Nl}eOuKRDoO^`Tj+5)rk@Y<5!umfR9UZ*a9h>Pddd07{_2s_yu^2s{ zd1)GswJGbWNrlguR}s*yJ+zdjJ()dTL{nWhIZ17RjV{oL#aA5lwYuz=slSgY_DR3x zkGPy7ky4V;EFOfcUVqJrJe==mnL%50>Q6I8z19{ujp?u)RJwp}s?)O?#J{T8u@_9q z-9ev?DL9_-inir)vPYZJRh5p9t=0ZVGyHgLoj%EY2DeTLt=cqq(zw}9sSn2e=}zme z6Jt)_T%$_l^LerL(r-R*f3u%`_`sKCy-6KBiG5Sd67Yk2Jy)LRt|TXf*KNL z&u{LG+4gQhIGMM0=kimyi2ZIR{S-B`n3=<|*%`Ie+TNl~jSL~4$a8ZmU5Mo8s^O`W zEnl56_>V&GcQ8xi~=1}(Vi5ZvSJ188MYOFvgWA(I=RXQV39SZP;ELDTt>Q>Z_ z%ziPP4GjHzioY5?F0@LoNhrEf$z@%pV)|(L1^d$w7U|H9JkGQWrNGX6e)OAefc^3a zVY>3iX7rz3MWs9DoWEWY2YJWWO4kp7MXEsf`&$o;rQhJr-+pn$@Q*_nM4{s}zjqvh z3gd^FwwJlz@%)~k7p$*bf3&v?KlW!UID=|Fv|^U2q{;qgo5_?aaf&SJV~b(t-%?#V z1KKNAhoM~8=+BM_K!}Q0t6Kj|e~|mj0RMe0s7Vda(A<7` zyjv?}wfG!9eo^EZ^nck`)|7mkG+*d2nSH}8_4H4KkH&T5_8-}LDe}$m!zrtvpv731 zN7w>;sPq;?Z2ON*mA!Y%#k9k0LQy}+CmdnrQ{{TO%FA7r-rFhif%H#7y3;qY?Q+E{6SF0}9rt^{yQ60fu(Wni=T zK!!Wr>H6gsy_1a$QencY#G~OIBPHj(XqV^k5crvI3!Ze2=ek?Sl#rSB_Z82QTi@=^X1UPh?2U zo0{o%Im?QzdFn=?D}L**xDNyKNCxjWJE?Sar zq#gi@WT4MpO93lUm&%INC&=OAN623kEF}7*#h^U z0JC&JV!r>Dzibze&9Xi6xqTibUa|6Nw(4Q7TN(#xqcU(&)x8M}ReEcd+#gSVAi&%Q zthyyjAJ)k8n6`kc3!T;$XM4_s_bR_YUDkJZY13BubW)Cw7`tvMU8Scto$E#pUZe3+ zrEB5iEGa{9mCj~9>++GiZ$E$1q@~H7>z4elZ@I?IrT# z$eOPxaFx4bOpnC{O4xeexiL>~sn z8~4hX&XM72B~5kv-i;>4#{X_s35{5O+`Dbwfkq2QZteA)=KFgiISz08wCnO$PG56j z8}K_Ywhe0V-CPt9ZOR*aP+?sgBzF;s7VhvmdmSxe%4cPKGb{K@-VLkCpK?U_Z1;~G z>E#)%^X?U%thBj-uk#MSjbMA;YHP_2F0LKS9$akTc?VF9pvTK=s*i55hNpm==#d=D z^UH=e>A8R4aP_=(1AJo}Dy$UsZ1Z_?@qsw%-x#;87OCm%Dk)x=(wzYhqtEhuF6jgAutYtVfouQX!dMt=)ZWl&C~+?eee7dI5Bu{q5yaB zC^5Y-P&EWwSgg|T^>Yx%yNf_$6PqgKFgF3&5qXJzrtA{q9oNOO3aNt&k!jCxWjr)! zCn-y{%0pQ1+XoBPnV%fjC2)x6H*!_U05lSW)B~nVNV<}@pxa`^0`fllh^0!{CLS0` zpS(aRF5a)G=kkW6#>t$uO=N^eAyzC|X|0BA)5lNX`|JKyHIV2h{_f{=Sv(@SR21nf z8Rwkk8j}qwX*wWnxZM$qFc~k&EuWX!+iK9+YW>yx_ zf06sSFZ~n9mo7k?EqD$qjGs1SwP9cr9Pz}|D+;nvjChJ2A3;93^9`V83gC1dZ2rLM z%k=}QgxhF|5IcV7#Ox`_yY3?D7+)?dkr{R~2rJmdFqIDwHF>^E{!`Df;u+i%140iG zuLknV+%N{`yaQxxJ_m~G>2Zy&J;vr|uv@kPbQ$aYW5MEuk^Iq)$x4;`53v`!=+=OE z4{afLUUJBL9T5(yu?|gzdW_hMg>ca*Df9wiPNn3@CGVyr2yvB-4lF;7#rroRq--Cc z?O!qUeRgxQ#=brh2JQ+Jume&9Cs(}K{9??Tz*hXN4jl)XzB^tS8bzVs=-Oca5;hQFe=rr-I z`|L2lr=(cAs?X5YW4Fn6#D(5nX8alPRu`pI{J7tvYMTT!4fG4N8id~&JrE*?tt zt2kH80sV!Pte!2e{I2i47|0QgEf%<9*6M-3V$Yx(rl#o<2Z=94jYnG9w=89A8Jn{^ zeJWUt7bPJWDZVi_VQ%`!$gf4VLfNe8B0Z{0?wckhPfg)1~z$3Mt=EgO%gNsYMApicp6|J-r&Cl&iR;V$dYVs3c zIOF-76SEJGV_iaN=7!wwk=RBBfK}SpG`T8x+Gw4JqeXY8mfNqj&S~EpNqfr^n$Az}aQgpiK zU%;LPz|t*Mv=jr-qq#9?fO~<4vfDiBT>zd4@g*6!R+HGmsEiW9ae><6sb~#&D*p-v z%W?w|@yO`bO4QMhpZQB_uH9s|Wj%N z6;-6|c;b*mWO$Lrt8}*3{?;EPi>S4QbNE8S<>OI-uE<^yD*>~GthvRe%oz8dWAzAD zCEa)Ld;0=Y)E9R4XM*&-g&Gz28pTSo8@N`RG!_`JV=-=~AMW%kb(LQnoB$eu{c}{Y zTzh|4Pkff#_{My%4&*CT_5A)&GS*Ts= zX2~#xG?Ghh8t2sNP_1}5{;W92LC6y@o4TcajGU+2r!%qc6)j79yrWo#*nC|k%E(QN zd0*#GB!grC@T24Y-XYa_;aw{qUUjo(0yr);f|~BiD#huiwTxYFr%Cl%eb{~Hxcy+Z z;T4yvawf99e}tlM0?5#`1ytwX24ROB+{wn@s7Hh*%j4Phx82RxR=U7Bq$>e4Jh*qtqR5?c-ann9l>4z2J0)s&{;d+R}M!&%2HvlhXdvsUB@{ zw>+8~x)EPP?eu^CLQWa9^zI0THR6h?=!2u_{6R^>Kdna}XLm$<>zq+qX1)^(gJMND1u& zEn@&nFGF{TRgv7rkMsLx=@8n$NymiJ=Rt8~9#-Sn9j+jad+v* z+2$`|LkA11CBesUnLn5AZ20bKY}FI%bRIOowa@jk84@oNr#ZWQuC>NSCqHnSJOx2# z>yzHG`lKV^X$--i)knn-vH%d)r+%#OgSok92@UWx-=KZ~d5vf#`xfr~p> z9MuaVeLF^2CWYM%X2wH}A*sVG)ANDU@l`uQr(Zx~f6bAC#ew;h=C>sEgr$10>i$w) zd=~1dY?=gHHX?wOP>vj_*m~-)A8K>(y?we{HHiX)Cf8`(-j9dYvWU)10Mvac2(& z%LIC*FWV1lR|-9FM8&fCmGx4v)KHAavprJ-?~bvJCY~Hx05!(Dfc9i5P!6mJ^fIV!SnrpJoDW`5VSS>GI6+`PQ%+XZ0L z@}Ijqp2b=>mWsKE94u*uj#uWd-eke$0buYjh&cm1qdswT*d6Q1Rr`RZnt0&sn!M+r zGBU22D4@5r{k?>FonfRc_y8Jg33a%Kv)dMMWFnfAHJ6_Y9GTFh5|rY0?@BW378zvS z;Vrgx(Pb8?M-MqxkITL?LAFQ$6&TLZIA5LpJWbQxr|mPTLFy`SbDC5!cQ(&;ZOUr2 ztMWBB`n+*N{+#qKDLqovGFU@zS*V(sc|17Ch4z=wv3Vky&NLeLk0U=GM zPfXOA+q^55+Hv9Sa!X!+p|Nii9_Rg|O8ldYA^F?UpKEiv)J0AZ`GsCq?~RLy+?_Z? z3!B}_SvCU0`s_M(cJHT0XsR{py=}asvy|Ld5JzX-sb^8>BkFM~6C@ zFE50$zog_a9+mH`rWdl6oZ4oot`95frqEJH4lI3=**?dDKV=u0n05Z?RqLUt)U;sA zn-@QK$r^MEd^;&@xcQ9idNg2JAfykrC5LPnRw(3;nh<-r@f`V-V>gisQ9I=l7AO}C zGBRi+sn0lP=w7&Jka8AJeJXnNO2YUYw*B!<{F#$uhek}4^aSsb1f`5y0(w}srCu#BHUs7k*`2Wty=Y$e z^e%J$G%8RuF)`D&4#;napZywKtR^Oqzt<#;Gmo~AI!Wpsznk&?B98HcR%(Csj6qhE!Q8aKdojDrvB!WKePd?WyMCrv70+EqbkZ#G=Fl@uMjdF+^NuxwgHSjs!u ziv}xmu@UMK?id+8l1F^jA}mQT7~2c0jaC22Hd$Sm=Tz+MFh>CPtA+OC%th^&a86gP zfESyhe9P@o96xt-V5FD$y3Kw)oGjS%Qq=H~Q*yu9{WJ}?+iG*9V=J%ew4PXx71%^{ zeyx;~YIMhrX^dM;*`m=+FhgvyDpskT8%?DH#gu@z zI*BD_KJ{!Gb;6V%KX#|}5HI0jVWRZ=)PkwOg2AwfQN`QF>n%4m=2kFLe_K5y<$(A6 z8uVFKQ(Y8EEIA6sEd7*7@=^sgvANN8iWy0y=LT{{VPo;M@3W(e#a6^sg27Exw%f=; znG2~mDc?3mSv{06l<<^~0(kC>eb;L5jkyMGW`%yLmpYCqi)h_o{zes-cgBea(C~bH z5!Zr#Vv{$#X6V%sbKD5WZYA&Tj%qdwaU(Z$<|UnQ0V;AHz~uN+^Snc zjYbgn%FT)F=cUURUxz9fG2Xr@ZhtQ76w5sY+zPW>bE3v>O}lru#4+oXP2#6luTriY z9E;+saw2jx&1eT*BptRZ?dKJgybEkycmrHb#Tbm!AM~6;JfXS%(J1bIorV~C71k%r zLi;##pPQ&_;lcHHd~V**SsXeRqVvQSNyyi;Zi_Z0P9JC9-Kn2K+6FD?leL5@z_Iix z(IW})7H=99tYv<8WMx}_YR~G7d>B}GW5@f~-UOL)xF%ELDj6E7u0Ke0=q9`6`H0F5 zb3Mx*JHtMG3X2=zV{tj&Txgd6?h%;p(=U0a?-2@4!;~N2J*r zj$e*g8KSuu;rqnnqV$ZrcB#A=*ftxSk2|W%4N$GnY#*uOB-AJO4!1?B{%(tkw zGwr)V_wE)z3_nJAuEk2eeck$xEmU*z2ynS}} zaO5p!tYolILp_@AOObB~syyy{!{EyI?XxD3bxzxwmbo+O1oygaE!_cD8l;IE2!qW$ zYAM!9$5cM7Dt3;%%}5%KjzGXZicv{S^;4)a5!_br+(nXgtNi)yQkKpV zcbDCJ(Lb$dLk+GNgUG_mTac@9lZ|jGQxy>7rCZXJy->y?u!KKxOE!IIAPGU#Ax3tp zyU4dG$s0MMmS~vZO1ePjJ~xTHk>45ZiyzKKkesU9c&7}>T%J_&_MO;sgBFHbHX2?l z45mLd{~UHk{6mR^BK!`m%%PuV#;dO@Hx|+w%a|KY^+yv`KYKn(eQrK7m|3y5Sht@&)fvf_uW54TlZsiza@wqlo~)~};-AjFaVp*8+3iHOM-tPM z5$a)q*oqh32~xfNG$omfuk44;-+Bt%xu;CQYrAJ%i2EjnpX8H5G8?--eUWEoMcAPJ zWek0D-H#T~2N=4Zm6a_VQ5d&sX*oKXxTrlvioa-WVsi22H&WT%=0{55Ne>vW{4@cx z-Z)jQRq{4AaoS0JE>FFwRMwUqArBYVvl&!T!{olda?Nj`%FWhg2;SwYc*jvk5xipk zv`sFAQtJ55M~6&%mG+krmBOHuaKz1)##;0<`pkyS0bM zcW1NGRSG*|0xCP%`pl|Z@bgSh7sYa=axWi)!vw6~S04(l)xN}o-CWpkspJsE=R&bfS*RR-PiFB}(2)K#U?s2gL zdphFYIk+J5XI@`qFywuC-$}s47;;t|*H%R%?lmPZ`|dw**t%-dwiSXR@L?%H?=l1Q z^EtD@*#V)2USVVMTr)t>_+?dhy8>{Ez;j#J`_-0S4cZ%pz*GOxgbiF7A0)Mpsl_10 ziv0mg!)l&L@ryg}&WiV_@wJ;cd#}WGtD#m9tgw;>gA`-_=oioAz3}}&`PkDb+`J)D zZ(<)<^35wkG{#3fI*th|Q_;{aEXyz`RujXlaGev8z6KK^u}e3pP9}#g1bpt&S{yGl zb*hwHdr2qnm`@HrGnE-`%YF`faUqnxzafg{UPNS-Ick+Ebl$N1*N}dAzVXc6FB29t z>p{;-`h!%C-)|}vFF?#Rw6{hFq6lA@%YL@7bz6i+&4zILpGyE{P?kt33?^cpp%Ed< znhnPB4 zbcKP}1e}WZyRMiU1k8}E4fodZa>(O=b$*z`t6PL}KuR?=9Wx=C)ZT8KFPAt+XzJ@n zykhvG5^>g*{qvxn^_61BHo$*MKoAXTR&CorHi7|ey5Wn3c#nA$mSmdbq!~m_IeQ+` z3P1Qj0dubo3hfs5!0wWgD((Bb8Cy+l@zAp^#JRbM-?IZiyW%Bz; zr?U$eJWJ0B3-ja0P2=KC$!^9L)yk{G7dqv7;z86; z29|49jopXyO8P_P=8b?XfE7r62W0gKM5vKIqB`C zxlS6VHU^Ew9;bO+`FJ`$bimjt0v|03=qn!Z=iyZe3W&<>Ee9A`gpz6dpCDZ zG+B5%=%-?PX1^N8QC|AMYxmsX8B0VA;4hc+#{4zV>f-=$h*`Zp$0{}V^=9XCaSZd? zN2k~fI@oArV1>jR;g5D>14QV_r}>+#q%7_Q(Q=l;8OT{3Ex-%{_hf5t#mLR|Ar%T)#3xuGnaM7|yLyq>j*;q@$-5^rU|*w>5VWA7)KW31N;lE!adXaAHR z(C6`M0>`XHpWu}EW-z)`Cu7gIoTOlC-yr4=C`P;xQ%C2^RB12TDT;8BS_m? zX`w;4FN;MnT!CkquMPI*d_Q`!q9{|K5x1Q~J;1eKsCUpn)d*R)^5u9km$Acmwi_{lZ(b1|aTr2_j`OBVp!DQl2j9EE-r}GiiSCg5e z$id79!}+%oIwvv^dIQy;iJj4Our=n7*GQsqkgZ>`>p9_}!($IFYC@A)kml?*%_MJF z6gyzakBge;WxMDlDe^7nnY>B1@1I7eRK6B1m{fX(xbEU}pg#Q+#uad=>rup%A_eWY zS|(mZ8b$>wBqwl;LPM8r6Kzl0wAC0hbhb17*q4Y@X7uE>kp9bu`Q*cN?Jm1;oq#z~|9Z%_Upy?s z6jlugapNis>cx6gZUY^!JR85HJI7epm5##~nfiA(9vofdgt*R zi<^vD)Z`0QGMVTMmAp|c#U|GJnD?jLIfI@Q(_c?{KW(2=;p05TrS6W&Z~mKtqjp1< zL@$076lfH)Qy&SU;gw7XWnm#k(pTnAlpahgzr0r!WeW}L0uk}39Jk)v$PEkbk1?eA zDIc`vHnt-nY9TGs!-40$s#Dp`lfr=)VoBq@HXf8;IATEBpB))D9S^Y-fmZ#$c^&#c zv+$~lSzmdyy6r&g>3ja}D%94pTo5}AqH03+lUy-9#l@nh=lNAYPZ8&dH;F(C&$n%Z zc5o^l0`n43UhCMN_#OT)oMNbV@3m@Uo_k)bB#=U7e93frlfp0{oU}$-nCD85ZKGo z;hX+4Z=)KuCZ4Z9Cf{+fJhvOblhB@uzF2v4Y2YW44s zhOcya`l0kZA$*yD*h>CNF;$Q?M?O_JRpK?G8hMD7CqO@D_TA1@^8j@S;R65nJUa7j zA*0%*LI;3N2(1U4OU_R-39^av-QiKYDzZpnb}7ja-Ojr~`9}Z)eX2dzGjef4c{*em z7NHr1{nNEf+gge2FP+pa4TDnDQG2g`W(6Fgra0(+Ax;a37TPogsb6$8lB?fH+|~SD zpRY8Pvgau;;!n+dq_$E!^Lq3A2XaQIaocwpNZb=~$wt#%PC{ohZW zjLJz5dd2yMR4;ffgq^rdtd=4I#ui<`qrcsRW+J>u_Y>p2A!of1?CX}U?JMVKn!Z@V zw*ct9dK$7<)mmQqmR&I=gb$?uZqLXIGIDBHiD#pGNytn!3IcVwsIJ>P1(_RBs#<+B zx@|zB6q!R=aNY!VD-ZR+1C>2Zg9}0e82dXu*L}lTS@yOtvhtTP1&Be0lV$P{YY2LJ z9)=L9Q_@h0U7(V2VGe7A4C-oM~Wg@SMXCCFiw?DxUc)F&B} zChnvkCuOgBnbOWcZO>EAU87lA8GVEQxu&r_3{)|JJWXxB$0}gARDLj<@F`8asxNX4 z=RjqyilVDpUTpTZc(h%Kdqaa9VY;5DXD=Vuxx2(^oGuiC!~2|nU&H$7@52G#=e?$) zh6oK%TeePb|4L`iLni4p3L*|DtkmYasti6BGG_KXlp~b^aQyGRs%pxw5q;g#xa(-Y zpgFI+;OE|^9?r(9Eua;o~4ZPd{iI9eR$V zk!DvFgDkKL%sTC+W>d0AnnK!z+a{Tw-yOZfGaccj9$Hnaf~QtRcV@k5^?rO>jVtJ; zH`4|DX3!-^?vw}>E}WZhJ}La#!rtFv>HZ!Xzo+3ZS^iJ`8d@8#Ro(rcYUIf-BP35 z`$(3)keE9beQzL_tkCl)_i2Q#_zZ{SkMDU4`x50W!yz$#@PEHAHMsyAER~>3Dgkbq zy(M(1W-0$IW>8ap?Xm<@7x%*Pc!)OxJ)LLocg~VOvScG`10mO?kpRduMB}NZ<@293 zAsMVb(QK+a4Iqmn+~pTfKr9vT+;IJD;tH`s;}$9RTlXPzz2Jiqr3nh~fnW5~n5}%f z8zjHT}-e;U%P3Z7QU%G1!79$ zCNh`+n}Pc~;9Xu?>&r8imG|8Dl_G4A503y(&~J@1AA%Sqv1vkhP1T9iET8BB8nwZ1 z7(L}P^7A>C(Tgl#>777#dR1%78GrO6@uvqF30$hpf zke*kvRR;d>Zu*FL1H!6quc?dk%9AO;CUwRwowe)QbycQns?7RWhN45Q=Gz!Y_XLj5 zxDwBn(f6D}%25X3XV>Z_uI4U`PrYIHbzKmSN?r1vn>Tz-ETVEm6pPEZVebbwIp?^3 z^cRnaGsLaoHHjQl(UI=o-%6*Q^Cl3P$_}39-tV35Pgr|0{>>IG77RB9FvvsEGuljJU47cS`b zRiQH%W8RY1OIGj<3tM+K((Wde(#1Fer{7PXS5n0l68L8}TD&|748+qWKg&OPx(rfY z=bTUW-#_*0q+I*>LP;gEteTDk5pa8*)ChJpXH$bQLgZ)5)2&6_v|$ zP#DI`t(8zz!Iq;hHoaSob)PjCp1;H9WyT;L^YsQD$}Nq8dm}+|+q<7vb;*F4)!0eb zo!dOP;!90`g76_5g!$Vw*RstE13@*nm-RzN^i)Ohem6wK&tQ!(9f^wOQ$A%Yk5 z94rx(Uh3-UnlN+Pn5@>z+nfwOPJ#gTaWQ5m*0}FA@!1dDh4gO?s~YY1E8{elX&BFp zoyyl$cbZ?MNv1~;r}4}yJX%RRIekYpC~8y7-*z0c{-ApAYqj70m0=hW`5--N^_q<- zbD&s|C0UW249KmQFg}|@9~JRMFAf2w;_+!FlEL@bFCOd2yMNb@bLSjwX4aZ$P^+u9 zrc01_bLr(rqm@pA09!OcUR~3>TL!{t?tM!XDFD0p7E_xSK7}f*6nE!FMkQT6PfZV=x^=VO*0l2 zq?{;e|IKSTjD5&O54n#Y-4TCMXUvsM&9T8`V6J+5_@epy%?{G@ zqG=-Y%Z9IVV7C~6R}8uVvy!#^>K{XGc~*(vckdOpiyuNEc(_PN?hK4l^m0*ott#KC zOuss*iK*Cq5O81Y@0wrXD*JJ~i3n8)XmX{T4LnOswEtvC^!3)N{siuMwH0BcRtbTW zYzTm&m^7tvhOd_zpNHboW=c*srT)Xh~R-HceLLPVrOIyG-uf_ zqvpQW8z`xAB$9g+w-?#{a&>2l^NFeAj!=bLjlMZqGhVUo$M@WVXkT%KGF8ccJ0GFW%Kg?89ais#WTMEHLW@&6vT zDV`igtCFw_c;n^gzZ=zV76v9}h3_g)z4*_jsgzgchgp4>VKA!&O-3GjSn3jSO?3?`00VQn7 z%;_{%X()K~pcJyY>zh}>MmQT3Q=7SDZ0|kE_+`$ehUPlLJZ008jW7tGCZD9reSHN+ zusE|0hEG-7-xsfSk|Qp0kc-DF{@)cp!Q@w(qM|>Obz1e;`~Z~j(n;w&IsD`kMXn#; z+Wg)$3fpxOdX#%Bw1(Hnmhj$fRJYyA$qAJ(viC4~vf45ZDmql)9;LtT zK5Tgw5nsc~!`eGpDOr;syxrvSY<>1Ywd=m+-?gw;AjK_;KnpE@UZ)-_MtiTx0I_Lu z4ABPfn_lA6B(9tp-hr>_E7VCl${G)y$1}WccV3Bu^##_z_O*@&O=Tr4CHYLKa&Yqd zN){twkbedM8@mjA#qFB~gO=_=33I?uBRRvfG2 z6?41xY!!LQ;`MSjO)dJu@!F|)f9?6Kk)S=JQojP)l~~ti@6j^tyEq&PJY(L)(`8{d zDbbvCyg;Z^-Ests&3{(wR3Oo6ryf@zeVVjF3>j6+`ld%~72JO9gE$^UH6fx}sW;>v zeMid8pP+CxooqoO%7Eo96JiAi=pJ+K7Ud^Lz4>z1Haz=RqnFrS5;!lT#oj{+n&KAI@l9n)Uqa%{WO0&WC{o zWQqqMBxwVaXu$NR!hl;3?s4Cjk(+1msU4w7UtdEpKI&=?f)M~3v<^6*Drf=Lm>K&dxlzaj?>_AEKEovNfjvlfqj3A`d4-BioGPh0e}l&1%OJ(S&zWL?t69%C3U}BZ)gJig5gr6`77U5Gy0ZM*!Y_K@ zUq`BuP%#i5L3`L=-0I);2})p8OU{`2XMU~aD*_=gRln_ToyFp{Um6n+E1+u^Qh;LrBQlq?Ifsh-PFPk4z3JINY&}m+k5&9O!^h>{AJ31L2=)Bf- zUZUwSyP=B+S%ZrSMdPoHiN>`wR#sW@V<~86R-wku^Z7O3ehrnECtDtY&kBg|B@87! zhI{_w)#V82RjqBp(8I^u5kVG#wFglypamuFA@nNHHi5(R(lGBozB*)KK2%|UHTi^W zZf=zJ&(#Nz)K5yBae$eUzcJ-Z{Iy{_c~30Wf00QWL6N;}q{FeC9i9Gh8RFKzJ%qP1 zS4y|w+H5YKHZ22DI5cJQOxK2OQ|P4P{X;^OO^mAgNFCbm^rn?0VI+zO+pel1UNoiCWcCgK_O|ZSuz+~q7aHGWJ{54?8I0q46<)C z_ATq!hY`Z>^BGS)J>TE&z2573ulK+AeJ=kz)BU;cbD#U%=bZbjTf=sxx0u7GZw^h| zAK^`0jNM2hG%W@%owPCj1LfE~3-5o%^dC^rmNdBGJ~e@7rex8BGiILjiQdZK=59+b z$Gsrez8RsEj01I>%y4dQ0Zy8U&08B~SN)W>E$<-lgYT>-&+I(beVEh&%|^+7|Bcy@ zOcDC}%XKv#sx2<2zeZz*OHZ{U^xYTYmhS%xN>5$QPs&QDh>Gz>=K}=Mfp@Wv$Jx`@rM8cjwQ1y^I&t1X_EgaPO2HpW zJ(Vebeo^QY*K0bQ7Gnqu_QknNL&hrNEd`kFnY9VPxAP2#+1nKs_4pzaaPJ3dyQr=u z;+K@@3615DQEm;HRV;d|X<~YBORbdZOeeM=KOeW=1hjb(q)9HY!X-8QL^7$pU6BQT zxaczFwY&Cu+I*Y9&c`9#A~qmzxHqfjWqp`YphH6j_!d1ah8%WJp-uN#dTmS1$3cT( z2K`)?Ct_fxVloc4dE!(u?wTikg~t+U&uaox)=mQ9OU*x$b_d#YTPwFx)+!A@ikbN| znBUWZk8E{o+-ygisHt^AfOoUiE-+ z!xO(uzh)ig<_7&)z?Y0XCk}VrUs)KreqID9<8Yf6w_3y<@!CAmPvGQc1(UCuzdu+B z0UR8uAtYnZH6qkn7iC#n`OJ5y<|jsUv_m$Lt6F5tjfoj70YDkZeE7L-;ZH8-#Ws=S zi?CmzOT19}dS9tA=#l@qti-r!ZN<;?ax|b1k@9h9L~W6=_xBpG^$z$;Ls{e-`A|om z-|*Id1NyI~JxSHf#jai}4Tnf!+a=6t!-+ixoQhs_8wa^zZR}V20EgcDYUnDL!>F+fBURjp^(C9UB zn$<)`;nD8NL*m+r=yC7uh0?b90a``^do6K-T3LnM6!qwqn(Uv|7`D%yUwSSUfI#T_ zGH-!x?i;(d<@{MX*-sD`gfEAeZBs4HmImj(Z&f`okRl*cs&K;2*LTq+DZUZ9*5xDJ zro&{w_8S=u9_?@h`{l{{Nq*>^lSu|O7v=2Ze_Q2lELwJGB3 z(^^YO(9t?|hJfL&o7+G7y{M5iIzZWSH-YVr`3{5$-DH=4@U81Q#uSn16K3qI%yT>=Mwz$P3mz@uM$R9R=!HMAPl9;* zhHeBJJwpp?_O$#y-h!Wj-akqiY3)4s^faH??7X`hx#4X2f+fvuG^0&nO?bqOOeKH5 z_jp6G8g{bhZvGBChykD9&;wOtpP&!(Z^C&hqWqns zsPdD;ale<>Z20+Kx@P2og7;A3_u(@NPH2L+*V+Q>xjx79rpXM5Y2nwGg zz>Rp=^0}sr)`5%3J$CdO!1D} z`d9*FIyY!BoInhMD%xD@74-gH57F7NH_0WFMP?yKUx&HLvB7n&U&`D0t^5Ct!=euD(FD>5_dH zOrmfbTRRsS6+_-x4l5U(Q=Got**z>SJojS+v{QlQNa>L32`f8-;#7-P zr?^f|io0Ee2|cB_-%?9LA|NOvs;X*(4HN=NHyA1iOnd$s?zJ%|yyzaYC@8YSqcg ziOuds$1-}|2EF}%2j@y3poVKF4&^%*SPDpOHH=$KzfoY5&_RermJ#yTdy7jVk(hUI z-=ShH&7hEXHvbdLSXiM{+6bnvymUn=(Qw3x^dqb^+pI(3>nDu4oH2>~SO@HIwYaO} zwD*xF>WKNyol+IBaK_t$2Y8^K#dHizrCi*WL5X$Pw7WKLDSvJyZ~8||UzK06%v(Vt0Ue87Zy)+$DiTRcmTwO)-CUa-J@i4Tqunf}FX zo2j-y@Fd422zq)}O-PKMud&VM&esobkL^8kdO!Q7aX!-n=x$IiyF*Qz*W7(^@5uN~KpL z`U~uCyuY$y2tV8CzeG@M%UFvgQBs3#Au^>dU<3hCh|+vSaI@*{Giih}u%jJDLJ zq_hV6J0H0+!Z`f3l(B)YZ2=zZdwqbuo=kn10MW%<7hfCdNvF%`+0 z_)rSTEOGg-RiMlf2e;BfSi&l0$(rBAjyyR-q>>zUHTEe;6PS^q8dg5>tu{QTlq^mS zP!iCf%ziL+o0j;grIaeeP=w2%7v>$J*Mx$a78(9a<(y-k3l42X;U|+<|oiu%|!pw^z@L-#i8da3jj`A*jS3Q$Ua{!BjohNq)^aZ*sZ&`<3Nn!-oA}3fa5L}jr8~u08 z-y8!9^D2#SF`@d!6$Ufu>)%MpkF@S!Q4glkX63=%wgW`L^*c@-&qUkZTP^LyJwx6T zFPU_3ZLetAojs2!bvWmiqdtBQ=RS`&i&!w*)rSpcbv@?Qer`6pD512 z%=w+IY0==s?M@3!rQbrVtV0=DSS+_vv-fN=#uB?OUc?V1*XOO@9T2neo!1^YkVlk$ zGJ4O|oXSy>m4$MM>Oe75t^vZREh&X2g3`Kc@hd@2UfO55o_FXGS%?tRh1#1luO4|< zBnZV^P;(Td6Ljl)`uSja)ge*!@YHQ~P&g4>R;N7emWwt=6L)>C59BhLy#Su@-jDI3AfK1XVM=G)@C01Cj z0v+8%q~}Xe{s;O>5b_Z*vyy*Byj*a` zGf%>epj>cxX!O&A%s2vxF^3^$1C~ZgaDCl6)>Qgcf)E z14V})aZq;kujJqC7X>Q&XimW6wWue+K6X>jWe6xBHp`or+e@Jbd%;yza?4>4UfTAf zjhB03{CaG@z{_5aotebkC;rYdNibX0ABmY}_4&M#-ck++%*Lk3 z*+-)9JjSp4G{`07XbEWNRxV#vL)6E=2TyLtJ{G%lZr>494OwQpjb4q`?;5umpj&fluKg~yMDkVm?h8JUUBv3$JsqT z&TVG2Y=A&O$7IN|PZ8UUEOS_B2bvCxx)S%{lUz3-8$?*1uk|DM-n--^)sVG$Jj#-* zL#XHR2AazOPF^gcv*dnApxKeJBj?Ing|GrrRu-l#LxvzNX;ID*WFB;m`ZW;&e9Fsp zjS8hu-|HFT$#nstFjt_kxEPleWK}=OM>eb?e#xv*q*AY?!lP%#n~&SX4w1AAFKsdX zECl)l zhz(#zaMG$|e_&)WEYGbkR2AY7gW7v|QI+3lZRwILioU*Xri%Kv2wW6DXs}E7dI1XQ zRsZa>O2#KM_nPpXAR-ki%?z2sR9q2zGcAs%E6HDrIdk*pF~25)b)9u$HqO2MeU>0g znP3e=;R{esIMQep19Wwy!6(uX0C*d;C{75Q9`w&TztaL^&|ldr}&AuxmRQL z-j8DFr+rQDoZPf!N~_JFzw=Fs&T+BnWqJ#GM?qF*jIV8ufSPK7>101uysZN2(I}0k zFV)FkyQYBoojP#oEj@WI&GEr$#&LJF0EG-mb2@!#Z}+SSmYf+5!Uk#&fc4EE+<>x` zYNxNT%kq~-QiZ_LIzG7gFc5%MtCV<9sSOLf2>>O!1U{v;OULQMVJ8lcM|C{rP{ILZ z8T6db#Bn!jGtyV%sesjFG5-8tny=+>v8gHfSh>_pFq(^MQ-RU4;%70anu8jV%|Mzl zP@2W&k;T&V<@F-ebtu|B97SsH>@KE$9tzCr6LtTkfR+80x!yXJnU}=G{}A?HOq8#b zj=qoa=vR&rp!>$x2HOr#{V&e@BxhsL+8ZC?@lf=FQFnUF{sKP|1cY_g(?P&rIlT1U zYeZtk?oGc{fJ*4JY#L>dc!0+a2lxOu?^-9Uq$-b^o}AVNgGUB`34u+y!6+N=M_=l) zL@}N%Vnec_HC@4ramRl3Kbd9Q_6Qvk(s#!l*(*7)w|jhPq}KKMK2YH6YXZ0>g>AVt zzkEq=fr4C3WfT5vy17^~UsT};`6CCWS;()Lh5{|)rUvgXuhXNGZqGq_JkiqGee@x& zH~u{$fGBCIhC*3ejDQ8&U0Le04DZhBPAx3WO;(2&P_X^i z)larRbf_AvRKM^g%kU$!cs*JPBT4X`fkZv=8uz)*yLZ`Oi*pa&BPQIiXR*F}`FP$Q zvY4^kV67VBj3f16Jl*ba?eVsooT&Jk7^(mb4pI?q+wG^E&P6h4PmAwnYHP4zJrnh9x;9f9{Si=9T3tUL$rl|(7s@8eT( z3c(fXNi@s1bRNma?YA0oh=a1$Go(A+HD%1o_NqmDV;Mxz-Hn1ZvEA50!%H=L zO|bxb z&%;fW54Zp?+E(BCrmCHkq+Go~dhPQ@Gf8O|RRuUvA$U+I!FYJNzpE`WJVyAU%el3k zax@ZiwA&{q-yrt(42InQVSa`A@?UP6*=i4o@+CLc7?rYnSO*=T+?VX8{=3s#TW-X` zN9yKze2<%D9C#|Kl2whBob;a+({9hn5?UdVZqng$v`~LRczpcDQa+Er?m=QPi>jdT zf`;GxYbK2(!+BtG=L`kOE&)2Fwe}xRReE-JY#QWVCx4$rr1#Yr^}_wuIksoL{o>=z z5b6vQkD3L|yw?AIm}9RFa>&`E$HZMfVT77pVSbY<+qrGk!_BB91nNIWR&@TejW)WOcD?VWeS4`J&A+ew_{;XGG_9y= z&D1tAcZ&^%s<4xBK{ zfAn%~@f@{DE}-@Pc>gBAkbZ_v?FV(~Gj8|`*LZ&gs2s)q;{k|@`424fEX4&78Qui0 zu^g?RCqfNxTPBqd;%!lc&v&McNU76hvF6aB`*&N^HgRH8@#rRqbdvq&_8RV)h~v~4 zRgGB4=e+OlL*1U#rc-3Of=&NdpI0Ad;;78sx-?vQ+*Nu7dRl4BQ@%N``J@m_h8e2m z#$I=fUU-xkEX{x8adVAITQGrvR{j|$7MTUiJ35sn8UHxvK4uonAe!RDvaSyrUzor* zv}TDv;tfgCA>XLqj~g065P&e$Jciiwn6PnO7hm*Lqa7d^F4vv>z| zpE=^6k2t&D@9z@*$Wx~X8H_GJR?fwk0`)I3?Z9zP-_0h{8`p>DBud%ebgw+&@#S={ zX!Bj;__Zx6EK)Js{7S4Gi^V{R7ACkXTvKs#hsO`-Dz*V83`W_A_3+>iX>zmhsq%xrw!AJIJj zG|g|vO%cP)bw@n%e2H1)LaHUy#11;?)va=yk!-4!;c^V!5#pjA=TJT9R&493#Rrt3qMwNGx6K!kNHt0`3uW-yu?6BVfUF7d@2^gn~$t; z=-ag0fEdS$yG3vYwP-BcyIbmnxKMu?_2vWZAYT4c63^6QPv5Z!kyKwFXAh`sF9}aO)sV1ZBsj`F z19{;t?L;qc9zZxV7bfjBf;Puma6y(c>mT!%&VK?HCk*FxtVRUilAJ z=1vPa?h=dH7uw+$tcz)Fl!QKAHp2ihPBIEXlB_8_`Rifpts1EzpVKRQ^9~2%A|Uq&UcY~`xQV@ z{G=!Vp(vv9np>CJqdw})*KTlKOoke$Y)YUY&)ujGV{PqthzFWhNliV9w-IZbxQs6P zpNv47HN!XRW3PtI8Rm?dPYxye4wrpvoXuz0@EKPthY05RJI6vx)l2FA^U4_PuetEJ zZP;1kUyJUDtMhp2HfE$&{GEW!z?pHu%1J#>BqqLU{PIs-Lq1YYvn!96>=yg~^GL#3ydQ5w+ zCQCdBjN7S<95XU|duE2N+hl%$8u=~~VRUkc%)WJTivd0M;$%ssx<<`q38`JEpalz?|A2=0Gk@WAp**97qpav%M|a(aCZ*dGUs<;ss@z%q3Q&G>8gn&A zgC=knZX;ZW%zO-7d7aHJv<)v8D0KTdz&ku12>8jY_ZoJacf+^IBWF=9S-a#S?~ZB_ zTN+Rs(2~7APXMYaak=Ntj9#_G^ED%WJ}{1#Ub5p+nRdHC?s4Io%*Jda=Js#p%U|O= zB}G*s5v+VV*nQ68hzAmmNYkw}>!DldS*Uf_ufp40Fpmgc5S|tA^C{X?_l{=RjcT-H z+v&TGTB?3o^n9NQQ*5Um%#S73pR#gY!7$f6eW7qSw0+yMbAZn13Ed5RM1lOFC&KO9 zM)&x$knQ|K_obF=-f&C~@CuA$+tn^qGOpcB{8lof8f)pV!m#*Oxq>*HvFEBri{}5w z3bD9X(&2Jy=_;+C!~i5!NDnhCQ1avT5vPu1dmxX@X)JZ4V`if6{B1m7Ae_ROX;*q@ ziddzHI$pPi82Aac&L z1&`|oOj(UzFe>MtAu)gphVs6V(F0U@`DMxWBLtH}OsBQXuNb%bd`n z%ga-#BE8-blxI3dZQ!E0)6-#f!HZ`j_H6GhM3ylA#}iTbNxnk?L!uVfY|0=8uM`>k za5S4hh(h-4|C^Cc`H4L*8h3RhUo?$*hxP*b#p`s|UDQ?)kJ|i%L=EgpJT1uaejDP} zjRzWr+|Ex|si>UXxs<3rar&}d_07i%?Ief?De|25O=Je2Nt;9eCAAKTtsg9c{Hwr} z>9LeLpHJFU&!JYb*vg4k?4IF&o6~{-R}M(|!zgymxNq^nR&P8ev>9!={;0!1Vh0K+ zEj6ple*&mURm%(nifvI(B>Yz!dvASe+(<+`A~ncTd|+HJt1!HN zNSwH-Qqx#M1Z4ZHKyJzcpur)wRHs32*1!sV{fVS1saDfB5dkpcxzX_iIOT~OdSwL9 zQd2x}%2eqJ)QP1f82LbHX8nkVwdUy2a_)b;S&i4Ws?NLIHM=C$L=Cm+5-FLFgk|8}=!NX~ALE0dpoexT1)cE0T}Xfw89pWQB}Dsy*Q$T&#xz->CQ z*fUg2p{!R&kKTFruQP5%&)9cq_w7>>X~4|&d&`qt0T1hPt7eEx0|0#8zMldDZaA=PrE8ZHXcze*06kf52O~4k&CN} zsZ#hoV*aL?N?;gIWfhBr^e(|>WFhyZHNmqih`+Aal2qw=WskB34v-A%xsyV4^?RF; zJ(IZG^@UP)NuO-8A%&N-J7c6||O#tkQBa`cWSNj`*WW8ABA?R9YU5$2a*Bf%s)P249#mC04MpX z(f2StpYUJj^cFV^yhWZDzD*P zO;{4vT7&}#QIRG$1=h%|oywofS2*%reN;J(fdidHqJ)!p08YNIHE$q=B9~O$_3OL% zFvrvrB|}9U%|2JLBLNd294ak6)t~aVl;8BtEc~?}Hs1OaGAV!~=d6`8&+5@kyaIi_ zsn&E3PBrpWx$U#H_Vt)sTKf)h<#Y9`e3s(lW_*4SlKxZ3~hV@!Y3|QGTbMYG% zrfYnb+wrtVbNMd6P3PZE6JDEoGsKp3d!=dpc?xh}e$K4h&-mw;x*sH$@|-i(ijak? zki|}=C@?Mf5Xiuwzun@u_0j!EKl(Z z0}(!Jdkrszqq^W~=(y6m--6zvPqGdAY%iQerJ>fg>VXMnfRj+*S*sFc6Pah@2LkHD zZ)x>*2Z9cSN@U|dq(r7xkZPZl`p(J=z@c=G)N3ga3`^bFs56iZ|pTJya zl$l#`I2t2U#BliEt6=$RpQB!WZV=(86#26%xsp&P&oz;<>-E|Qbjkmg0pJxL-Tr1I zJTI!ZykeVu+VU6SoG}x=-5X@pW=VdAB7sKhj2>sO+Z!X*;}e}mS}RwpQj`VxkNy*e zQSfSCP#n(U*PQyWM5G_>cLsKHNOK&JD17&F&_Gnh5G9N&TtRvY@!h&=V@E(YQT1mh zv%7Q2CIOd~B~d0V09^aPTX&!R{#^V5_V#fdU;zjN2qmvO`i#s&D-{}X0&~!3X0<32rzMy(Uw0qrRAGk^bbKW>WzXf zZ2?FB#cyAkL%61^q?$B4#!cPy=}TCFus@xyX;4fWJp{y8`?t#L3;MO+AN2FhmRKZvkVHPwm-r26(>*Z8W8QSx?~ zG)?7sHhX=pwQvYZvy${qh&Ts$PO`%584uxmr^ z*18G}P&wxopOq}gYfxQ)5ief?=~L-B{c{U~+)l!B6p zK71r_=7wms#TpOxm(J{`GDEU=JmlqXQIx`2UibOaXKwYnD{l*396fqXzYzQcYRlTQ z!5ju<;eq<6W;XOkfPm#&!uKbH3WkQiW8mOCgH%dHzns$BpL*#|QyC+N0j$?Y8QAJ` zKCh62uZ#KGs)Cw@K&DOj8=Rw=TZ#V8Ner2+vXay=gO|kuZS_IdC|tSfE-o=u)7l;f z?71+*rAmyeSZzT$IYZBQU}YZJ0GwJ@6$NDte^%o?LouJNu_%%M0g7G7iRD9vG5AU7 zx!^f3`ufnIuuye<1FHpGp-jOWLVo)GgrSizTr15#kX~`g*q<6ajo%o4Sy%fPZrL%M zK$`g9;IJ5=+dv*?!0<1wv`&JWK71taH^%Uh#@&h|oT2?m?)-YUGO`!I^9587A0vBN(2eeF@Do^^7Dxdwt$Nr@AwPPp!&Zq+KsDh*3=u2@x47{{ z;MZ~OoZNLHKHbgKxsKEL8hXrBS8+1hwxa3$Sl|(n?Tw{2@?wOYk_zR7wpEF7$lR*~ z&lC+|Z-|7Yu(PcVH|Ay&Tw1RZzuY;8$z#2%66quLeonDeaNtr~6{E51yz)$89)0Qy z1B~yF3k*mn#8|mbFZK-HCs8jpo0w8tHWexX4*d@*168#pB{g0{4AAV)Lz^yiYABYi z_nH(YJY40nI?sCk1yDpz=gUg_ZRbm*^RGp$+v@g@XsOUuNo)GB!^PPhX({5BfJZ5< zERv?pjdzkYj`j*wx*z{pFEbgyfxJ3m)%FdfmS=#WO4Xfz&A`YI_!7^Nt>al;-iZ{* zot|SP=04V1Nez{}hQD4JlsZ&)J8G4rtY>?TtgO6!R2ERW4MxsNFOt-IGyvpgnoiO!O!645MgVed$Y{EQvjX$^C0%zMpV>7}@wR=J1`X{s-FoGI90 z0i>6}lc6)6(=-%ll1Q0LI6iJEAz4XH^OFLWB^>DNddMZJMaJ7NtG;I>-3c}u?RU4R zPLXN?_*+e3e#&8r`Ueo)h~ccFSoF~G!Y>(mF!y1id!QMi&pkOD7O5&a+6NV+#zyHt%@sPj7bwr7bj^60jY}mfy)}fjLHOSC1uN}Mk zJg0R2YikT!CA$LcEQvZ1&0a7=K(${+C6%$Ss@^~p!DpT@MR#qF2|fcx-f03x3M%f8 z{4ZNUMpGlw3Vz`@h_}CJMt^JUz%bF`?9%;rW_x*4 zeR9Ru$wwh>&s-7K3Xp}a@ysNy`NB066~ND~1HnKbcidLibBlCl-#WFk!-dkcgX)?t zKb%$m{IeV4-3R+v=~wJuRQaH#qNZ2_xU^%3z{gvd@$?PL{Yu{ZF$&)bREC4>Q}YQ*{75S^Uqejt#7<=$PZnvVg(Y#3y{O2N7B@60~8;8 zNV;Hw=t!c@hilkHF0|aOxXnpduw{g@UVwcpO=L0H!ur{m2Z~<+Zn@6Z5e0H%PSx(q zbp!K=KB5?()pU-vXA3=L2{U7$)T$f0p>vvUpPGFJ{a1vBi=%-96G7voq?Ws(WuAhi z8t2lWH!-TbwYTellL{?-{8IJS-%t%qwP<@C(HWj@fmgN?w(Jg>Ff4u5Rr^Fw9(T>4 zT$Q7;p@42OZaJ-yWaUWjNsOxcV#sk(i>wil(`F`WKu0Wm{H@chYwUdJakMT-bN`j( zfvSzFl`SUi^HE15H#&}15G?b#`a;{wqZJPcy82&ITU*yn2fUwuiN`AVneDXa4XP;z zJayVT;mY%ue@#`U(636)&quLGe@DLOY?{n@inx}?w|rBKss8 zOF$NWJ(iUSi1jLXrwgvasIwC&Ldow@09XF;KEOTkHq*t0o3F4Xo(g*h`ooL0ds+PK zy#(KsinyH|lK+Qekv|MPl{*Os*t)SXRHcuBmH;IXQ`>ocBhkq(@wd@0GQJe^_n#z+ z_D2+y=ve!t+0T{$Hx(2@ziIMSl?4mat;u`ROS6#;^k2xSg)@r}66fh0^qp8Q>rKv{ z>p!yP`q{p(#Pc6^_Oen>403C-{&oYll&Z9nkV(?Fso;vHo0dN$MQ!bzk5}k(_aws_ zQh|dvx57McqBi)v%VfOgT3N=`1w^j37Kc}|8*wBEx5Y?NPv3Ia>3a&uT?%9UmlXfe z#V8E)AJqjA7Qnk;C7{SsvB?U)_GkG5WN(0P4^~;J&~gXyalpvMhS!soGS#ZkctHieDE=Sk z4!|Hqt(IU?gwZDH#%(py+qPeIEuy5Gy|`u@RT5O8TI#pq$9F=(=e=wDelEo>Ho6B$ zssQsW8h=Hv%j|!*1fjgQlYVC<{aKh|HrI{|1C92jG-QL)dNBOZ|2C8i~D(B+l5TeydX3au|SFB<;=jn(_`990&u{#st*w;ORzHRnlHP3$OuBYne(W`qNAoWTQ+4#R7*lo3GW_ta0Mp*N zv7G$`BA|UJTse|;cRPUi4?Av4%u$WKmZ@o{4?$?fE+OM_wp?-S|kBTqC$ zO;o@1JHTUpO;wUA>Dz8R)3dz2m~qG7nQMY7>f^U+bDo*A0XC2h{66`>0P9U`?ej|7Ssk6ArLrp&ne$65|7%euSv`0Zp$vW0 literal 0 HcmV?d00001 diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/prelude.py b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/prelude.py new file mode 100644 index 00000000..aef437cf --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/notebooks/prelude.py @@ -0,0 +1,159 @@ +""" IPython prelude code """ + +# +# Argument parsing imports +# Note: to guide animation display since people often do "Run All Cells" +# +import argparse + +# +# System imports +# +import os +import string +import random +import warnings +from functools import * + +# +# Import display classes/utilities +# +from IPython.display import display +from IPython.display import Image +from IPython.display import HTML +from IPython.display import Javascript + +from tqdm.notebook import tqdm, trange + +# +# Math imports +# +import math + +try: + import numpy as np +except ImportError: + print("Library numpy not available") + +try: + import matplotlib.pyplot as plt + from matplotlib.pyplot import imshow + from matplotlib import rc +except ImportError: + print("Library matplotlib not available") + +# +# Try to import networkx +# +have_networkx = True +try: + import networkx as nx +except ImportError: + have_networkx = False + +# +# Import tensor class +# +from fibertree import Payload, Fiber, CoordPayload, Tensor +from fibertree import TensorImage, TensorCanvas, CycleManager +from fibertree import NotebookUtils, TensorMaker, TensorDisplay + +# +# Try to import ipywidgets +# +have_ipywidgets = True +try: + import ipywidgets as widgets + from ipywidgets import interact, interactive, fixed, interact_manual +except ImportError: + have_ipywidgets = False + +# +# Use rc to configure animation for HTML5 +# +rc("animation", html="html5") + + +# +# Convenience functions that just call the class methods on the FTD +# object created below. That object holds the current styles for +# displaying and animating the tensors. +# +def displayTensor(tensor, highlights=[], **kwargs): + """displayTensor(, hightlights=[ ...] )""" + + FTD.displayTensor(tensor, highlights=highlights, **kwargs) + + +def displayGraph(am_s): + """displayGraph(am_s)""" + + FTD.displayGraph(am_s) + + +def createCanvas(*tensors, **kwargs): + """createCanvas""" + + return FTD.createCanvas(*tensors, **kwargs) + + +def displayCanvas(*args, **kwargs): + """displayCanvas""" + + FTD.displayCanvas(*args, **kwargs) + + +# +# Parse the arguments (deprecated) +# +parser = argparse.ArgumentParser() + +parser.add_argument("--style") +parser.add_argument("--animation") +parser.add_argument("--logger", default=False, action="store_true") + +args = parser.parse_args() + +# +# Instantiate the Notebook Utilities class +# +NB = NotebookUtils() + +if args.logger: + NB.showLogging() + +# +# Instantiate the Tensor Display class +# +FTD = TensorDisplay( + style=args.style, animation=args.animation, have_ipywidgets=have_ipywidgets +) + +# +# Create a runall button +# +NB.createRunallButton() + +# +# Extra utlities for use by the tutorial +# + + +def uncompressTensor(t): + f = t.getRoot() + uncompressFiber(f, shape=t.getShape()) + + +def uncompressFiber(f, shape=None, level=0): + if shape is None: + shape = f.getShape() + + s = shape[0] + for c in range(s): + x = f.getPayloadRef(c) + if isinstance(x, Fiber): + uncompressFiber(x, shape=shape[1:], level=level + 1) + + +def getShape(tm, rankid): + return tm.controls[rankid + "_SHAPE"].value diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/.gitkeep b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-buffer-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-buffer-stats.sh new file mode 100755 index 00000000..2bc5d4d2 --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-buffer-stats.sh @@ -0,0 +1,7 @@ +printf "\n=== Buffer ===\n" +printf "\n --- A --- \n" +grep "=== Buffer" *.stats.txt -A 50 | grep -e 'capacity' -e 'Scalar reads' +printf "\n --- B --- \n" +grep "=== Buffer" *.stats.txt -A 80 | grep "B:" -A 20 | grep -e 'capacity' -e 'Scalar reads' +printf "\n --- Z --- \n" +grep "=== Buffer" *.stats.txt -A 100 | grep "Z:" -A 20 | grep -e 'capacity' -e 'Scalar [reads|updates]' diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-compute-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-compute-stats.sh new file mode 100755 index 00000000..2e460103 --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-compute-stats.sh @@ -0,0 +1,3 @@ +printf "=== MAC ===\n\n" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep Computes +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep Cycles \ No newline at end of file diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-summary-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-summary-stats.sh new file mode 100755 index 00000000..83784c9c --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.1-DUDU-dot-product-summary-stats.sh @@ -0,0 +1,4 @@ +printf "=== Summary Stats ===\n\n" +grep "Summary Stats" timeloop-mapper.stats.txt -B 8 | grep topology +echo " " +grep "Summary Stats" timeloop-mapper.stats.txt -A 50 | grep "Computes" -A 40 | grep -v "<==>" diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.2-SUDU-dot-product-aggregated-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.2-SUDU-dot-product-aggregated-stats.sh new file mode 100755 index 00000000..dabad12a --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.2-SUDU-dot-product-aggregated-stats.sh @@ -0,0 +1,21 @@ +printf "\n=== Buffer ===\n" +printf "\n --- A --- \n" +grep "=== Buffer" *.stats.txt -A 50 | grep -e 'capacity' -e 'Scalar reads' +printf "\n --- B --- \n" +grep "=== Buffer" *.stats.txt -A 80 | grep "B:" -A 20 | grep -e 'capacity' -e 'Scalar reads' +printf "\n --- Z --- \n" +grep "=== Buffer" *.stats.txt -A 100 | grep "Z:" -A 20 | grep -e 'capacity' -e 'Scalar [reads|updates]' + +echo "" + +printf "=== MAC ===\n\n" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep Computes +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep Cycles + +echo "" + + +printf "=== Summary Stats ===\n\n" +grep "Summary Stats" timeloop-mapper.stats.txt -B 8 | grep topology +echo " " +grep "Summary Stats" timeloop-mapper.stats.txt -A 50 | grep "Computes" -A 40 | grep -v "<==>" diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.2-SUDU-dot-product-gating-aggregated-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.2-SUDU-dot-product-gating-aggregated-stats.sh new file mode 100755 index 00000000..1970da4f --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.2-SUDU-dot-product-gating-aggregated-stats.sh @@ -0,0 +1,23 @@ +printf "\n=== Buffer ===\n" +printf "\n --- A --- \n" +grep "=== Buffer" *.stats.txt -A 70 | grep -e 'shape' -e ' data storage c' -e 'A[a-z]* scalar reads' +printf "\n --- B --- \n" +grep "=== Buffer" *.stats.txt -A 110 | grep "B:" -A 50 | grep -e 'shape' -e 'data storage c' -e 'A[a-z]* scalar reads' \ +-e 'Gated scalar reads' +printf "\n --- Z --- \n" +grep "=== Buffer" *.stats.txt -A 170 | grep "Z:" -A 50 | grep -e 'shape' -e 'data storage c' -e 'A[a-z]* scalar [reads|updates]' \ + -e 'Gated scalar [reads|updates]' + +echo "" + +printf "=== MAC ===\n\n" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep "A[a-z]* Computes" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep Cycles + +echo "" + + +printf "=== Summary Stats ===\n\n" +grep "Summary Stats" timeloop-mapper.stats.txt -B 8 | grep topology +echo " " +grep "Summary Stats" timeloop-mapper.stats.txt -A 50 | grep "Algorithmic Computes" -A 40 | grep -v "<==>" diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.3-SCDU-dot-product-aggregated-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.3-SCDU-dot-product-aggregated-stats.sh new file mode 100755 index 00000000..7550568e --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/01.2.3-SCDU-dot-product-aggregated-stats.sh @@ -0,0 +1,22 @@ +printf "\n=== Buffer ===\n" +printf "\n --- A --- \n" +grep "=== Buffer" *.stats.txt -A 70 | grep -e 'shape' -e ' storage c' -e 'format' -e 'A[a-z ]* reads' -e 'Rank' +printf "\n --- B --- \n" +grep "=== Buffer" *.stats.txt -A 110 | grep "B:" -A 50 | grep -e 'shape' -e 'data storage c' -e 'A[a-z]* scalar reads' \ +-e 'Skipped scalar reads' +printf "\n --- Z --- \n" +grep "=== Buffer" *.stats.txt -A 170 | grep "Z:" -A 50 | grep -e 'shape' -e 'data storage c' -e 'A[a-z]* scalar [reads|updates]' \ + -e 'Skipped scalar [reads|updates]' + +echo "" + +printf "=== MAC ===\n\n" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep "A[a-z]* Computes" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep Cycles + +echo "" + +printf "=== Summary Stats ===\n\n" +grep "Summary Stats" timeloop-mapper.stats.txt -B 8 | grep topology +echo " " +grep "Summary Stats" timeloop-mapper.stats.txt -A 50 | grep "Algorithmic Computes" -A 40 | grep -v "<==>" diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/02.2.1-spMspM-aggregated-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/02.2.1-spMspM-aggregated-stats.sh new file mode 100755 index 00000000..df921b3e --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/02.2.1-spMspM-aggregated-stats.sh @@ -0,0 +1,21 @@ +printf "\n=== Buffer ===\n" +printf "\n --- A --- \n" +grep "=== Buffer" *.stats.txt -A 70 | grep -e 'shape' -e ' storage c' -e 'format' -e reads -e fills -e Rank +printf "\n --- B --- \n" +grep "=== Buffer" *.stats.txt -A 150 | grep "B:" -A 50 | grep -e 'shape' -e 'storage c' -e 'format' -e reads -e fills -e Rank +printf "\n --- Z --- \n" +grep "=== Buffer" *.stats.txt -A 170 | grep "Z:" -A 50 | grep -e 'shape' -e 'data storage c' -e 'A[a-z]* scalar [reads|updates]' \ + -e 'Skipped scalar [reads|updates]' + +echo "" + +printf "=== MAC ===\n\n" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep "A[a-z]* Computes" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep Cycles + +echo "" + +printf "=== Summary Stats ===\n\n" +grep "Summary Stats" timeloop-mapper.stats.txt -B 8 | grep topology +echo " " +grep "Summary Stats" timeloop-mapper.stats.txt -A 50 | grep "Algorithmic Computes" -A 40 | grep -v "<==>" diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/02.2.2-spMspM-pretiling-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/02.2.2-spMspM-pretiling-stats.sh new file mode 100755 index 00000000..48a6c59b --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/02.2.2-spMspM-pretiling-stats.sh @@ -0,0 +1,28 @@ + +printf "\n=== BackingStorage ===\n" +printf "\n --- B --- \n" +grep "=== BackingStorage" *.stats.txt -A 120 | grep "B:" -A 70 | grep -e 'shape' -e ' storage c' -e 'format' \ +-e reads -e Rank + + +printf "\n=== Buffer ===\n" +printf "\n --- A --- \n" +grep "=== Buffer" *.stats.txt -A 43 | grep -e 'shape' -e ' storage c' -e 'format' -e Rank +printf "\n --- B --- \n" +grep "=== Buffer" *.stats.txt -A 150 | grep "B:" -A 50 | grep -e 'shape' -e ' storage c' -e 'format' \ +-e reads -e fills -e Rank +printf "\n --- Z --- \n" +grep "=== Buffer" *.stats.txt -A 170 | grep "Z:" -A 50 | grep -e 'shape' -e ' storage c' + +echo "" + +printf "=== MAC ===\n\n" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep "A[a-z]* Computes" +grep "=== MAC ===" timeloop-mapper.stats.txt -A 20 | grep Cycles + +echo "" + +printf "=== Summary Stats ===\n\n" +grep "Summary Stats" timeloop-mapper.stats.txt -B 8 | grep topology +echo " " +grep "Summary Stats" timeloop-mapper.stats.txt -A 50 | grep "Algorithmic Computes" -A 40 | grep -v "<==>" diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/03.2-conv-aggregated-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/03.2-conv-aggregated-stats.sh new file mode 100755 index 00000000..f9e046a0 --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/03.2-conv-aggregated-stats.sh @@ -0,0 +1,31 @@ + + +printf "\n=== BackingStorage ===\n" +printf "\n --- Weights --- \n" +grep "=== BackingStorage" *.stats.txt -A 50 | grep "Weights:" -A 26 | grep -e 'shape' -e ' storage c' -e 'format' \ +-e reads -e Rank + + +printf "\n=== Buffer ===\n" +printf "\n --- Weights --- \n" +grep "=== Buffer" *.stats.txt -A 63 | grep -e 'shape' -e ' storage c' -e 'format' -e reads -e fills -e Rank + +printf "\n --- Inputs --- \n" +grep "=== Buffer" *.stats.txt -A 120 | grep "Inputs:" -A 40 | grep -e 'shape' -e 'storage c' -e 'A[a-z]* scalar [reads|fills]' -e 'Skipped scalar [reads|fills]' -e Rank + + +printf "\n --- Outputs --- \n" +grep "=== Buffer" *.stats.txt -A 170 | grep "Outputs:" -A 40 | grep -e 'shape' -e 'data storage c' -e 'A[a-z]* scalar [reads|updates]' -e 'Skipped scalar [reads|updates]' -e Rank + +echo "" + +printf "=== MAC ===\n\n" +grep "=== MACC ===" timeloop-mapper.stats.txt -A 20 | grep "A[a-z]* Computes" +grep "=== MACC ===" timeloop-mapper.stats.txt -A 20 | grep Cycles + +echo "" + +printf "=== Summary Stats ===\n\n" +grep "Summary Stats" timeloop-mapper.stats.txt -B 8 | grep topology +echo " " +grep "Summary Stats" timeloop-mapper.stats.txt -A 50 | grep "Algorithmic Computes" -A 40 | grep -v "<==>" diff --git a/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/03.2-conv-summary-stats.sh b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/03.2-conv-summary-stats.sh new file mode 100755 index 00000000..92a04c4a --- /dev/null +++ b/workspace/tutorial_exercises/03_sparse_tensors_2021_isca/scripts/03.2-conv-summary-stats.sh @@ -0,0 +1,4 @@ +printf "=== Summary Stats ===\n\n" +grep "Summary Stats" timeloop-mapper.stats.txt -B 8 | grep topology +echo " " +grep "Summary Stats" timeloop-mapper.stats.txt -A 50 | grep "Algorithmic Computes" -A 40 | grep -v "<==>" \ No newline at end of file diff --git a/workspace/tutorial_exercises/04_compute_in_memory_2024/TUTORIALS_TO_CREATE b/workspace/tutorial_exercises/04_compute_in_memory_2024/TUTORIALS_TO_CREATE new file mode 100644 index 00000000..f89d045f --- /dev/null +++ b/workspace/tutorial_exercises/04_compute_in_memory_2024/TUTORIALS_TO_CREATE @@ -0,0 +1,56 @@ +""" +## Basic CiM Array Structure +### Basic Analog CiM Array +### CiM Container Syntax +### CiM Peripherals +""" + +""" +## Complex CiM Array Structure +### Dataflow Options +### CiMAProcessor Variables +### Variables File +### Variables free & iso +### Digital CiM +### Example Macros +""" + +""" +## CiM Components +### Component Definitions +### Provided Components +### Data-Value-Dependence +### NeuroSim Plug-In & Memory Cells +""" + +""" +## Plug-Ins +### Library Plug-In +### Adding new components to library +### User-Defined Plug-Ins +### Creating a plug-in +""" + +""" +## Building Larger Systems +### Top-Level File +### More Architecture Levels +### Examples of Larger Systems, Mix&Match +### Leakage and Power Gating +### Read/Write CiM Arrays +""" + +""" +## Running Simulations and Design Space Exploration +### Running Multiple Simulations +### Editing the Specification from Python +### Design Space Exploration Examples +### Swapping iso files +""" + +""" +## Internals +### Include file +### Defines file +### CiM Processor +""" diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/accelergy.log b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/accelergy.log new file mode 100644 index 00000000..dbecfa29 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/accelergy.log @@ -0,0 +1,234 @@ +2024-03-28 11:00:24 INFO _ _ +2024-03-28 11:00:24 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-03-28 11:00:24 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-03-28 11:00:24 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-03-28 11:00:24 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-03-28 11:00:24 INFO |___/ |___/ +2024-03-28 11:00:24 INFO generating outputs according to the following specified output flags... +2024-03-28 11:00:24 INFO Please use the -f flag to update the preference (default to all output files) +2024-03-28 11:00:24 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-03-28 11:00:24 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-03-28 11:00:24 INFO config file located: +2024-03-28 11:00:24 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-03-28 11:00:24 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design1.yaml for architecture info +2024-03-28 11:00:24 WARNING File /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design1.yaml is outdated. File version is 0.4, while the latest version is 0.4. +2024-03-28 11:00:24 WARNING Please update the file to the latest version. +2024-03-28 11:00:24 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design1.yaml for compound_components info +2024-03-28 11:00:24 WARNING File /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design1.yaml is outdated. File version is 0.4, while the latest version is 0.4. +2024-03-28 11:00:24 WARNING Please update the file to the latest version. +2024-03-28 11:00:24 INFO primitive component file parsed: +2024-03-28 11:00:24 INFO /home/tanner/research/cimloop/venv/share/accelergy/primitive_component_libs/neurosim_components.lib.yaml +2024-03-28 11:00:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-03-28 11:00:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-03-28 11:00:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-03-28 11:00:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-03-28 11:00:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-03-28 11:00:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-03-28 11:00:24 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-03-28 11:00:24 INFO Getting all estimators in module +2024-03-28 11:00:24 INFO Getting all estimators in module +2024-03-28 11:00:24 INFO Added estimator DigitalAnalogConverterX2XLadder that estimates dac_x2x_ladder with actions convert, idle, leak, leak +2024-03-28 11:00:24 INFO Added estimator DigitalAnalogConverter_C2C that estimates dac_c2c_ladder with actions convert, idle, leak, leak +2024-03-28 11:00:24 INFO Added estimator DigitalAnalogConverter_R2R that estimates dac_r2r_ladder with actions convert, idle, leak, leak +2024-03-28 11:00:24 INFO Getting all estimators in module +2024-03-28 11:00:24 INFO Added estimator Capacitor that estimates capacitor with actions charge, idle, leak, raise_voltage_to, raise_voltage_to_from_non_supply, read, switch, update, write, leak +2024-03-28 11:00:24 INFO Added estimator ExampleRRAM that estimates ExampleRRAM with actions idle, multiply_accumulate, leak +2024-03-28 11:00:24 INFO Added estimator PassGate that estimates pass_gate with actions idle, leak +2024-03-28 11:00:24 INFO Added estimator Wire that estimates wire with actions charge, idle, leak, raise_voltage_to, raise_voltage_to_from_non_supply, read, switch, update, write, leak +2024-03-28 11:00:24 INFO Getting all estimators in module +2024-03-28 11:00:24 INFO Getting all estimators in module +2024-03-28 11:00:24 INFO Getting all estimators in module +2024-03-28 11:00:24 INFO Added estimator AccurateButPicky that estimates ternary_mac with actions idle, mac_random, leak +2024-03-28 11:00:24 INFO Added estimator InacurrateFlexible that estimates ternary_mac with actions idle, mac_random, reset, leak +2024-03-28 11:00:24 INFO Getting all estimators in module +2024-03-28 11:00:24 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-03-28 11:00:24 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-03-28 11:00:24 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-03-28 11:00:24 INFO Found estimator plug-in: table-based-plug-ins () +2024-03-28 11:00:24 INFO Found estimator plug-in: Aladdin_table () +2024-03-28 11:00:24 INFO Found estimator plug-in: dummy_table () +2024-03-28 11:00:24 INFO Found estimator plug-in: Neurosim Plug-In () +2024-03-28 11:00:24 INFO Found estimator plug-in: Library () +2024-03-28 11:00:24 INFO Found estimator plug-in: ADC Plug-In () +2024-03-28 11:00:24 INFO Found estimator plug-in: DigitalAnalogConverterX2XLadder () +2024-03-28 11:00:24 INFO Found estimator plug-in: DigitalAnalogConverter_C2C () +2024-03-28 11:00:24 INFO Found estimator plug-in: DigitalAnalogConverter_R2R () +2024-03-28 11:00:24 INFO Found estimator plug-in: Capacitor () +2024-03-28 11:00:24 INFO Found estimator plug-in: ExampleRRAM () +2024-03-28 11:00:24 INFO Found estimator plug-in: PassGate () +2024-03-28 11:00:24 INFO Found estimator plug-in: Wire () +2024-03-28 11:00:24 INFO Found estimator plug-in: AccurateButPicky () +2024-03-28 11:00:24 INFO Found estimator plug-in: InacurrateFlexible () +2024-03-28 11:00:24 INFO Found estimator plug-in: CactiCache () +2024-03-28 11:00:24 INFO Found estimator plug-in: CactiDRAM () +2024-03-28 11:00:24 INFO Found estimator plug-in: CactiSRAM () +2024-03-28 11:00:24 INFO +2024-03-28 11:00:24 INFO ENERGY ESTIMATION for ternary_mac(tech_node=45, accum_datawidth=5, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1).mac_random(unsigned=0, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1) +2024-03-28 11:00:24 INFO AccurateButPicky estimated 6.913899529408735e-13 with accuracy 99%. Messages: +2024-03-28 11:00:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.__init__. Arguments used: (tech_node, accum_datawidth) +2024-03-28 11:00:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.mac_random. Arguments used: (unsigned) +2024-03-28 11:00:24 DEBUG Why plug-ins did not estimate: +2024-03-28 11:00:24 DEBUG | AccurateButPicky with accuracy 99% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | InacurrateFlexible with accuracy 50% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | table-based-plug-ins with accuracy 0% estimating accuracy: Identified a set of tables named: test_tables +2024-03-28 11:00:24 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class ternary_mac is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-03-28 11:00:24 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-03-28 11:00:24 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support ternary_mac. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-03-28 11:00:24 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for ternary_mac +2024-03-28 11:00:24 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support ternary_mac.mac_random. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverterX2XLadder with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_x2x_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_C2C with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_c2c_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_R2R with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_r2r_ladder'] +2024-03-28 11:00:24 DEBUG | Capacitor with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['capacitor'] +2024-03-28 11:00:24 DEBUG | ExampleRRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['ExampleRRAM'] +2024-03-28 11:00:24 DEBUG | PassGate with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['pass_gate'] +2024-03-28 11:00:24 DEBUG | Wire with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['wire'] +2024-03-28 11:00:24 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['cache'] +2024-03-28 11:00:24 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['DRAM'] +2024-03-28 11:00:24 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['SRAM'] +2024-03-28 11:00:24 INFO +2024-03-28 11:00:24 INFO ENERGY ESTIMATION for ternary_mac(tech_node=45, accum_datawidth=5, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1).mac_random(unsigned=1, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1) +2024-03-28 11:00:24 INFO InacurrateFlexible estimated 3.4569497647043674e-13 with accuracy 50%. Messages: +2024-03-28 11:00:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.__init__. Arguments used: (tech_node, accum_datawidth) +2024-03-28 11:00:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.mac_random. Arguments used: (unsigned) +2024-03-28 11:00:24 INFO | Unsigned mac_random consuming half the energy. +2024-03-28 11:00:24 DEBUG Estimator logs: +2024-03-28 11:00:24 DEBUG | AccurateButPicky with accuracy 99% estimating value: +2024-03-28 11:00:24 DEBUG | | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.__init__. Arguments used: (tech_node, accum_datawidth) +2024-03-28 11:00:24 DEBUG | | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.mac_random. Arguments used: (unsigned) +2024-03-28 11:00:24 DEBUG | | AssertionError: Sorry, I only support signed operands. +2024-03-28 11:00:24 DEBUG Why plug-ins did not estimate: +2024-03-28 11:00:24 DEBUG | AccurateButPicky with accuracy 99% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | InacurrateFlexible with accuracy 50% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | table-based-plug-ins with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-03-28 11:00:24 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class ternary_mac is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-03-28 11:00:24 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-03-28 11:00:24 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support ternary_mac. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-03-28 11:00:24 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for ternary_mac +2024-03-28 11:00:24 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support ternary_mac.mac_random. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverterX2XLadder with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_x2x_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_C2C with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_c2c_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_R2R with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_r2r_ladder'] +2024-03-28 11:00:24 DEBUG | Capacitor with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['capacitor'] +2024-03-28 11:00:24 DEBUG | ExampleRRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['ExampleRRAM'] +2024-03-28 11:00:24 DEBUG | PassGate with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['pass_gate'] +2024-03-28 11:00:24 DEBUG | Wire with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['wire'] +2024-03-28 11:00:24 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['cache'] +2024-03-28 11:00:24 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['DRAM'] +2024-03-28 11:00:24 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['SRAM'] +2024-03-28 11:00:24 DEBUG | AccurateButPicky with accuracy 99% estimating value: AssertionError: Sorry, I only support signed operands. +2024-03-28 11:00:24 INFO Plug-ins provided accuracy, but failed to estimate: +2024-03-28 11:00:24 INFO | AccurateButPicky with accuracy 99% estimating value: AssertionError: Sorry, I only support signed operands. +2024-03-28 11:00:24 INFO +2024-03-28 11:00:24 INFO ENERGY ESTIMATION for ternary_mac(tech_node=45, accum_datawidth=5, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1).reset(make_expensive=1, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1) +2024-03-28 11:00:24 INFO InacurrateFlexible estimated 1 with accuracy 50%. Messages: +2024-03-28 11:00:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.__init__. Arguments used: (tech_node, accum_datawidth) +2024-03-28 11:00:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.reset. Arguments used: (make_expensive) +2024-03-28 11:00:24 INFO | InacurrateFlexible reset is expensive! Returning a high energy. +2024-03-28 11:00:24 DEBUG Why plug-ins did not estimate: +2024-03-28 11:00:24 DEBUG | InacurrateFlexible with accuracy 50% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | table-based-plug-ins with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-03-28 11:00:24 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Primitive class ternary_mac is not supported. Supported classes are: ['regfile', 'SRAM', 'counter', 'comparator', 'crossbar', 'wire', 'FIFO', 'bitwise', 'intadder', 'intmultiplier', 'intmac', 'fpadder', 'fpmultiplier', 'fpmac', 'reg'] +2024-03-28 11:00:24 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-03-28 11:00:24 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support ternary_mac. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-03-28 11:00:24 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find energy for ternary_mac +2024-03-28 11:00:24 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support ternary_mac.reset. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc'], supported actions: ['convert', 'drive', 'read', 'sample', 'leak', 'activate'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverterX2XLadder with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_x2x_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_C2C with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_c2c_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_R2R with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_r2r_ladder'] +2024-03-28 11:00:24 DEBUG | Capacitor with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['capacitor'] +2024-03-28 11:00:24 DEBUG | ExampleRRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['ExampleRRAM'] +2024-03-28 11:00:24 DEBUG | PassGate with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['pass_gate'] +2024-03-28 11:00:24 DEBUG | Wire with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['wire'] +2024-03-28 11:00:24 DEBUG | AccurateButPicky with accuracy 0% estimating accuracy: AttributeError: No action with name reset found in ternary_mac. Actions supported: idle, mac_random, leak +2024-03-28 11:00:24 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['cache'] +2024-03-28 11:00:24 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['DRAM'] +2024-03-28 11:00:24 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['SRAM'] +2024-03-28 11:00:24 WARNING No action counts are specified as yaml input +2024-03-28 11:00:24 INFO +2024-03-28 11:00:24 INFO AREA ESTIMATION for DRAM(reduction_supported=False, width=256, technology=45nm, tech_node=45, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, n_instances=1) +2024-03-28 11:00:24 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-03-28 11:00:24 INFO | Unused arguments (reduction_supported, technology, tech_node, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances, datawidth) provided for DRAM.__init__. Arguments used: (width) +2024-03-28 11:00:24 DEBUG Why plug-ins did not estimate: +2024-03-28 11:00:24 DEBUG | CactiDRAM with accuracy 80% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | table-based-plug-ins with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-03-28 11:00:24 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-03-28 11:00:24 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-03-28 11:00:24 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support dram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-03-28 11:00:24 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find area for dram +2024-03-28 11:00:24 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support DRAM.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverterX2XLadder with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['dac_x2x_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_C2C with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['dac_c2c_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_R2R with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['dac_r2r_ladder'] +2024-03-28 11:00:24 DEBUG | Capacitor with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['capacitor'] +2024-03-28 11:00:24 DEBUG | ExampleRRAM with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['ExampleRRAM'] +2024-03-28 11:00:24 DEBUG | PassGate with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['pass_gate'] +2024-03-28 11:00:24 DEBUG | Wire with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['wire'] +2024-03-28 11:00:24 DEBUG | AccurateButPicky with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['ternary_mac'] +2024-03-28 11:00:24 DEBUG | InacurrateFlexible with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['ternary_mac'] +2024-03-28 11:00:24 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['cache'] +2024-03-28 11:00:24 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name DRAM is not supported. Supported class names: ['SRAM'] +2024-03-28 11:00:24 INFO +2024-03-28 11:00:24 INFO AREA ESTIMATION for SRAM(depth=16, width=64, datawidth=8, technology=45nm, tech_node=45, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, n_instances=1) +2024-03-28 11:00:24 INFO CactiSRAM estimated 5.3594e-10 with accuracy 80%. Messages: +2024-03-28 11:00:24 INFO | Unused arguments (datawidth, tech_node, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, technology) +2024-03-28 11:00:24 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-03-28 11:00:24 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk4wnoyb8 +2024-03-28 11:00:24 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxlx79coh +2024-03-28 11:00:24 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-03-28 11:00:24 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpk4wnoyb8 >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxlx79coh 2>&1 +2024-03-28 11:00:24 INFO | Cache bandwidth: 8.0 bits/cycle +2024-03-28 11:00:24 INFO | Cache bandwidth: 112.57794703559398 bits/second +2024-03-28 11:00:24 DEBUG Why plug-ins did not estimate: +2024-03-28 11:00:24 DEBUG | CactiSRAM with accuracy 80% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | table-based-plug-ins with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-03-28 11:00:24 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-03-28 11:00:24 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-03-28 11:00:24 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support sram. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-03-28 11:00:24 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find area for sram +2024-03-28 11:00:24 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support SRAM.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverterX2XLadder with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['dac_x2x_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_C2C with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['dac_c2c_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_R2R with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['dac_r2r_ladder'] +2024-03-28 11:00:24 DEBUG | Capacitor with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['capacitor'] +2024-03-28 11:00:24 DEBUG | ExampleRRAM with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['ExampleRRAM'] +2024-03-28 11:00:24 DEBUG | PassGate with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['pass_gate'] +2024-03-28 11:00:24 DEBUG | Wire with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['wire'] +2024-03-28 11:00:24 DEBUG | AccurateButPicky with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['ternary_mac'] +2024-03-28 11:00:24 DEBUG | InacurrateFlexible with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['ternary_mac'] +2024-03-28 11:00:24 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['cache'] +2024-03-28 11:00:24 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name SRAM is not supported. Supported class names: ['DRAM'] +2024-03-28 11:00:24 INFO +2024-03-28 11:00:24 INFO AREA ESTIMATION for ternary_mac(tech_node=45, accum_datawidth=5, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1) +2024-03-28 11:00:24 INFO AccurateButPicky estimated 1.4944525594876197e-09 with accuracy 99%. Messages: +2024-03-28 11:00:24 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.__init__. Arguments used: (tech_node, accum_datawidth) +2024-03-28 11:00:24 DEBUG Why plug-ins did not estimate: +2024-03-28 11:00:24 DEBUG | AccurateButPicky with accuracy 99% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | InacurrateFlexible with accuracy 50% estimating accuracy: No messages found. +2024-03-28 11:00:24 DEBUG | table-based-plug-ins with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-03-28 11:00:24 DEBUG | Aladdin_table with accuracy 0% estimating accuracy: Accuracy is 0%. Not supported. +2024-03-28 11:00:24 DEBUG | dummy_table with accuracy 0% estimating accuracy: Set attribute "technology" to -1 to use the dummy table +2024-03-28 11:00:24 DEBUG | Neurosim Plug-In with accuracy 0% estimating accuracy: ERROR: NeuroSim estimator does not support ternary_mac. Supported primitives are: ['array_row_drivers', 'array_col_drivers', 'array_adc', 'memory_cell', 'shift_add', 'intadder', 'intadder_tree', 'max_pool', 'mux', 'flip_flop', 'not_gate', 'nand_gate', 'nor_gate'] +2024-03-28 11:00:24 DEBUG | Library with accuracy 0% estimating accuracy: ValueError: Could not find area for ternary_mac +2024-03-28 11:00:24 DEBUG | ADC Plug-In with accuracy 0% estimating accuracy: ADC Plug-In does not support ternary_mac.None. Supported classes: ['adc', 'pim_adc', 'sar_adc', 'array_adc', 'pim_array_adc', 'cim_array_adc', 'cim_adc']. +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverterX2XLadder with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_x2x_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_C2C with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_c2c_ladder'] +2024-03-28 11:00:24 DEBUG | DigitalAnalogConverter_R2R with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['dac_r2r_ladder'] +2024-03-28 11:00:24 DEBUG | Capacitor with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['capacitor'] +2024-03-28 11:00:24 DEBUG | ExampleRRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['ExampleRRAM'] +2024-03-28 11:00:24 DEBUG | PassGate with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['pass_gate'] +2024-03-28 11:00:24 DEBUG | Wire with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['wire'] +2024-03-28 11:00:24 DEBUG | CactiCache with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['cache'] +2024-03-28 11:00:24 DEBUG | CactiDRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['DRAM'] +2024-03-28 11:00:24 DEBUG | CactiSRAM with accuracy 0% estimating accuracy: Class name ternary_mac is not supported. Supported class names: ['SRAM'] +2024-03-28 11:00:24 INFO verbose flattened architecture is saved to: +2024-03-28 11:00:24 INFO out_dir/flattened_architecture_verbose.yaml +2024-03-28 11:00:24 INFO energy reference table is saved to: +2024-03-28 11:00:24 INFO out_dir/ERT.yaml +2024-03-28 11:00:24 INFO verbose energy reference table summary is saved to: +2024-03-28 11:00:24 INFO out_dir/ERT_summary_verbose.yaml +2024-03-28 11:00:24 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-03-28 11:00:24 INFO area reference table is saved to: +2024-03-28 11:00:24 INFO out_dir/ART.yaml +2024-03-28 11:00:24 INFO verbose area reference table summary is saved to: +2024-03-28 11:00:24 INFO out_dir/ART_summary_verbose.yaml diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/creating_first_plug_in.ipynb b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/creating_first_plug_in.ipynb new file mode 100644 index 00000000..9124632a --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/creating_first_plug_in.ipynb @@ -0,0 +1,500 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Creating your First Plug-In**\n", + "This notebook guides you through the process of creating your first Accelergy\n", + "plug-in." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from utils.helper_functions import *\n", + "import os\n", + "CURRENT_DIR = os.path.dirname(os.path.realpath('__file__'))\n", + "PLUG_IN_SCRIPT = 'out_dir/_plug_in_tmp.py'\n", + "LOGFILE = 'out_dir/accelergy.log'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Introducing the Ternary MAC Plug-In**\n", + "We'd like to build a custom MAC unit for ternary neural nets. Ternary neural\n", + " nets restrict input activations and weight values to [-1, 0, 1]. This\n", + " allows them to compute MACs with extremely simple hardware. Each\n", + " $Input\\times Weight$ value is also in [-1, 0, 1], so a MAC can be computed\n", + " with a single increment/decrement of the psum. Suppose that, based on\n", + " simulations, we have the following formulas for the energy and area of the\n", + " ternary MAC unit: $$MAC\\ Energy (pJ) = 0.002\\times(Accum.\\ Datawidth +\n", + " 0.25) \\times (Tech\\ Node)^{1.1} $$ $$Area\\ (um^2) = 2\\times(Accum.\\\n", + " Datawidth + 0.3) \\times (Tech\\ Node)^{1.3} $$\n", + "\n", + "We also set a few restrictions on our model: $$ 4\\le Accum.\\ Datawidth \\le 8 $$\n", + " $$ 16\\le Tech\\ Node \\le 130 $$\n", + "\n", + "\n", + "Let's build an Accelergy plug-in to implement our new MAC unit. The plug-in\n", + "below is commented to explain each part. All \"REQUIRED\" pieces must be included\n", + "for the plug-in to work." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from accelergy.plug_in_interface.estimator import (\n", + " Estimator, actionDynamicEnergy, add_estimator_path, remove_estimator_path\n", + ")\n", + "\n", + "# REQUIRED: Declare a new Accelergy Estimator\n", + "class TernaryMAC(Estimator):\n", + " # REQUIRED: Tell Accelergy the name of this Estimator\n", + " name = 'ternary_mac'\n", + " # REQUIRED: Tell Accelergy the accuracy of this Estimator\n", + " percent_accuracy_0_to_100 = 80\n", + "\n", + " def __init__(self, accum_datawidth: int, tech_node: int):\n", + " self.accum_datawidth = accum_datawidth\n", + " self.tech_node = tech_node\n", + " # Raising an error tells Accelergy that this plug-in can't estimate,\n", + " # and Accelergy should query other plug-ins instead. Good error\n", + " # messages are essential for users debugging Accelergy designs.\n", + " assert 4 <= accum_datawidth <= 8, \\\n", + " f'Accumulation datawidth {accum_datawidth} outside supported ' \\\n", + " f'range [4-8]!'\n", + " assert 16 <= tech_node <= 130, \\\n", + " f'Technology node {tech_node} outside supported range [16, 130]!'\n", + "\n", + " # The actionDynamicEnergy decorator tells Accelergy that this function should be\n", + " # made visible as an action. The function should return an energy in\n", + " # Joules.\n", + " @actionDynamicEnergy\n", + " def mac_random(self) -> float:\n", + " self.logger.info(f'TernaryMAC Estimator is estimating '\n", + " f'energy for mac_random.')\n", + " return 0.002e-12 * (self.accum_datawidth + 0.25) * self.tech_node**1.1\n", + "\n", + " # REQUIRED: The get_area function returns the area of this component. It is\n", + " # required in all plug-ins. The function should return an area in m$^2$.\n", + " def get_area(self) -> float:\n", + " self.logger.info(f'TernaryMAC Estimator is estimating area.')\n", + " return 2 * (self.accum_datawidth + 0.3) * self.tech_node ** 1.3 * 1e-12\n", + " \n", + " # REQUIRED: The get_latency function returns the latency of this component.\n", + " def leak(self, global_cycle_seconds: float) -> float:\n", + " \"\"\" Returns the leakage energy per global cycle or an Estimation object \n", + " with the leakage energy and units. \"\"\"\n", + " return 1e-3 * global_cycle_seconds # 1mW\n", + "\n", + "# Ignore the next line. Moves the plug-in to a script because we're in a\n", + "# Jupyter notebook.\n", + "plugin_notebook2script(TernaryMAC, PLUG_IN_SCRIPT) \n", + "\n", + "# The following is for testing purposes. For actual plug-ins, use the pip install\n", + "# instructions found later in this tutorial.\n", + "add_estimator_path(PLUG_IN_SCRIPT) # Install plug-in so Accelergy can find it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Plug-In Essential Pieces**\n", + "\n", + "Accelergy plug-ins are identified by inheriting the Estimator class from\n", + "accelergy.plug_in_interface.estimator. All Estimator classes defined in a\n", + "module are automatically imported by Accelergy and made available to Accelergy.\n", + "\n", + "**The following are the essential pieces for an Accelergy Estimator class:**\n", + "- The class must inherit from Estimator\n", + "- The class must have a `name` attribute. `name` can either be a string or a\n", + " list of strings. If the `name` attribute matches the `class` of an Accelergy\n", + " design component, the plug-in may be used to estimate the area/energy of that\n", + " component.\n", + "- The class must have a `percent_accuracy_0_to_100` attribute. This is a number\n", + " between 0 and 100 that tells Accelergy how accurate the plug-in is. It\n", + " determines a plug-in's priority when multiple plug-ins are available for a\n", + " component.\n", + "- The class must have a get_area function. This function should return the area\n", + " of the component in m$^2$. This function should not have any arguments.\n", + "- Any number of functions may be decorated with `@actionDynamicEnergy`. These\n", + " functions are named the name of an action, and they return the energy of that\n", + " action in Joules. These functions may have any number of arguments.\n", + "\n", + "Modules with plug-ins can be installed with the add_estimator_path function,\n", + "which adds a path for Accelergy to search. The remove_estimator_path can remove\n", + "paths.\n", + "\n", + "### Let's see our plug-in estimate the area and energy of the ternary MAC unit" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "TARGET_YAML = os.path.join(CURRENT_DIR, 'utils/design0.yaml')\n", + "# Check the YAML file we'll be using to query our new plug-in\n", + "print('YAML file to query our new plug-in:')\n", + "print(yaml_section(TARGET_YAML, ['compound_components']))\n", + "\n", + "# Run Accelergy to generate the output directory\n", + "!mkdir out_dir\n", + "print(f'\\nRunning Accelergy...')\n", + "!accelergy {TARGET_YAML} -o out_dir > out_dir/accelergy.log 2>&1\n", + "\n", + "# Check the output of Accelergy\n", + "READ_LOGGED = 'ESTIMATION for ternary_mac'\n", + "print(f'\\nAccelergy log from TernaryMAC plug-in:')\n", + "print(get_log_lines(LOGFILE, READ_LOGGED))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Area/Energy Estimations**\n", + "Accelergy will output an Area Reference Table (ART) and Energy Reference Table\n", + "(ERT) with area/energy breakdowns of the architecture. The estimations from our\n", + "plug-in, alongside those of other plug-ins, will be used to fill this table.\n", + "\n", + "#### **Estimating Area of a Component**\n", + "The `get_area` function is called on the Estimator instance to get the area of\n", + "the component. This function should not take any arguments. If the Estimator\n", + "class can not estimate the area, it should raise an error. This will cause\n", + "Accelergy to look for another Estimator. Accelergy will report the error if no\n", + "other Estimator is found.\n", + "\n", + "#### **Estimating Energy of an Action**\n", + "If an Estimator has been instantiated for a component, Accelergy will search for\n", + "functions decorated with `@actionDynamicEnergy`. If the name of the function\n", + "matches the name of an action, the function will be used to estimate energy.\n", + "\n", + "If the Accelergy design specifies arguments for an action, the arguments will\n", + "be passed to the function. Extra arguments are ignored, but missing arguments\n", + "will cause a failed match. If an argument has a default value, the default\n", + "value will be used if the argument is not specified in the Accelergy design.\n", + "\n", + "If the function can not estimate the area, it should raise an error. This will\n", + "cause Accelergy to look for another Estimator. Accelergy will report the error\n", + "if no other Estimator is found.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Find the estimations in the output ERT\n", + "print(f'\\nAccelergy ERT with TernaryMAC estimations. Reported numbers in pJ:')\n", + "print(yaml_section('./out_dir/ERT.yaml', ['ERT', 'tables', -1]))\n", + "print(f'\\nAccelergy ART with TernaryMAC estimations. Reported numbers in um$^2$:')\n", + "print(yaml_section('./out_dir/ART.yaml', ['ART', 'tables', -1]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Instantiating Plug-Ins**\n", + "When Accelergy parses architectures, it will generate a list of components and\n", + "attributes. Additionally, each component will have associated actions.\n", + "Accelergy searches for the plug-in with the highest accuracy to estimate the\n", + "area of each component and the energy of each action.\n", + "\n", + "An instance the Estimator class is created for a component if the following\n", + "conditions are met:\n", + "- The `class` attribute of the component matches the `name` attribute of the\n", + " Estimator class\n", + "- The attributes of the component match the arguments of the Estimator class's\n", + " \\_\\_init\\_\\_ function. Extra attributes are ignored, but missing attributes\n", + " will cause a failed match.\n", + "- This is the highest-accuracy matching Estimator available to Accelergy.\n", + "\n", + "Let's try putting together a few plug-ins and see which ones Accelergy picks.\n", + "We'll set up two plug-ins:\n", + "- The AccurateButPicky Estimator has a very high accuracy, but only supports\n", + " signed operands for its MAC operation. It also does not have a reset\n", + " operation.\n", + "- The InaccurateFlexible Estimator has a lower accuracy, but supports both\n", + " signed and unsigned operands. It also has a reset operation with an optional\n", + " argument make_expensive that makes the reset operation *very*\n", + " energy-intensive." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "class AccurateButPicky(Estimator):\n", + " name = 'ternary_mac'\n", + " percent_accuracy_0_to_100 = 99 # This plug-in is VERY confident\n", + "\n", + " def __init__(self, accum_datawidth: int, tech_node: int):\n", + " self.accum_datawidth = accum_datawidth\n", + " self.tech_node = tech_node\n", + "\n", + " @actionDynamicEnergy\n", + " def mac_random(self, unsigned: bool) -> float:\n", + " assert not unsigned, 'Sorry, I only support signed operands.'\n", + " return 0.002e-12 * (self.accum_datawidth + 0.25) * self.tech_node**1.1\n", + "\n", + " def get_area(self) -> float:\n", + " return 2e-12 * (self.accum_datawidth + 0.3) * self.tech_node**1.3\n", + "\n", + " def leak(self, global_cycle_seconds: float) -> float:\n", + " return 1e-3 * global_cycle_seconds # 1mW\n", + "\n", + "class InacurrateFlexible(Estimator):\n", + " name = 'ternary_mac'\n", + " percent_accuracy_0_to_100 = 50 # This plug-in is not very confident\n", + "\n", + " def __init__(self, accum_datawidth: int, tech_node: int):\n", + " self.accum_datawidth = accum_datawidth\n", + " self.tech_node = tech_node\n", + "\n", + " @actionDynamicEnergy\n", + " def mac_random(self, unsigned: bool) -> float:\n", + " energy = 0.002e-12 * (self.accum_datawidth + 0.25) * \\\n", + " self.tech_node**1.1\n", + " if unsigned:\n", + " self.logger.info('Unsigned mac_random consuming half the energy.')\n", + " energy /= 2\n", + " return energy\n", + " \n", + " @actionDynamicEnergy\n", + " def reset(self, make_expensive: bool=False) -> float:\n", + " if make_expensive:\n", + " self.logger.info('InacurrateFlexible reset is expensive! '\n", + " 'Returning a high energy.')\n", + " return 1 # 1 Joule\n", + " return 2e-12 * self.tech_node ** 1.1\n", + " \n", + " def get_area(self) -> float:\n", + " return 2 * (self.accum_datawidth + 0.3) * self.tech_node ** 1.3 * 1e-12\n", + "\n", + " def leak(self, global_cycle_seconds: float) -> float:\n", + " return 1e-3 * global_cycle_seconds # 1mW\n", + "\n", + "# Ignore this line. Moves the plug-in to the script.\n", + "plugin_notebook2script([AccurateButPicky, InacurrateFlexible], PLUG_IN_SCRIPT)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Plug-In Precedence and Function Calling Example**\n", + "A new compound component is set up to query our two plug-ins. It has four\n", + "actions:\n", + "- mac_random_to_accurate_picky: This component+action is set up to fit the\n", + " AccurateButPicky Estimator.\n", + "- mac_random_to_inaccurate_flexible: Accelergy first asks the AccurateButPicky\n", + " estimator, but the picky estimator raises an error. Accelergy queries the\n", + " InaccurateFlexible estimator.\n", + "- reset_inexpensive_default_argument: Only the InaccurateFlexible estimator has\n", + " a reset action. The estimator has a make_expensive argument with a default of\n", + " 0. The make_expensive argument is not specified in the YAML so is set to its\n", + " default of 0.\n", + "- reset_expensive_specified_argument: The make_expensive argument is specified\n", + " in the YAML and overrides the default value from the InaccurateFlexible\n", + " Estimator. Reset is very expensive indeed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "TARGET_YAML = os.path.join(CURRENT_DIR, 'utils/design1.yaml')\n", + "\n", + "# Check the YAML file we'll be using to query our new plug-in\n", + "print('YAML file to query our new plug-in:')\n", + "print(yaml_section(TARGET_YAML, ['compound_components']))\n", + "\n", + "# Run Accelergy to generate the output directory\n", + "print(f'\\nRunning Accelergy...')\n", + "!accelergy {TARGET_YAML} -v -o out_dir > accelergy.log 2>&1\n", + "\n", + "# Find the estimations in the output ERT\n", + "print(f'\\nAccelergy ERT with TernaryMAC estimations. Reported numbers in pJ:')\n", + "print(yaml_section('./out_dir/ERT_summary_verbose.yaml', \n", + " ['ERT_summary', 'table_summary', -1, 'primitive_estimation(s)'], \n", + " ['name', 'action_name', 'arguments', 'energy', 'estimator']))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Interpreting Estimator Logs**\n", + "Estimator classes communicate with the user in two ways:\n", + "- If an estimator class can not be instantiated or can not estimate something,\n", + " it should raise an error. The error message is shown in the Accelergy log\n", + " file if no other Estimator can be found.\n", + "- Each Estimator class has a logger attribute. This is a Python logger that\n", + " includes info(message), warning(message), and error(message) functions. If an\n", + " estimator is used to estimate something, the logger's messages are shown in\n", + " the Accelergy log file depending on the verbosity level.\n", + "\n", + "By peeking at Accelergy's output, we can see the procedure by which Accelergy\n", + "finds estimators. Let's see what Accelergy tells us about the\n", + "ternary_mac.mac_random(unsigned=1) action:\n", + "1. Accelergy found that both the InacurrateFlexible and AccurateButPicky\n", + " estimators have a matching name and action mac_random(unsigned).\n", + "2. Accelergy asks the higher-accuracy plug-in AccurateButPicky to estimate the\n", + " energy.\n", + "3. The AccurateButPicky plug-in raises an error because the unsigned argument\n", + " is not False.\n", + "4. Accelergy asks the lower-accuracy plug-in InacurrateFlexible to estimate the\n", + " energy.\n", + "5. The InacurrateFlexible plug-in estimates the energy and returns it to\n", + " Accelergy.\n", + "\n", + "Generally, Accelergy will report logs from the plug-in used to estimate\n", + "energy/area. It will also report errors if a plug-in tried to estimate\n", + "energy/area but failed. To see the logs from all installed plug-ins, we can run\n", + "Accelergy with the -v flag. This will cause Accelergy to print the reason why\n", + "each and every plug-in was or was not used to estimate energy/area." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "READ_LOGGED = ['ENERGY ESTIMATION', 'ternary_mac', 'mac_random']\n", + "\n", + "print(f'Running Accelergy with standard logging...')\n", + "!accelergy {TARGET_YAML} -o out_dir > accelergy.log 2>&1\n", + "print(get_log_lines(LOGFILE, READ_LOGGED))\n", + "\n", + "print(f'\\n\\nRunning Accelergy with verbose logging...')\n", + "!accelergy {TARGET_YAML} -v -o out_dir > accelergy.log 2>&1\n", + "print(get_log_lines(LOGFILE, READ_LOGGED))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Cleaning Up**\n", + "We're all done! Let's uninstall the plug-in and create a template for future plug-ins." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "remove_estimator_path(PLUG_IN_SCRIPT)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **Template for Your Plug-Ins**\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "markdown = f'''\n", + "```python\n", + "{open('plug_in_template/template.py').read()}\n", + "```\n", + "'''\n", + "from IPython.display import Markdown\n", + "Markdown(markdown)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Pip Installing Plug-Ins\n", + "Plug-ins can also be installed using pip. To install the plug-in as a pip package, two additional\n", + "files are required. First, a `.estimator.yaml` file points to the Python files that\n", + "contain the estimator plug-ins. Next, a `setup.py` file performs the pip install.\n", + "\n", + "Templates for both files can be found in the plug_in_template directory." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + " markdown = f'''\n", + "# The .estimator.yaml file\n", + "```yaml\n", + "{open('plug_in_template/template.estimator.yaml').read()}\n", + "```\n", + "'''\n", + "from IPython.display import Markdown\n", + "display(Markdown(markdown))\n", + "\n", + " markdown = f'''\n", + "# The setup.py file\n", + "```python\n", + "{open('plug_in_template/setup.py').read()}\n", + "```\n", + "'''\n", + "from IPython.display import Markdown\n", + "display(Markdown(markdown))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.1" + }, + "pycharm": { + "stem_cell": { + "cell_type": "raw", + "metadata": { + "collapsed": false + }, + "source": [] + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART.yaml new file mode 100644 index 00000000..b5e3899f --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART.yaml @@ -0,0 +1,9 @@ +ART: + version: '0.4' + tables: + - name: system_arch.chip.DRAM + area: 0.0 + - name: system_arch.chip.buffer + area: 535.94 + - name: system_arch.chip.PE[1..8] + area: 1494.452559 diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART_summary.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART_summary.yaml new file mode 100644 index 00000000..8f1f2fda --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART_summary.yaml @@ -0,0 +1,14 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_arch.chip.DRAM + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_arch.chip.buffer + area: 535.94 + primitive_estimations: CactiSRAM + - name: system_arch.chip.PE[1..8] + area: 1494.452559 + primitive_estimations: + - name: mac + estimator: AccurateButPicky diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART_summary_verbose.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART_summary_verbose.yaml new file mode 100644 index 00000000..b4ad567b --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ART_summary_verbose.yaml @@ -0,0 +1,17 @@ +ART_summary: + version: '0.4' + table_summary: + - name: system_arch.chip.DRAM + area: 0.0 + primitive_estimations: CactiDRAM + - name: system_arch.chip.buffer + area: 535.94 + primitive_estimations: CactiSRAM + - name: system_arch.chip.PE[1..8] + area: 1494.452559 + primitive_estimations: + - name: mac + estimator: AccurateButPicky + area: 1494.452559 + area_share: 1 + total_component_area: 1494.452559 diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT.yaml new file mode 100644 index 00000000..52400e83 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT.yaml @@ -0,0 +1,14 @@ +ERT: + version: '0.4' + tables: + - name: system_arch.chip.PE[1..8] + actions: + - name: mac_random_to_accurate_picky + arguments: {} + energy: 0.69139 + - name: mac_random_to_inaccurate_flexible + arguments: {} + energy: 0.345695 + - name: reset_expensive_specified_argument + arguments: {} + energy: 1000000000000.0 diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT_summary.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT_summary.yaml new file mode 100644 index 00000000..ee417d02 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT_summary.yaml @@ -0,0 +1,14 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_arch.chip.PE[1..8] + actions: + - name: mac_random_to_accurate_picky + energy: 0.69139 + - name: mac_random_to_inaccurate_flexible + energy: 0.345695 + - name: reset_expensive_specified_argument + energy: 1000000000000.0 + primitive_estimation(s): + - name: mac + estimator: AccurateButPicky diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT_summary_verbose.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT_summary_verbose.yaml new file mode 100644 index 00000000..8ea8682a --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/ERT_summary_verbose.yaml @@ -0,0 +1,66 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: system_arch.chip.PE[1..8] + actions: + - name: mac_random_to_accurate_picky + energy: 0.69139 + - name: mac_random_to_inaccurate_flexible + energy: 0.345695 + - name: reset_expensive_specified_argument + energy: 1000000000000.0 + primitive_estimation(s): + - action_name: mac_random_to_accurate_picky + arguments: {} + energy: 0.69139 + subaction_estimations: + - subcomponent_name: mac + subaction_name: mac_random + arguments: + unsigned: 0 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + technology: "45nm" + n_instances: 1 + energy: 0.6913899529408735 + action_share: 1.0 + interpreted_energy: 0.6913899529408735 + percentage: 100.0% + estimator: AccurateButPicky + - action_name: mac_random_to_inaccurate_flexible + arguments: {} + energy: 0.345695 + subaction_estimations: + - subcomponent_name: mac + subaction_name: mac_random + arguments: + unsigned: 1 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + technology: "45nm" + n_instances: 1 + energy: 0.34569497647043673 + action_share: 1.0 + interpreted_energy: 0.34569497647043673 + percentage: 100.0% + estimator: InacurrateFlexible + - action_name: reset_expensive_specified_argument + arguments: {} + energy: 1000000000000.0 + subaction_estimations: + - subcomponent_name: mac + subaction_name: reset + arguments: + make_expensive: 1 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + technology: "45nm" + n_instances: 1 + energy: 1000000000000.0 + action_share: 1.0 + interpreted_energy: 1000000000000.0 + percentage: 100.0% + estimator: InacurrateFlexible diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/_plug_in_tmp.py b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/_plug_in_tmp.py new file mode 100644 index 00000000..01c38398 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/_plug_in_tmp.py @@ -0,0 +1,67 @@ +from accelergy.plug_in_interface.estimator import Estimator, actionDynamicEnergy, Estimation +from typing import Union +from numbers import Number + + +class AccurateButPicky(Estimator): + name = "ternary_mac" + percent_accuracy_0_to_100 = 99 + def __init__(self, accum_datawidth: int, tech_node: int): + self.accum_datawidth = accum_datawidth + self.tech_node = tech_node + + def get_area(self) -> float: + return 2e-12 * (self.accum_datawidth + 0.3) * self.tech_node**1.3 + + @actionDynamicEnergy + def idle(self) -> Union[Number, Estimation]: + """For backwards compatibility with versions that don't support leakage energy.""" + return 0 + + def leak(self, global_cycle_seconds: float) -> float: + return 1e-3 * global_cycle_seconds # 1mW + + @actionDynamicEnergy + def mac_random(self, unsigned: bool) -> float: + assert not unsigned, 'Sorry, I only support signed operands.' + return 0.002e-12 * (self.accum_datawidth + 0.25) * self.tech_node**1.1 + +from accelergy.plug_in_interface.estimator import Estimator, actionDynamicEnergy, Estimation +from typing import Union +from numbers import Number + + +class InacurrateFlexible(Estimator): + name = "ternary_mac" + percent_accuracy_0_to_100 = 50 + def __init__(self, accum_datawidth: int, tech_node: int): + self.accum_datawidth = accum_datawidth + self.tech_node = tech_node + + def get_area(self) -> float: + return 2 * (self.accum_datawidth + 0.3) * self.tech_node ** 1.3 * 1e-12 + + @actionDynamicEnergy + def idle(self) -> Union[Number, Estimation]: + """For backwards compatibility with versions that don't support leakage energy.""" + return 0 + + def leak(self, global_cycle_seconds: float) -> float: + return 1e-3 * global_cycle_seconds # 1mW + + @actionDynamicEnergy + def mac_random(self, unsigned: bool) -> float: + energy = 0.002e-12 * (self.accum_datawidth + 0.25) * \ + self.tech_node**1.1 + if unsigned: + self.logger.info('Unsigned mac_random consuming half the energy.') + energy /= 2 + return energy + + @actionDynamicEnergy + def reset(self, make_expensive: bool=False) -> float: + if make_expensive: + self.logger.info('InacurrateFlexible reset is expensive! ' + 'Returning a high energy.') + return 1 # 1 Joule + return 2e-12 * self.tech_node ** 1.1 diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/accelergy.log b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/accelergy.log new file mode 100644 index 00000000..8d9127f0 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/accelergy.log @@ -0,0 +1,100 @@ +2024-03-28 11:00:23 INFO _ _ +2024-03-28 11:00:23 INFO / \ ___ ___ ___| | ___ _ __ __ _ _ _ +2024-03-28 11:00:23 INFO / _ \ / __/ __/ _ \ |/ _ \ '__/ _` | | | | +2024-03-28 11:00:23 INFO / ___ \ (_| (_| __/ | __/ | | (_| | |_| | +2024-03-28 11:00:23 INFO /_/ \_\___\___\___|_|\___|_| \__, |\__, | +2024-03-28 11:00:23 INFO |___/ |___/ +2024-03-28 11:00:23 INFO generating outputs according to the following specified output flags... +2024-03-28 11:00:23 INFO Please use the -f flag to update the preference (default to all output files) +2024-03-28 11:00:23 INFO {'ERT': 1, 'ERT_summary': 1, 'ART': 1, 'ART_summary': 1, 'energy_estimation': 1, 'flattened_arch': 1} +2024-03-28 11:00:23 INFO Located config file at /home/tanner/.config/accelergy/accelergy_config.yaml. +2024-03-28 11:00:23 INFO config file located: +2024-03-28 11:00:23 INFO /home/tanner/.config/accelergy/accelergy_config.yaml +2024-03-28 11:00:23 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design0.yaml for architecture info +2024-03-28 11:00:23 WARNING File /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design0.yaml is outdated. File version is 0.4, while the latest version is 0.4. +2024-03-28 11:00:23 WARNING Please update the file to the latest version. +2024-03-28 11:00:23 INFO Parsing file /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design0.yaml for compound_components info +2024-03-28 11:00:23 WARNING File /home/tanner/research/cimloop/infrastructure/timeloop-accelergy-exercises/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design0.yaml is outdated. File version is 0.4, while the latest version is 0.4. +2024-03-28 11:00:23 WARNING Please update the file to the latest version. +2024-03-28 11:00:23 INFO primitive component file parsed: +2024-03-28 11:00:23 INFO /home/tanner/research/cimloop/venv/share/accelergy/primitive_component_libs/neurosim_components.lib.yaml +2024-03-28 11:00:23 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-table-based-plug-ins/table.estimator.yaml +2024-03-28 11:00:23 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-aladdin-plug-in/aladdin.estimator.yaml +2024-03-28 11:00:23 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/dummy_tables/dummy.estimator.yaml +2024-03-28 11:00:23 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti.estimator.yaml +2024-03-28 11:00:23 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-neurosim-plugin/neurosim.estimator.yaml +2024-03-28 11:00:23 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-library-plugin/library.estimator.yaml +2024-03-28 11:00:23 INFO Estimator plug-in identified by: /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-adc-plug-in/adc.estimator.yaml +2024-03-28 11:00:23 INFO Getting all estimators in module +2024-03-28 11:00:23 INFO Getting all estimators in module +2024-03-28 11:00:23 INFO Added estimator DigitalAnalogConverterX2XLadder that estimates dac_x2x_ladder with actions convert, idle, leak, leak +2024-03-28 11:00:23 INFO Added estimator DigitalAnalogConverter_C2C that estimates dac_c2c_ladder with actions convert, idle, leak, leak +2024-03-28 11:00:23 INFO Added estimator DigitalAnalogConverter_R2R that estimates dac_r2r_ladder with actions convert, idle, leak, leak +2024-03-28 11:00:23 INFO Getting all estimators in module +2024-03-28 11:00:23 INFO Added estimator Capacitor that estimates capacitor with actions charge, idle, leak, raise_voltage_to, raise_voltage_to_from_non_supply, read, switch, update, write, leak +2024-03-28 11:00:23 INFO Added estimator ExampleRRAM that estimates ExampleRRAM with actions idle, multiply_accumulate, leak +2024-03-28 11:00:23 INFO Added estimator PassGate that estimates pass_gate with actions idle, leak +2024-03-28 11:00:23 INFO Added estimator Wire that estimates wire with actions charge, idle, leak, raise_voltage_to, raise_voltage_to_from_non_supply, read, switch, update, write, leak +2024-03-28 11:00:23 INFO Getting all estimators in module +2024-03-28 11:00:23 INFO Getting all estimators in module +2024-03-28 11:00:23 INFO Getting all estimators in module +2024-03-28 11:00:23 INFO Added estimator TernaryMAC that estimates ternary_mac with actions idle, mac_random, leak +2024-03-28 11:00:23 INFO Getting all estimators in module +2024-03-28 11:00:23 INFO Added estimator CactiCache that estimates cache with actions idle, read, read_access, update, update_access, write, write_access, leak +2024-03-28 11:00:23 INFO Added estimator CactiDRAM that estimates DRAM with actions idle, read, update, write, leak +2024-03-28 11:00:23 INFO Added estimator CactiSRAM that estimates SRAM with actions idle, read, update, write, leak +2024-03-28 11:00:23 INFO Found estimator plug-in: table-based-plug-ins () +2024-03-28 11:00:23 INFO Found estimator plug-in: Aladdin_table () +2024-03-28 11:00:23 INFO Found estimator plug-in: dummy_table () +2024-03-28 11:00:23 INFO Found estimator plug-in: Neurosim Plug-In () +2024-03-28 11:00:23 INFO Found estimator plug-in: Library () +2024-03-28 11:00:23 INFO Found estimator plug-in: ADC Plug-In () +2024-03-28 11:00:23 INFO Found estimator plug-in: DigitalAnalogConverterX2XLadder () +2024-03-28 11:00:23 INFO Found estimator plug-in: DigitalAnalogConverter_C2C () +2024-03-28 11:00:23 INFO Found estimator plug-in: DigitalAnalogConverter_R2R () +2024-03-28 11:00:23 INFO Found estimator plug-in: Capacitor () +2024-03-28 11:00:23 INFO Found estimator plug-in: ExampleRRAM () +2024-03-28 11:00:23 INFO Found estimator plug-in: PassGate () +2024-03-28 11:00:23 INFO Found estimator plug-in: Wire () +2024-03-28 11:00:23 INFO Found estimator plug-in: TernaryMAC () +2024-03-28 11:00:23 INFO Found estimator plug-in: CactiCache () +2024-03-28 11:00:23 INFO Found estimator plug-in: CactiDRAM () +2024-03-28 11:00:23 INFO Found estimator plug-in: CactiSRAM () +2024-03-28 11:00:23 INFO +2024-03-28 11:00:23 INFO ENERGY ESTIMATION for ternary_mac(tech_node=45, accum_datawidth=5, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1).mac_random(global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1) +2024-03-28 11:00:23 INFO TernaryMAC estimated 6.913899529408735e-13 with accuracy 80%. Messages: +2024-03-28 11:00:23 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.__init__. Arguments used: (tech_node, accum_datawidth) +2024-03-28 11:00:23 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.mac_random. Arguments used: () +2024-03-28 11:00:23 INFO | TernaryMAC Estimator is estimating energy for mac_random. +2024-03-28 11:00:23 WARNING No action counts are specified as yaml input +2024-03-28 11:00:23 INFO +2024-03-28 11:00:23 INFO AREA ESTIMATION for DRAM(reduction_supported=False, width=256, technology=45nm, tech_node=45, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, n_instances=1) +2024-03-28 11:00:23 INFO CactiDRAM estimated 0 with accuracy 80%. Messages: +2024-03-28 11:00:23 INFO | Unused arguments (reduction_supported, technology, tech_node, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances, datawidth) provided for DRAM.__init__. Arguments used: (width) +2024-03-28 11:00:23 INFO +2024-03-28 11:00:23 INFO AREA ESTIMATION for SRAM(depth=16, width=64, datawidth=8, technology=45nm, tech_node=45, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, n_instances=1) +2024-03-28 11:00:23 INFO CactiSRAM estimated 5.3594e-10 with accuracy 80%. Messages: +2024-03-28 11:00:23 INFO | Unused arguments (datawidth, tech_node, global_cycle_seconds, action_latency_cycles, cycle_seconds, n_instances) provided for SRAM.__init__. Arguments used: (depth, width, technology) +2024-03-28 11:00:23 INFO | Calling CACTI with cache_size=512 n_rw_ports=1 block_size=8 tech_node_um=0.045 n_banks=1 tag_size=0 associativity=1 +2024-03-28 11:00:23 INFO | Calling CACTI with input path /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxw6aicof +2024-03-28 11:00:23 INFO | CACTI output will be written to /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpg1361sbl +2024-03-28 11:00:23 INFO | CACTI executable not found at /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti/cacti +2024-03-28 11:00:23 INFO | Calling: cd /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in ; ./cacti -infile /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpxw6aicof >> /home/tanner/research/cimloop/venv/share/accelergy/estimation_plug_ins/accelergy-cacti-plug-in/cacti_inputs_outputs/tmpg1361sbl 2>&1 +2024-03-28 11:00:23 INFO | Cache bandwidth: 8.0 bits/cycle +2024-03-28 11:00:23 INFO | Cache bandwidth: 112.57794703559398 bits/second +2024-03-28 11:00:23 INFO +2024-03-28 11:00:23 INFO AREA ESTIMATION for ternary_mac(tech_node=45, accum_datawidth=5, global_cycle_seconds=0.001, action_latency_cycles=1, cycle_seconds=0.001, technology=45nm, n_instances=1) +2024-03-28 11:00:23 INFO TernaryMAC estimated 1.4944525594876197e-09 with accuracy 80%. Messages: +2024-03-28 11:00:23 INFO | Unused arguments (global_cycle_seconds, action_latency_cycles, cycle_seconds, technology, n_instances) provided for ternary_mac.__init__. Arguments used: (tech_node, accum_datawidth) +2024-03-28 11:00:23 INFO | TernaryMAC Estimator is estimating area. +2024-03-28 11:00:23 INFO flattened architecture is saved to: +2024-03-28 11:00:23 INFO out_dir/flattened_architecture.yaml +2024-03-28 11:00:23 INFO energy reference table is saved to: +2024-03-28 11:00:23 INFO out_dir/ERT.yaml +2024-03-28 11:00:23 INFO energy reference table summary is saved to: +2024-03-28 11:00:23 INFO out_dir/ERT_summary.yaml +2024-03-28 11:00:23 WARNING no runtime energy estimations are generated... not generating energy_estimation.yaml +2024-03-28 11:00:23 INFO area reference table is saved to: +2024-03-28 11:00:23 INFO out_dir/ART.yaml +2024-03-28 11:00:23 INFO area reference table summary is saved to: +2024-03-28 11:00:23 INFO out_dir/ART_summary.yaml diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/flattened_architecture.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/flattened_architecture.yaml new file mode 100644 index 00000000..9baabd7c --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/flattened_architecture.yaml @@ -0,0 +1,37 @@ +architecture: + version: '0.4' + local: + - name: system_arch.chip.DRAM + class: DRAM + attributes: + reduction_supported: false + width: 256 + technology: "45nm" + tech_node: 45 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + n_instances: 1 + - name: system_arch.chip.buffer + subclass: SRAM + attributes: + depth: 16 + width: 64 + datawidth: 8 + technology: "45nm" + tech_node: 45 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + n_instances: 1 + - name: system_arch.chip.PE[1..8] + class: mac + subclass: custom_mac + attributes: + tech_node: 45 + accum_datawidth: 5 + technology: "45nm" + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + n_instances: 1 diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/flattened_architecture_verbose.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/flattened_architecture_verbose.yaml new file mode 100644 index 00000000..6e5f83c2 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/out_dir/flattened_architecture_verbose.yaml @@ -0,0 +1,71 @@ +architecture: + version: '0.4' + local: + - name: system_arch.chip.PE[1..8] + class: custom_mac + attributes: + tech_node: 45 + accum_datawidth: 5 + technology: "45nm" + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + n_instances: 1 + primitive_components: + - name: mac + class: ternary_mac + attributes: + tech_node: 45 + accum_datawidth: 5 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + technology: "45nm" + n_instances: 1 + area_share: 1 + actions: + - name: mac_random_to_accurate_picky + arguments: {} + primitive_actions: + - name: mac + action: mac_random + arguments: + unsigned: 0 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + technology: "45nm" + n_instances: 1 + action_share: 1.0 + - name: mac_random_to_inaccurate_flexible + arguments: {} + primitive_actions: + - name: mac + action: mac_random + arguments: + unsigned: 1 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + technology: "45nm" + n_instances: 1 + action_share: 1.0 + - name: reset_expensive_specified_argument + arguments: {} + primitive_actions: + - name: mac + action: reset + arguments: + make_expensive: 1 + global_cycle_seconds: 0.001 + action_latency_cycles: 1 + cycle_seconds: 0.001 + technology: "45nm" + n_instances: 1 + action_share: 1.0 + - name: system_arch.chip.DRAM + class: DRAM + actions: [] + - name: system_arch.chip.buffer + class: SRAM + actions: [] diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/README.md b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/README.md new file mode 100644 index 00000000..2ac13585 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/README.md @@ -0,0 +1,5 @@ +### Install Instructions +```bash +# cd into this directory +pip3 install . +``` \ No newline at end of file diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/setup.py b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/setup.py new file mode 100644 index 00000000..a0ba9b57 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/setup.py @@ -0,0 +1,39 @@ +from setuptools import setup + +PLUG_IN_NAME = "accelergy-plug-in-template" + +setup( + name=f"{PLUG_IN_NAME}", + version="0.4", + description="DESCRIPTION HERE", + classifiers=[ + "Development Status :: 3 - Alpha", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python :: 3", + "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)", + ], + keywords="accelerator hardware energy estimation CACTI", + author="", + author_email="", + license="MIT", + install_requires=["accelergy>=0.4"], + python_requires=">=3.8", + data_files=[ + ( # This tuple can be repeated to include multiple directories + f"share/accelergy/estimation_plug_ins/{PLUG_IN_NAME}", + [ + "template.py", # Path to your Python files with the plug-ins + "template.estimator.yaml", # Path to the .estimator.yaml file + # Paths to any other files you'd like to include in this directory... + ], + ), + ], + include_package_data=True, + entry_points={}, + zip_safe=False, +) + +assert False, "Please change the template for your own plug-in and remove this line." +assert ( + PLUG_IN_NAME != "my-accelergy-plug-in" +), "Please change the template for your own plug-in." diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/template.estimator.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/template.estimator.yaml new file mode 100644 index 00000000..c15a5883 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/template.estimator.yaml @@ -0,0 +1,9 @@ +version: 0.4 # Required version number + +# Under this heading, list relative paths to any Python files that contain the +# Estimator classes. Only include files that contain Estimator classes. Adding +# additional files will slow Accelergy or make startup unstable. +python_plug_ins: +- template.py # Relative path to the the file that Accelergy will load +# - other_path.py # If more than one Estimator is needed, list them here +# - other_path_2.py \ No newline at end of file diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/template.py b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/template.py new file mode 100644 index 00000000..74f90e05 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/plug_in_template/template.py @@ -0,0 +1,46 @@ +import os +from accelergy.plug_in_interface.estimator import ( + Estimator, + actionDynamicEnergy, + add_estimator_path, + remove_estimator_path, +) + + +class PlugInTemplate(Estimator): + name = "component_name or list of names" + percent_accuracy_0_to_100 = 50 + + def __init__(self, arg0: int, arg1: int = 5): + self.logger.info( + "The __init__ function is called if the name and " + "required arguments match." + ) + assert arg0 > 0, "Raise an error if the arguments are not valid." + self.arg0, self.arg1 = arg0, arg1 + + @actionDynamicEnergy + def action(self, arg0: int, arg1: int = 5) -> float: + self.logger.info("@actionDynamicEnergy can decorate any number of actions.") + assert arg1 > 0, "Raise an error if we can not estimate the energy." + return arg0 * arg1 * 1e-12 # Return energy in Joules + + def get_area(self) -> float: + self.logger.info("The get_area function is required.") + assert self.arg1 > 0, "Raise an error if we can not estimate the area." + return self.arg0 * self.arg1 * 1e-12 # Return area in m$^2$ + + def leak(self, global_cycle_seconds: float) -> float: + self.logger.info("The leak function is required.") + return 1e-3 * global_cycle_seconds # 1mW + + @staticmethod + def quick_install_this_file(): # For testing purposes. Recommended to use pip for public plug-ins. + add_estimator_path(os.path.abspath(__file__)) + + @staticmethod + def quick_uninstall_this_file(): # For testing purposes. Recommended to use pip for public plug-ins. + remove_estimator_path(os.path.abspath(__file__)) + + +print(f"Thank you for completing the tutorial!") diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design0.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design0.yaml new file mode 100644 index 00000000..58e58d4a --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design0.yaml @@ -0,0 +1,57 @@ +architecture: + version: 0.4 + # ================================================================================================ + # TOP-LEVEL + # ================================================================================================ + subtree: + - name: system_arch + attributes: + technology: "45nm" + tech_node: 45 + global_cycle_seconds: 1e-3 + + local: [] + subtree: + - name: chip + local: + # On-chip network serves inputs/outputs between tiles + - name: DRAM + class: DRAM + attributes: + reduction_supported: False + width: 256 + + - name: buffer + subclass: SRAM + attributes: + depth: 16 + width: 64 + datawidth: 8 + + - name: PE[1..8] + class: mac + subclass: custom_mac + attributes: + tech_node: 45 + accum_datawidth: 5 + + +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: custom_mac + attributes: {} + subcomponents: + - name: mac + class: ternary_mac + attributes: + tech_node: 45 + accum_datawidth: 5 + + actions: + # Switch A: Charge all capacitors to the value of A + - name: mac_random + subcomponents: + - name: mac + actions: + - name: mac_random diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design1.yaml b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design1.yaml new file mode 100644 index 00000000..00dbf360 --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/design1.yaml @@ -0,0 +1,66 @@ +architecture: + version: 0.4 + # ================================================================================================ + # TOP-LEVEL + # ================================================================================================ + subtree: + - name: system_arch + attributes: + technology: "45nm" + tech_node: 45 + global_cycle_seconds: 1e-3 + + local: [] + subtree: + - name: chip + local: + # On-chip network serves inputs/outputs between tiles + - name: DRAM + class: DRAM + attributes: + reduction_supported: False + width: 256 + + - name: buffer + subclass: SRAM + attributes: + depth: 16 + width: 64 + datawidth: 8 + + - name: PE[1..8] + class: mac + subclass: custom_mac + attributes: + tech_node: 45 + accum_datawidth: 5 + + +compound_components: + version: 0.4 # REQUIRED version number + classes: + - name: custom_mac + attributes: {} + subcomponents: + - name: mac + class: ternary_mac + attributes: + tech_node: 45 + accum_datawidth: 5 + + actions: + - name: mac_random_to_accurate_picky + subcomponents: + - {name: mac, actions: [{name: mac_random, arguments: {unsigned: 0}}]} + + - name: mac_random_to_inaccurate_flexible + subcomponents: + - {name: mac, actions: [{name: mac_random, arguments: {unsigned: 1}}]} + + - name: reset_expensive_specified_argument + subcomponents: + - {name: mac, actions: [{name: reset}]} + + - name: reset_expensive_specified_argument + subcomponents: + - {name: mac, actions: [{name: reset, arguments: {make_expensive: 1}}]} diff --git a/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/helper_functions.py b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/helper_functions.py new file mode 100644 index 00000000..5b7f3cef --- /dev/null +++ b/workspace/tutorial_exercises/05_creating_accelergy_plug_ins/utils/helper_functions.py @@ -0,0 +1,97 @@ +import os +from typing import Any, List +import inspect +from accelergy.utils import yaml + + +def plugin_notebook2script( + python_object: Any, filename: str, return_instead_of_write: bool = False +) -> None: + """ + Writes a plug-in from this notebook into a script so Accelergy can import + it. This is a helper funciton so we can make Accelergy plug-ins from within + this notebook, but generally you'd write them as separate scripts. + """ + if isinstance(python_object, List): + script = "\n".join( + [ + plugin_notebook2script(p, filename, return_instead_of_write=True) + for p in python_object + ] + ) + name = ", ".join([p.__name__ for p in python_object]) + else: + functions = inspect.getmembers(python_object, inspect.isfunction) + functions = [ + f[1] for f in functions if not f[0].startswith("_") or f[0] == "__init__" + ] + script = ( + "from accelergy.plug_in_interface.estimator import " + "Estimator, actionDynamicEnergy, Estimation\n" + "from typing import Union\n" + "from numbers import Number\n\n" + ) + script += f"\nclass {python_object.__name__}(Estimator):\n" + for attr in ["name", "percent_accuracy_0_to_100"]: + v = getattr(python_object, attr) + script += f" {attr} = " + ( + f'"{v}"\n' if isinstance(v, str) else f"{v}\n" + ) + script += "\n".join([inspect.getsource(f) for f in functions]) + name = python_object.__name__ + if return_instead_of_write: + return script + print(f"Writing {name}. View the script at {os.path.abspath(filename)}") + open(filename, "w").write(script) + + +def yaml_section( + file: str, keys: List[str] = (), only_include_base_keys: List[str] = () +) -> str: + """ + Prints a section of a YAML file. This is a helper function to make it + easier to see the contents of the YAML files we'll be using in this + tutorial. + """ + content = yaml.load_yaml(file) + for key in keys: + content = content[key] if key != "subtree" else content[key][0] + if only_include_base_keys: + stack = [content] + while stack: + node = stack.pop() + if isinstance(node, list): + stack.extend(node) + else: + for k, v in list(node.items()): + if k in only_include_base_keys: + continue + elif isinstance(v, dict) or isinstance(v, list): + stack.append(v) + else: + node.pop(k) + + return "\t" + "\n\t".join(yaml.to_yaml_string(content).splitlines()) + + +def get_log_lines(logfile_path: str, start_from_line_containing: str) -> str: + """Grabs lines from an Accelergy log file.""" + lines = open(logfile_path).readlines() + if isinstance(start_from_line_containing, str): + start_from_line_containing = [start_from_line_containing] + start = [ + i + for i, l in enumerate(lines) + if all([s in l for s in start_from_line_containing]) + ] + loglevels = ["INFO", "DEBUG", "WARNING", "ERROR"] + result = [] + for s in start: + end = [ + i + for i, l in enumerate(lines) + if i > s and l.split()[-1].strip() in loglevels + ] + end = end[0] if end else len(lines) + result.append("".join(lines[s:end])) + return "\n".join(result) diff --git a/workspace/tutorial_exercises/README.md b/workspace/tutorial_exercises/README.md new file mode 100644 index 00000000..f0ad4ec8 --- /dev/null +++ b/workspace/tutorial_exercises/README.md @@ -0,0 +1,10 @@ +### Tutorial Exercises +NOTE: All other tutorials depend on tutorials 1 and 2. Please complete tutorials +1 and 2 first. The following tutorials may be completed in any order. + +Tutorial list: +- 01_accelergy_timeloop_2020_ispass: Introduction to Accelergy and Timeloop. +- 02_interface_and_design_space_exploration_2024: Using the Timeloop and Accelergy Python interface and running design space explorations +- 03_sparse_tensors_2021_isca: Using the Fibertree sparse tensor representation and modeling sparse tensor accelerators +- 04_compute_in_memory_2024: IN-PROGRESS tutorial. Not yet complete. +- 05_creating_accelergy_plug_ins: Creating your own Accelergy plug-ins diff --git a/ws_energy_breakdown.png b/ws_energy_breakdown.png new file mode 100644 index 0000000000000000000000000000000000000000..4cc82afa312519edda8bcf13bf015746f682f4a2 GIT binary patch literal 64847 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 literal 0 HcmV?d00001 diff --git a/ws_mapping_pattern.png b/ws_mapping_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..fc8e9530b7b98a4b19409c7390890dfbf5c43d28 GIT binary patch literal 73815 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 literal 0 HcmV?d00001 From 0fc0d964e7fc14e92d6c1c80a4ad7d64942a5e59 Mon Sep 17 00:00:00 2001 From: erwq <123213112a@gmail.com> Date: Fri, 5 Sep 2025 14:36:11 +0800 Subject: [PATCH 2/2] test --- src/loop-analysis/nest-analysis.cpp | 40 +- .../output/parsed-processed-input.yaml | 2 +- .../output/timeloop-model.ERT.yaml | 10 +- .../output/timeloop-model.ERT_summary.yaml | 4 +- ...timeloop-model.flattened_architecture.yaml | 2 +- .../output/os/parsed-processed-input.yaml | 4 +- .../output/os/timeloop-model.ERT.yaml | 16 +- .../output/os/timeloop-model.ERT_summary.yaml | 8 +- ...timeloop-model.flattened_architecture.yaml | 4 +- .../output/ws/parsed-processed-input.yaml | 12 +- .../output/ws/timeloop-model.ERT.yaml | 24 +- .../output/ws/timeloop-model.ERT_summary.yaml | 20 +- ...timeloop-model.flattened_architecture.yaml | 12 +- .../arch/3level.arch.yaml | 1 + .../no-bypass/parsed-processed-input.yaml | 175 + .../output/no-bypass/timeloop-model.ART.yaml | 11 + .../no-bypass/timeloop-model.ART_summary.yaml | 15 + .../output/no-bypass/timeloop-model.ERT.yaml | 76 + .../no-bypass/timeloop-model.ERT_summary.yaml | 49 + ...timeloop-model.flattened_architecture.yaml | 112 + .../no-bypass/timeloop-model.map.tensella.txt | 9 + .../output/cp/parsed-processed-input.yaml | 12 +- .../output/cp/timeloop-model.ERT.yaml | 32 +- .../output/cp/timeloop-model.ERT_summary.yaml | 20 +- ...timeloop-model.flattened_architecture.yaml | 12 +- .../output/kp/parsed-processed-input.yaml | 12 +- .../output/kp/timeloop-model.ERT.yaml | 12 +- .../output/kp/timeloop-model.ERT_summary.yaml | 12 +- ...timeloop-model.flattened_architecture.yaml | 12 +- .../output/parsed-processed-input.yaml | 20 +- .../output/timeloop-model.ERT.yaml | 10 +- .../output/timeloop-model.ERT_summary.yaml | 8 +- ...timeloop-model.flattened_architecture.yaml | 20 +- .../timeloop/test.txt | 11883 ++++++++++------ 34 files changed, 7846 insertions(+), 4825 deletions(-) create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/parsed-processed-input.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ART.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ART_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ERT.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ERT_summary.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.flattened_architecture.yaml create mode 100644 workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.map.tensella.txt diff --git a/src/loop-analysis/nest-analysis.cpp b/src/loop-analysis/nest-analysis.cpp index 8fd56044..11793f83 100644 --- a/src/loop-analysis/nest-analysis.cpp +++ b/src/loop-analysis/nest-analysis.cpp @@ -1718,28 +1718,28 @@ void NestAnalysis::ComputeAccurateMulticastedAccesses( } } // // ======================= DBG语句开始 ======================= - if(enable_debug_print){} - // { - // for (unsigned pv = 0; pv < workload_->GetShape()->NumDataSpaces; pv++) - // { - // // 仅当目标数量大于1时,才认为是多播 - // if (num_matches[pv] > 1 && delta.GetSize(pv) > 0) + if(enable_debug_print) + { + for (unsigned pv = 0; pv < workload_->GetShape()->NumDataSpaces; pv++) + { + // 仅当目标数量大于1时,才认为是多播 + if (num_matches[pv] > 1 && delta.GetSize(pv) > 0) - // { - // // 使用 stringstream 来格式化位置列表,使其更易读 - // std::stringstream locations_ss; - // for (const auto& loc : match_set[pv]) - // { - // locations_ss << loc << " "; - // } - - // // 打印详细的多播信息 - // // 你可以把 std::cout 替换为你的 dbg() 宏 - // dbg(pv, num_matches[pv], delta.GetSize(pv), match_set[pv]); - // } - // } + { + // 使用 stringstream 来格式化位置列表,使其更易读 + std::stringstream locations_ss; + for (const auto& loc : match_set[pv]) + { + locations_ss << loc << " "; + } + + // 打印详细的多播信息 + // 你可以把 std::cout 替换为你的 dbg() 宏 + dbg(pv, num_matches[pv], delta.GetSize(pv), match_set[pv]); + } + } - // } + } // ======================= DBG语句结束 ======================= // NOTE: multicast is # children sharing the same delta // scatter factor is the # data spaces with the same multicast value diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/parsed-processed-input.yaml index 54e90a85..60d4abe9 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/parsed-processed-input.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/parsed-processed-input.yaml @@ -29,10 +29,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: + - read - leak - write - update - - read enabled: true - name: MACC[1..1] class: intmac diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT.yaml index b4b40ff5..6f0e0e4d 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT.yaml @@ -3,6 +3,11 @@ ERT: tables: - name: accelerator_top_level.Buffer[1..1] actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 - name: leak arguments: global_cycle_seconds: 1e-09 @@ -18,11 +23,6 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.36264 - - name: read - arguments: - global_cycle_seconds: 1e-09 - action_latency_cycles: 1 - energy: 0.36264 - name: accelerator_top_level.MACC[1..1] actions: - name: compute diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT_summary.yaml index d64dc373..cf5b6b5c 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT_summary.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.ERT_summary.yaml @@ -3,14 +3,14 @@ ERT_summary: table_summary: - name: accelerator_top_level.Buffer[1..1] actions: + - name: read + energy: 0.36264 - name: leak energy: 0.0003712 - name: write energy: 0.36264 - name: update energy: 0.36264 - - name: read - energy: 0.36264 primitive_estimation(s): - name: accelerator_top_level.Buffer[1..1] estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.flattened_architecture.yaml index 0d8de721..f0d1bb1e 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.flattened_architecture.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/00-model-conv1d-1level/output/timeloop-model.flattened_architecture.yaml @@ -24,10 +24,10 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: + - read - leak - write - update - - read enabled: true area_scale: 1.0 energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/parsed-processed-input.yaml index c9d827d5..0d69a069 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/parsed-processed-input.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/parsed-processed-input.yaml @@ -29,9 +29,9 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: + - update - write - read - - update - leak enabled: true - name: Buffer[1..1] @@ -53,9 +53,9 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: + - update - write - read - - update - leak enabled: true - name: MACC[1..1] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT.yaml index c03adb34..dbf49418 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT.yaml @@ -3,21 +3,21 @@ ERT: tables: - name: System_top_level.MainMemory[1..1] actions: - - name: write + - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 30.8783 - - name: read + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 43.3531 - - name: update + energy: 30.8783 + - name: read arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 30.8783 + energy: 43.3531 - name: leak arguments: global_cycle_seconds: 1e-09 @@ -25,17 +25,17 @@ ERT: energy: 0.00797208 - name: System_top_level.Buffer[1..1] actions: - - name: write + - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.36264 - - name: read + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.36264 - - name: update + - name: read arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT_summary.yaml index 7a5663a2..9cf8f3f2 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT_summary.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.ERT_summary.yaml @@ -3,12 +3,12 @@ ERT_summary: table_summary: - name: System_top_level.MainMemory[1..1] actions: + - name: update + energy: 30.8783 - name: write energy: 30.8783 - name: read energy: 43.3531 - - name: update - energy: 30.8783 - name: leak energy: 0.00797208 primitive_estimation(s): @@ -16,12 +16,12 @@ ERT_summary: estimator: CactiSRAM - name: System_top_level.Buffer[1..1] actions: + - name: update + energy: 0.36264 - name: write energy: 0.36264 - name: read energy: 0.36264 - - name: update - energy: 0.36264 - name: leak energy: 0.0003712 primitive_estimation(s): diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.flattened_architecture.yaml index b22bd6de..589c4d88 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.flattened_architecture.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/os/timeloop-model.flattened_architecture.yaml @@ -24,9 +24,9 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: + - update - write - read - - update - leak enabled: true area_scale: 1.0 @@ -54,9 +54,9 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: + - update - write - read - - update - leak enabled: true area_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/parsed-processed-input.yaml index 2b86b224..09a23f7e 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/parsed-processed-input.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/parsed-processed-input.yaml @@ -29,10 +29,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: - - read - - update - - write - leak + - write + - update + - read enabled: true - name: Buffer[1..1] class: regfile @@ -53,10 +53,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: - - read - - update - - write - leak + - write + - update + - read enabled: true - name: MACC[1..1] class: intmac diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT.yaml index 596242a5..90e0f5a3 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT.yaml @@ -3,48 +3,48 @@ ERT: tables: - name: System_top_level.MainMemory[1..1] actions: - - name: read + - name: leak arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 43.3531 - - name: update + energy: 0.00797208 + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 30.8783 - - name: write + - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 30.8783 - - name: leak + - name: read arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 0.00797208 + energy: 43.3531 - name: System_top_level.Buffer[1..1] actions: - - name: read + - name: leak arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 0.36264 - - name: update + energy: 0.0003712 + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.36264 - - name: write + - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.36264 - - name: leak + - name: read arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 0.0003712 + energy: 0.36264 - name: System_top_level.MACC[1..1] actions: - name: compute diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT_summary.yaml index 70180c12..a1f509f6 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT_summary.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.ERT_summary.yaml @@ -3,27 +3,27 @@ ERT_summary: table_summary: - name: System_top_level.MainMemory[1..1] actions: - - name: read - energy: 43.3531 - - name: update - energy: 30.8783 - - name: write - energy: 30.8783 - name: leak energy: 0.00797208 + - name: write + energy: 30.8783 + - name: update + energy: 30.8783 + - name: read + energy: 43.3531 primitive_estimation(s): - name: System_top_level.MainMemory[1..1] estimator: CactiSRAM - name: System_top_level.Buffer[1..1] actions: - - name: read + - name: leak + energy: 0.0003712 + - name: write energy: 0.36264 - name: update energy: 0.36264 - - name: write + - name: read energy: 0.36264 - - name: leak - energy: 0.0003712 primitive_estimation(s): - name: System_top_level.Buffer[1..1] estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.flattened_architecture.yaml index e4bef1af..67fb1ceb 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.flattened_architecture.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/01-model-conv1d-2level/output/ws/timeloop-model.flattened_architecture.yaml @@ -24,10 +24,10 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: - - read - - update - - write - leak + - write + - update + - read enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -54,10 +54,10 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: - - read - - update - - write - leak + - write + - update + - read enabled: true area_scale: 1.0 energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/arch/3level.arch.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/arch/3level.arch.yaml index 0a8c0433..1ec3043c 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/arch/3level.arch.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/arch/3level.arch.yaml @@ -11,6 +11,7 @@ architecture: name: MainMemory class: DRAM attributes: + depth: 327680 width: 256 datawidth: 8 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/parsed-processed-input.yaml new file mode 100644 index 00000000..fe41ed54 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/parsed-processed-input.yaml @@ -0,0 +1,175 @@ +dumped_by_timeloop_front_end: true +architecture: + version: '0.4' + subtree: + - name: System_top_level + attributes: + version: '0.4' + technology: "40nm" + global_cycle_seconds: 1e-9 + has_power_gating: false + power_gated_at: null + local: + - name: MainMemory[1..1] + class: DRAM + attributes: + depth: 327680 + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - read + - update + - write + - leak + enabled: true + - name: GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - read + - update + - write + - leak + enabled: true + - name: RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - read + - update + - write + - leak + enabled: true + - name: MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-9 + power_gated_at: null + required_actions: + - compute + enabled: true +architecture_constraints: + targets: [] +problem: + version: '0.4' + shape: + name: Conv1D_OC + dimensions: + - K + - R + - P + data_spaces: + - name: Weights + projection: + - - - K + - - - R + read_write: false + - name: Inputs + projection: + - - - R + - - P + read_write: false + - name: Outputs + projection: + - - - K + - - - P + read_write: true + coefficients: [] + instance: + K: 32 + R: 3 + P: 16 + densities: {} +compound_components: + version: '0.4' + classes: [] +mapping: + - target: MainMemory + type: temporal + factors: R=1,P=1,K=1 + permutation: PRK + - target: GlobalBuffer + type: temporal + factors: R=1,P=16,K=16 + permutation: PRK + - target: RegisterFile + type: temporal + factors: R=3,P=1,K=2 + permutation: RPK +mapper: + version: '0.4' + out_prefix: timeloop-mapper + num_threads: 8 + optimization_metric: [] + search_size: null + timeout: 1000 + victory_condition: null + sync_interval: null + log_interval: 1 + log_oaves: false + log_oaves_mappings: false + log_stats: false + log_suboptimal: false + live_status: false + diagnostics: false + penalize_consecutive_bypass_fails: false + emit_whoop_nest: false + max_temporal_loops_in_a_mapping: -1 + algorithm: hybrid + filter_revisits: false + max_permutations_per_if_visit: 16 +mapspace: + version: '0.4' + template: uber +globals: + version: '0.4' + environment_variables: {} + expression_custom_functions: [] + accelergy_plug_ins: [] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ART.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ART.yaml new file mode 100644 index 00000000..6b5c9f33 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ART.yaml @@ -0,0 +1,11 @@ +ART: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + - name: System_top_level.RegisterFile[1..1] + area: 845.98 + - name: System_top_level.MACC[1..1] + area: 466.375 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ART_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ART_summary.yaml new file mode 100644 index 00000000..343bd2dd --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ART_summary.yaml @@ -0,0 +1,15 @@ +ART_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + area: 0.0 + primitive_estimations: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + area: 707084.0 + primitive_estimations: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + area: 845.98 + primitive_estimations: Aladdin_table + - name: System_top_level.MACC[1..1] + area: 466.375 + primitive_estimations: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ERT.yaml new file mode 100644 index 00000000..6a9e4e94 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ERT.yaml @@ -0,0 +1,76 @@ +ERT: + version: '0.4' + tables: + - name: System_top_level.MainMemory[1..1] + actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 2048.0 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0 + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 43.3531 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 30.8783 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.00797208 + - name: System_top_level.RegisterFile[1..1] + actions: + - name: read + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: update + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: write + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.36264 + - name: leak + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.0003712 + - name: System_top_level.MACC[1..1] + actions: + - name: compute + arguments: + global_cycle_seconds: 1e-09 + action_latency_cycles: 1 + energy: 0.845 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ERT_summary.yaml new file mode 100644 index 00000000..37210b87 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.ERT_summary.yaml @@ -0,0 +1,49 @@ +ERT_summary: + version: '0.4' + table_summary: + - name: System_top_level.MainMemory[1..1] + actions: + - name: read + energy: 2048.0 + - name: update + energy: 2048.0 + - name: write + energy: 2048.0 + - name: leak + energy: 0.0 + primitive_estimation(s): + - name: System_top_level.MainMemory[1..1] + estimator: CactiDRAM + - name: System_top_level.GlobalBuffer[1..1] + actions: + - name: read + energy: 43.3531 + - name: update + energy: 30.8783 + - name: write + energy: 30.8783 + - name: leak + energy: 0.00797208 + primitive_estimation(s): + - name: System_top_level.GlobalBuffer[1..1] + estimator: CactiSRAM + - name: System_top_level.RegisterFile[1..1] + actions: + - name: read + energy: 0.36264 + - name: update + energy: 0.36264 + - name: write + energy: 0.36264 + - name: leak + energy: 0.0003712 + primitive_estimation(s): + - name: System_top_level.RegisterFile[1..1] + estimator: Aladdin_table + - name: System_top_level.MACC[1..1] + actions: + - name: compute + energy: 0.845 + primitive_estimation(s): + - name: System_top_level.MACC[1..1] + estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.flattened_architecture.yaml new file mode 100644 index 00000000..ce9b54e1 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.flattened_architecture.yaml @@ -0,0 +1,112 @@ +architecture: + version: '0.4' + local: + - name: System_top_level.MainMemory[1..1] + class: DRAM + attributes: + depth: 327680 + width: 256 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - read + - update + - write + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.GlobalBuffer[1..1] + class: SRAM + attributes: + depth: 32768 + width: 64 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - read + - update + - write + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.RegisterFile[1..1] + class: regfile + attributes: + depth: 64 + width: 8 + datawidth: 8 + has_power_gating: false + n_banks: 2 + cluster_size: 1 + reduction_supported: true + multiple_buffering: 1 + min_utilization: 0 + allow_overbooking: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - read + - update + - write + - leak + enabled: true + area_scale: 1.0 + energy_scale: 1.0 + - name: System_top_level.MACC[1..1] + class: intmac + attributes: + width: 8 + has_power_gating: false + meshX: 1 + meshY: 1 + technology: "40nm" + global_cycle_seconds: 1e-09 + power_gated_at: null + version: '0.4' + action_latency_cycles: 1 + cycle_seconds: 1e-09 + n_instances: 1 + required_actions: + - compute + enabled: true + area_scale: 1.0 + energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.map.tensella.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.map.tensella.txt new file mode 100644 index 00000000..b5873b21 --- /dev/null +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/03-model-conv1d+oc-3level/output/no-bypass/timeloop-model.map.tensella.txt @@ -0,0 +1,9 @@ +t2 +K 1 R 1 P 1 +P +t1 +K 16 R 1 P 16 +PK +t0 +K 2 R 3 P 1 +RK diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/parsed-processed-input.yaml index 9cc5c402..9a1c0324 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/parsed-processed-input.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/parsed-processed-input.yaml @@ -29,10 +29,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: - - write + - read - update + - write - leak - - read enabled: true - name: GlobalBuffer[1..1] class: SRAM @@ -53,10 +53,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: - - write + - read - update + - write - leak - - read enabled: true - name: inter_PE_spatial[1..1] class: dummy_storage @@ -96,10 +96,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: - - write + - read - update + - write - leak - - read enabled: true - name: MACC[1..16] class: intmac diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT.yaml index 2231c382..ef9bc529 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT.yaml @@ -3,7 +3,7 @@ ERT: tables: - name: System_top_level.MainMemory[1..1] actions: - - name: write + - name: read arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 @@ -13,41 +13,41 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 2048.0 - - name: leak + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 0.0 - - name: read + energy: 2048.0 + - name: leak arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 2048.0 + energy: 0.0 - name: System_top_level.GlobalBuffer[1..1] actions: - - name: write + - name: read arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 30.8783 + energy: 43.3531 - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 30.8783 - - name: leak + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 0.00797208 - - name: read + energy: 30.8783 + - name: leak arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 43.3531 + energy: 0.00797208 - name: System_top_level.RegisterFile[1..16] actions: - - name: write + - name: read arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 @@ -57,16 +57,16 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.36264 - - name: leak + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 0.0003712 - - name: read + energy: 0.36264 + - name: leak arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 0.36264 + energy: 0.0003712 - name: System_top_level.MACC[1..16] actions: - name: compute diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT_summary.yaml index 760cb8d7..5dd9c35e 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT_summary.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.ERT_summary.yaml @@ -3,40 +3,40 @@ ERT_summary: table_summary: - name: System_top_level.MainMemory[1..1] actions: - - name: write + - name: read energy: 2048.0 - name: update energy: 2048.0 + - name: write + energy: 2048.0 - name: leak energy: 0.0 - - name: read - energy: 2048.0 primitive_estimation(s): - name: System_top_level.MainMemory[1..1] estimator: CactiDRAM - name: System_top_level.GlobalBuffer[1..1] actions: - - name: write - energy: 30.8783 + - name: read + energy: 43.3531 - name: update energy: 30.8783 + - name: write + energy: 30.8783 - name: leak energy: 0.00797208 - - name: read - energy: 43.3531 primitive_estimation(s): - name: System_top_level.GlobalBuffer[1..1] estimator: CactiSRAM - name: System_top_level.RegisterFile[1..16] actions: - - name: write + - name: read energy: 0.36264 - name: update energy: 0.36264 + - name: write + energy: 0.36264 - name: leak energy: 0.0003712 - - name: read - energy: 0.36264 primitive_estimation(s): - name: System_top_level.RegisterFile[1..16] estimator: Aladdin_table diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.flattened_architecture.yaml index f260fa0e..ffbf29ca 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.flattened_architecture.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/cp/timeloop-model.flattened_architecture.yaml @@ -24,10 +24,10 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: - - write + - read - update + - write - leak - - read enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -54,10 +54,10 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: - - write + - read - update + - write - leak - - read enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -109,10 +109,10 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: - - write + - read - update + - write - leak - - read enabled: true area_scale: 1.0 energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml index fd803088..3308ffc8 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml @@ -30,9 +30,9 @@ architecture: power_gated_at: null required_actions: - leak - - write - - read - update + - read + - write enabled: true - name: GlobalBuffer[1..1] class: SRAM @@ -54,9 +54,9 @@ architecture: power_gated_at: null required_actions: - leak - - write - - read - update + - read + - write enabled: true - name: inter_PE_spatial[1..1] class: dummy_storage @@ -97,9 +97,9 @@ architecture: power_gated_at: null required_actions: - leak - - write - - read - update + - read + - write enabled: true - name: MACC[1..16] class: intmac diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT.yaml index d9cd9b90..2c351977 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT.yaml @@ -8,7 +8,7 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.0 - - name: write + - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 @@ -18,7 +18,7 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 2048.0 - - name: update + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 @@ -30,7 +30,7 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.00797208 - - name: write + - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 @@ -40,7 +40,7 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 43.3531 - - name: update + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 @@ -52,7 +52,7 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.0003712 - - name: write + - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 @@ -62,7 +62,7 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 0.36264 - - name: update + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT_summary.yaml index 11e750b7..ba9980de 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT_summary.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.ERT_summary.yaml @@ -5,11 +5,11 @@ ERT_summary: actions: - name: leak energy: 0.0 - - name: write + - name: update energy: 2048.0 - name: read energy: 2048.0 - - name: update + - name: write energy: 2048.0 primitive_estimation(s): - name: System_top_level.MainMemory[1..1] @@ -18,11 +18,11 @@ ERT_summary: actions: - name: leak energy: 0.00797208 - - name: write + - name: update energy: 30.8783 - name: read energy: 43.3531 - - name: update + - name: write energy: 30.8783 primitive_estimation(s): - name: System_top_level.GlobalBuffer[1..1] @@ -31,11 +31,11 @@ ERT_summary: actions: - name: leak energy: 0.0003712 - - name: write + - name: update energy: 0.36264 - name: read energy: 0.36264 - - name: update + - name: write energy: 0.36264 primitive_estimation(s): - name: System_top_level.RegisterFile[1..16] diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.flattened_architecture.yaml index a0110418..c183c7ae 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.flattened_architecture.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/timeloop-model.flattened_architecture.yaml @@ -25,9 +25,9 @@ architecture: n_instances: 1 required_actions: - leak - - write - - read - update + - read + - write enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -55,9 +55,9 @@ architecture: n_instances: 1 required_actions: - leak - - write - - read - update + - read + - write enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -110,9 +110,9 @@ architecture: n_instances: 1 required_actions: - leak - - write - - read - update + - read + - write enabled: true area_scale: 1.0 energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml index 00cdfcbc..a22bdd0b 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml @@ -30,10 +30,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: + - leak - write - - update - read - - leak + - update enabled: true - name: shared_glb[1..1] class: smartbuffer_SRAM @@ -56,10 +56,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: + - leak - write - - update - read - - leak + - update enabled: true - name: inter_PE_column_spatial[1..1] class: dummy_storage @@ -120,10 +120,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: + - leak - write - - update - read - - leak + - update enabled: true - name: weights_spad[1..168] class: smartbuffer_RF @@ -146,10 +146,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: + - leak - write - - update - read - - leak + - update enabled: true - name: psum_spad[1..168] class: smartbuffer_RF @@ -173,10 +173,10 @@ architecture: global_cycle_seconds: 1e-9 power_gated_at: null required_actions: + - leak - write - - update - read - - leak + - update enabled: true - name: mac[1..168] class: intmac diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT.yaml index d8420b85..e00da4ca 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT.yaml @@ -3,12 +3,12 @@ ERT: tables: - name: system_top_level.DRAM[1..1] actions: - - name: write + - name: leak arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 512.0 - - name: update + energy: 0.0 + - name: write arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 @@ -18,11 +18,11 @@ ERT: global_cycle_seconds: 1e-09 action_latency_cycles: 1 energy: 512.0 - - name: leak + - name: update arguments: global_cycle_seconds: 1e-09 action_latency_cycles: 1 - energy: 0.0 + energy: 512.0 - name: system_top_level.shared_glb[1..1] actions: - name: write diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT_summary.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT_summary.yaml index 6c2fd4c4..9c5e0c41 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT_summary.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.ERT_summary.yaml @@ -3,14 +3,14 @@ ERT_summary: table_summary: - name: system_top_level.DRAM[1..1] actions: + - name: leak + energy: 0.0 - name: write energy: 512.0 - - name: update - energy: 512.0 - name: read energy: 512.0 - - name: leak - energy: 0.0 + - name: update + energy: 512.0 primitive_estimation(s): - name: system_top_level.DRAM[1..1] estimator: CactiDRAM diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.flattened_architecture.yaml b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.flattened_architecture.yaml index ba3900dd..b4121e8e 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.flattened_architecture.yaml +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/timeloop-model.flattened_architecture.yaml @@ -25,10 +25,10 @@ architecture: cycle_seconds: 1e-09 n_instances: 1 required_actions: + - leak - write - - update - read - - leak + - update enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -66,10 +66,10 @@ architecture: static_energy_scale: 1.0 n_rdwr_ports: 1 required_actions: + - leak - write - - update - read - - leak + - update enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -157,10 +157,10 @@ architecture: static_energy_scale: 0.09375 n_rdwr_ports: 1 required_actions: + - leak - write - - update - read - - leak + - update enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -198,10 +198,10 @@ architecture: static_energy_scale: 0.5 n_rdwr_ports: 1 required_actions: + - leak - write - - update - read - - leak + - update enabled: true area_scale: 1.0 energy_scale: 1.0 @@ -240,10 +240,10 @@ architecture: static_energy_scale: 0.125 n_rdwr_ports: 1 required_actions: + - leak - write - - update - read - - leak + - update enabled: true area_scale: 1.0 energy_scale: 1.0 diff --git a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt index 1394d7e4..de778551 100644 --- a/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt +++ b/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/test.txt @@ -1,5 +1,5 @@ -input file: /home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml -execute:/home/arch/miniconda3/bin/accelergy /home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/06-model-convlayer-eyeriss/output/parsed-processed-input.yaml --oprefix timeloop-model. -o ./ > timeloop-model.accelergy.log 2>&1 +input file: /home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml +execute:/home/arch/miniconda3/bin/accelergy /home/arch/accelergy-timeloop-infrastructure/src/timeloop/workspace/tutorial_exercises/01_accelergy_timeloop_2020_ispass/timeloop/04-model-conv1d+oc-3levelspatial/output/kp/parsed-processed-input.yaml --oprefix timeloop-model. -o ./ > timeloop-model.accelergy.log 2>&1 Start Parsering Layout Hello timeloop in model ! No Layout specified, so using bandwidth based modeling @@ -7,4700 +7,7273 @@ No Layout specified, so using bandwidth based modeling [..c/model/topology.cpp:1297 (Evaluate)] mapping = Mapping ID = 0 Loop Nest: ---------- -for Q in [0:4) - for C in [0:4) - for P in [0:7) - for M in [0:4) +for P in [0:1) ------------------------------------------ - for M in [0:2) - for C in [0:4) - for P in [0:8) + for C in [0:32) + for K in [0:2) + for R in [0:3) ------------------------------------------ - for Q in [0:1) - for Q in [0:14) (Spatial-X) + for P in [0:1) + for K in [0:16) (Spatial-X) ------------------------------------------ - for Q in [0:1) - for M in [0:4) (Spatial-Y) - for S in [0:3) (Spatial-Y) ------------------------------------------- - for Q in [0:1) ------------------------------------------- - for R in [0:3) - for C in [0:8) ------------------------------------------- - for M in [0:8) + for P in [0:16) Datatype Bypass Nest: --------------------- -Weights: 00000000000000000000000001000010 -Inputs: 00000000000000000000000001100100 -Outputs: 00000000000000000000000001100001 +Weights: 00000000000000000000000000001101 +Inputs: 00000000000000000000000000001101 +Outputs: 00000000000000000000000000001101 (Mapping&) -[..c/model/topology.cpp:1298 (Evaluate)] analysis = 0x7ffe4b9216a8 (analysis::NestAnalysis*) +[..c/model/topology.cpp:1298 (Evaluate)] analysis = 0x7ffff9750608 (analysis::NestAnalysis*) [..c/model/topology.cpp:1350 (Evaluate)] hello topology! [..c/model/topology.cpp:1353 (Evaluate)] function! Hello NestAnalysis! -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 15 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 14 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 13 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/0/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/0/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) t/0/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/0/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) t/0/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/0/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/0/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) t/0/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/1/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) t/0/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/0/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/0/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/2/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/2/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/2/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/3/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/3/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/3/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/4/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/4/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/4/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/5/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/5/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/5/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/6/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/6/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/6/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/7/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/7/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/7/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) t/0/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/8/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) t/0/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/0/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/0/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) t/0/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/9/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) t/0/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/0/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/0/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/10/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/10/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/10/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/11/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/11/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/11/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/12/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/12/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/12/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/13/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/13/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/13/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/14/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/14/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/14/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/15/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/15/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/15/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) t/0/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/16/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) t/0/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/0/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/0/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) t/0/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/17/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) t/0/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/0/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/0/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/18/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/18/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/18/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/19/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/19/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/19/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/20/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/20/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/20/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/21/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/21/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/21/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/22/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/22/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/22/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/23/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/23/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/23/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) t/0/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/24/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) t/0/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/0/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/0/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/0/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/0/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) t/0/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/25/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) t/0/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/26/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/26/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/26/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/27/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/27/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/27/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/28/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/28/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/28/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/29/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/29/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/29/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/30/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/30/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/30/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/31/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/31/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/31/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/32/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/32/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/32/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/33/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/33/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/33/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/34/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/34/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/34/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/35/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/35/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/35/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/36/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/36/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/36/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/37/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/37/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/37/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/38/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/38/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/38/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/39/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/39/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/39/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/40/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/40/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/40/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/41/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/41/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/41/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/42/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/42/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/42/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/43/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/43/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/43/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/44/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/44/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/44/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/45/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/45/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/45/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/46/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/46/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/46/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/47/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/47/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/47/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/48/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/48/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/48/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/49/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/49/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/49/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/50/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/50/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/50/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/51/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/51/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/51/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/52/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/52/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/52/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/53/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/53/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/53/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/54/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/54/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/54/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/55/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/55/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/55/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/56/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/56/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/56/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/57/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/57/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/57/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/58/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/58/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/58/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/59/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/59/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/59/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/60/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/60/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/60/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/61/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/61/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/61/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/62/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/62/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/62/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/63/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/63/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/63/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/64/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/64/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/64/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/65/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/65/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/65/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/66/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/66/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/66/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/67/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/67/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/67/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/68/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/68/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/68/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/69/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/69/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/69/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/70/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/70/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/70/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/71/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/71/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/71/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/72/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/72/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/72/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/73/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/73/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/73/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/74/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/74/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/74/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/75/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/75/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/75/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/76/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/76/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/76/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/77/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/77/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/77/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/78/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/78/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/78/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/79/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/79/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/79/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/80/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/80/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/80/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/81/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/81/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/81/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/82/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/82/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/82/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/83/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/83/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/83/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/84/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/84/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/84/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/85/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/85/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/85/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/86/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/86/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/86/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/87/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/87/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/87/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/88/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/88/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/88/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/89/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/89/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/89/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/90/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/90/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/90/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/91/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/91/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/91/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/92/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/92/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/92/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/93/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/93/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/93/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/94/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/94/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/94/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/95/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/95/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/95/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/96/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/96/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/96/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/97/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/97/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/97/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/98/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/98/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/98/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/99/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/99/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/99/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/100/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/100/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/100/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/101/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/101/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/101/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/102/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/102/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/102/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/103/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/103/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/103/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/104/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/104/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/104/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/105/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/105/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/105/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/106/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/106/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/106/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/107/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/107/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/107/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/108/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/108/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/108/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/109/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/109/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/109/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/110/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/110/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/110/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/111/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/111/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/111/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/112/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/112/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/112/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/113/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/113/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/113/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/114/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/114/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/114/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/115/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/115/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/115/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/116/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/116/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/116/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/117/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/117/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/117/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/118/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/118/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/118/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/119/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/119/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/119/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/120/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/120/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/120/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/121/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/121/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/121/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/122/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/122/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/122/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/123/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/123/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/123/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/124/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/124/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/124/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/125/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/125/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/125/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/126/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/126/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/126/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/127/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/127/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/127/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/128/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/128/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/128/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/129/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/129/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/129/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/130/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/130/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/130/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/131/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/131/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/131/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/132/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/132/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/132/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/133/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/133/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/133/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/134/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/134/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/134/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/135/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/135/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/135/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/136/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/136/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/136/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/137/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/137/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/137/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/138/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/138/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/138/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/139/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/139/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/139/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/140/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/140/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/140/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/141/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/141/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/141/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/142/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/142/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/142/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/143/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/143/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/143/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/144/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/144/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/144/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/145/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/145/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/145/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/146/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/146/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/146/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/147/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/147/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/147/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/148/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/148/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/148/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/149/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/149/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/149/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/150/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/150/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/150/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/151/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/151/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/151/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/152/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/152/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/152/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/153/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/153/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/153/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/154/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/154/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/154/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/155/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/155/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/155/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/156/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/156/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/156/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/157/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/157/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/157/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/158/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/158/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/158/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/159/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/159/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/159/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/160/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/160/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/160/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/161/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/161/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/161/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/162/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/162/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/162/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/163/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/163/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/163/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/164/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/164/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/164/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/165/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/165/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/165/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/166/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/166/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/166/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/167/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/167/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/167/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/168/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/168/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/168/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/169/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/169/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/169/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/170/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/170/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/170/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/171/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/171/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/171/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/172/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/172/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/172/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/173/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/173/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/173/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/174/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/174/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/174/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/175/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/175/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/175/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/176/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/176/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/176/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/177/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/177/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/177/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/178/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/178/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/178/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/179/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/179/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/179/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/180/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/180/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/180/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/181/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/181/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/181/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/182/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/182/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/182/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/183/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/183/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/183/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/184/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/184/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/184/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/185/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/185/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/185/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/186/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/186/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/186/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/187/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/187/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/187/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/188/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/188/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/188/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/189/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) + t/0/189/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 16, 16} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 16 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/189/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 16, 256} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/190/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/190/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/190/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = false (bool) +[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 1 (int32_t) + t/0/191/0/ s/0/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/1/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/2/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/3/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/4/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/5/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/6/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/7/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/8/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/9/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/10/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/11/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/12/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/13/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/14/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) + t/0/191/0/ s/0/0/15/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {1, 1, 0} (problem::PerDataSpace) +[..is/nest-analysis.cpp:1738 (ComputeAccurateMulticastedAccesses)] pv = 1 (uint32_t), num_matches[pv] = 16 (uint64_t&), delta.GetSize(pv) = 1 (uint64_t), match_set[pv] = {15, 14, 13, 0, 1, 2, 3, 4, 5, 6, ... size:16} (std::vector&) + t/0/191/ s/0/0/ +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {16, 1, 0} (problem::PerDataSpace) t/0/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 5120, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/1/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/1/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/1/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/1/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/1/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/1/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/1/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/1/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/1/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/1/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/1/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/1/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/1/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/1/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/1/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/1/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/1/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/1/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/1/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/1/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/1/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/1/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/1/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/1/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/1/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/1/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/1/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/1/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/1/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/1/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/1/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/1/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/1/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/1/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/1/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 13 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 6 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/4/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/4/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/4/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/4/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/4/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/4/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/4/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/4/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/4/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/4/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/4/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/4/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/4/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/4/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/4/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/4/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/4/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/4/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/4/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/4/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/4/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/4/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/4/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/4/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/4/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/4/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/4/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/4/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/4/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/4/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/4/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/4/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/4/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/4/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/4/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 4096, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/5/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/5/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/5/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/5/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/5/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/5/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/5/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/5/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/5/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/5/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/5/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/5/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/5/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/5/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/5/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/5/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/5/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/5/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/5/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/5/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/5/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/5/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/5/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/5/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/5/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/5/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/5/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/5/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/5/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/5/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/5/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/5/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/5/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/5/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/5/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 14 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 13 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/8/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/8/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/8/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/8/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/8/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/8/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/8/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/8/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/8/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/8/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/8/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/8/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/8/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/8/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/8/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/8/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/8/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/8/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/8/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/8/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/8/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/8/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/8/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/8/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/8/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/8/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/8/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/8/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/8/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/8/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/8/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/8/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/8/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/8/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/8/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 5120, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/9/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/9/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/9/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/9/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/9/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/9/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/9/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/9/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/9/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/9/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/9/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/9/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/9/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/9/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/9/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/9/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/9/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/9/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/9/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/9/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/9/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/9/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/9/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/9/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/9/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/9/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/9/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/9/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/9/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/9/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/9/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/9/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/9/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/9/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/9/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 13 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 6 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/12/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/12/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/12/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/12/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/12/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/12/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/12/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/12/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/12/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/12/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/12/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/12/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/12/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/12/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/12/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/12/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/12/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/12/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/12/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/12/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/12/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/12/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/12/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/12/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/12/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/12/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/12/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/12/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/12/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/12/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/12/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/12/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/12/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/12/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/12/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 4096, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/13/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/13/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/13/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/13/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/13/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/13/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/13/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/13/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/13/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/13/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/13/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/13/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/13/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/13/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/13/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/13/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/13/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/13/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/13/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/13/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/13/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/13/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/13/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/13/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/13/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/13/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/13/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/13/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/13/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/13/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/13/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/13/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/13/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/13/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/13/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 15 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 14 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 13 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/16/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/16/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/16/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/16/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/16/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/16/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/16/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/16/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/16/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/16/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/16/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/16/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/16/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/16/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/16/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/16/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/16/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/16/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/16/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/16/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/16/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/16/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/16/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/16/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/16/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/16/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/16/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/16/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/16/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/16/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/16/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/16/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/16/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/16/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/16/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 5120, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/17/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/17/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/17/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/17/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/17/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/17/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/17/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/17/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/17/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/17/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/17/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/17/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/17/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/17/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/17/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/17/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/17/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/17/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/17/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/17/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/17/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/17/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/17/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/17/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/17/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/17/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/17/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/17/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/17/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/17/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/17/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/17/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/17/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/17/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/17/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 13 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 6 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/20/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/20/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/20/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/20/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/20/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/20/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/20/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/20/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/20/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/20/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/20/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/20/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/20/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/20/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/20/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/20/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/20/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/20/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/20/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/20/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/20/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/20/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/20/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/20/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/20/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/20/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/20/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/20/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/20/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/20/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/20/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/20/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/20/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/20/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/20/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 4096, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/21/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/21/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/21/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/21/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/21/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/21/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/21/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/21/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/21/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/21/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/21/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/21/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/21/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/21/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/21/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/21/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/21/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/21/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/21/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/21/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/21/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/21/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/21/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/21/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/21/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/21/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/21/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/21/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/21/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/21/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/21/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/21/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/21/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/21/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/21/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 14 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 13 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/24/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/24/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/24/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/24/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/24/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/24/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/24/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/24/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/24/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/24/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/24/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/24/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/24/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/24/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/24/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/24/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/24/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/24/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/24/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/24/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/24/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/24/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/24/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/24/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/24/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/24/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/24/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/24/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/24/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/24/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/24/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/24/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/24/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/24/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/24/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 5120, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/25/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/25/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/25/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/25/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/25/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/25/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/25/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/25/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/25/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/25/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/25/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/25/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/25/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/25/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/25/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/25/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/25/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/25/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/25/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/25/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/25/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/25/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/25/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/25/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/25/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/25/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/25/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/25/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/25/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/25/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/25/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/25/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/25/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/25/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/25/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 13 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 6 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 12 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/28/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/28/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/28/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/28/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/28/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/28/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/28/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/28/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/28/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/28/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/28/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/28/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/28/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/28/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/28/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/28/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/28/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/28/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/28/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/28/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/28/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/28/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/28/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/28/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/28/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/28/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/28/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/28/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/28/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/28/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/28/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/28/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/28/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/28/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/28/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 4096, 7168} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 12 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 11 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/0/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/0/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/0/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/0/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/29/0/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/29/0/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/29/0/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/29/0/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/1/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/1/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/1/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/1/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/29/1/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/29/1/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/29/1/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/29/1/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/8/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/8/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/8/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/8/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/29/8/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/29/8/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/29/8/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/29/8/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/9/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/9/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/9/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/9/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/29/9/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/29/9/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/29/9/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/29/9/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 11 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 1 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 10 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/16/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/16/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/16/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/16/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/29/16/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/29/16/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/29/16/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/29/16/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/17/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/17/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/17/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/17/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/29/17/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/29/17/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/29/17/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/29/17/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 10 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 3 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 9 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/24/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/24/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/24/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/24/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/29/24/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/29/24/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {192, 24, 8} (problem::PerDataSpace) - t/29/24/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 72, 32} (problem::PerDataSpace) - t/29/24/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {2304, 384, 448} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 9 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 8 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 7 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 6 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:1146 (ComputeSpatialWorkingSet)] Hitting spatial level, level = 5 (int32_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 3 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 2 (int32_t), indices_[level] = 0 (int32_t&) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/25/0/0/0/0/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 8} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/25/0/0/0/1/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 2 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 2 (uint64_t) -[..is/nest-analysis.cpp:930 (ComputeTemporalWorkingSet)] gExtrapolateUniformTemporal = true (bool) -[..is/nest-analysis.cpp:955 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Iteration #0, level = 1 (int32_t), indices_[level] = 0 (int32_t&) - t/29/25/0/0/0/8/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) -[..is/nest-analysis.cpp:988 (ComputeTemporalWorkingSet)] Temporal Extrapolate: Virtual Block, level = 1 (int32_t), indices_[level] = 1 (int32_t&), num_virtual_iterations, virtual_iterations = 7 (uint64_t) - t/29/25/0/0/0/9/ s/0/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {8, 1, 0} (problem::PerDataSpace) - t/29/25/0/0/0/ s/0/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/29/25/0/0/ s/0/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 8, 8} (problem::PerDataSpace) - t/29/25/0/ s/0/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 24, 32} (problem::PerDataSpace) - t/29/25/ s/0/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {0, 128, 448} (problem::PerDataSpace) - t/29/ s/0/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {18432, 0, 7168} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {3072, 576, 512} (problem::PerDataSpace) t/ s/ -[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {294912, 430592, 802816} (problem::PerDataSpace) +[..is/nest-analysis.cpp:826 (ComputeDeltas)] point_set.GetSizes() = {3072, 576, 512} (problem::PerDataSpace) ----------- Manually printing ws_tiles ----------- [..c/model/topology.cpp:1401 (Evaluate)] function! -Utilization = 1.00 | pJ/Compute = 3.478 | Cycles = 5505024 +Utilization = 1.00 | pJ/Compute = 11.774 | Cycles = 3072 +🔍 启用Timeloop追踪模式: + - TIMELOOP_ENABLE_TRACING=1 + - TIMELOOP_DISABLE_TEMPORAL_EXTRAPOLATION=1 + - TIMELOOP_DISABLE_SPATIAL_EXTRAPOLATION=1 + 注意: 追踪模式会显著降低仿真速度,但提供更详细的分析 + ================================================================================ -Calling exercise 06_model. Code is: -def run_exercise_06_model(out_dir: str = "output"): - start_dir = os.path.join(THIS_SCRIPT_DIR, "06-model-convlayer-eyeriss") +Calling exercise 04_kp. Code is: +def run_exercise_04_kp(out_dir: str = "output"): + start_dir = os.path.join(THIS_SCRIPT_DIR, "04-model-conv1d+oc-3levelspatial") + # KP mapping spec = tl.Specification.from_yaml_files( os.path.join(start_dir, "arch/*.yaml"), - os.path.join(start_dir, "arch/components/*.yaml"), + os.path.join(start_dir, "map/conv1d+oc+ic-3levelspatial-kp-ws.map.yaml"), os.path.join(start_dir, "prob/*.yaml"), - os.path.join(start_dir, "map/*.yaml"), ) - tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}")) + tl.call_model(spec, output_dir=os.path.join(start_dir, f"{out_dir}/kp")) -🏃 正常模式运行 +🔍 Timeloop追踪模式已启用 +================================================== +环境变量设置: + TIMELOOP_ENABLE_TRACING = 1 + +⚠️ 注意: 追踪模式会显著降低仿真速度 + 建议仅在需要详细分析特定映射时使用 +================================================== -执行命令: python run_example.py 06_model +执行命令: python run_example.py 04_kp --enable-trace ================================================== ================================================== ✅ 执行完成! + +📊 追踪输出文件应该包含: + - 更详细的仿真日志 + - point-sets访问轨迹 + - 空间-时间坐标映射详情

oWDv!3tH=K4DE* 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