zigzag-dse 3.2.0__tar.gz → 3.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. {zigzag_dse-3.2.0/zigzag_dse.egg-info → zigzag_dse-3.2.1}/PKG-INFO +1 -1
  2. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/pyproject.toml +6 -2
  3. zigzag_dse-3.2.1/tests/main/test_imc/test_aimc.py +41 -0
  4. zigzag_dse-3.2.1/tests/main/test_imc/test_dimc.py +41 -0
  5. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/tests/main/test_origin/test_ascend_like.py +3 -3
  6. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/tests/main/test_origin/test_edge_tpu_like.py +4 -4
  7. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/tests/main/test_origin/test_meta_prototype_like.py +4 -4
  8. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/tests/main/test_origin/test_tesla_npu_like.py +4 -4
  9. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/tests/main/test_origin/test_tpu_like.py +6 -6
  10. zigzag_dse-3.2.1/tests/main/test_with_exploit_data_locality/test_ascend_like.py +34 -0
  11. zigzag_dse-3.2.1/tests/main/test_with_exploit_data_locality/test_edge_tpu_like.py +34 -0
  12. zigzag_dse-3.2.1/tests/main/test_with_exploit_data_locality/test_meta_prototype_like.py +34 -0
  13. zigzag_dse-3.2.1/tests/main/test_with_exploit_data_locality/test_tesla_npu_like.py +34 -0
  14. zigzag_dse-3.2.1/tests/main/test_with_exploit_data_locality/test_tpu_like.py +34 -0
  15. zigzag_dse-3.2.1/tests/main/test_with_mix_spatial_mapping/test_ascend_like.py +37 -0
  16. zigzag_dse-3.2.1/tests/main/test_with_mix_spatial_mapping/test_edge_tpu_like.py +37 -0
  17. zigzag_dse-3.2.1/tests/main/test_with_mix_spatial_mapping/test_meta_prototype_like.py +37 -0
  18. zigzag_dse-3.2.1/tests/main/test_with_mix_spatial_mapping/test_tesla_npu_like.py +37 -0
  19. zigzag_dse-3.2.1/tests/main/test_with_mix_spatial_mapping/test_tpu_like.py +37 -0
  20. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/__init__.py +1 -1
  21. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/__main__.py +3 -4
  22. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/api.py +33 -29
  23. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/cacti/cacti_master/cacti_config_creator.py +38 -29
  24. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/cacti/cacti_master/cacti_top.py +7 -4
  25. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/cacti/cacti_parser.py +9 -10
  26. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/cost_model/cost_model.py +97 -101
  27. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/cost_model/cost_model_imc.py +4 -3
  28. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/cost_model/port_activity.py +16 -10
  29. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/Core.py +0 -1
  30. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/ImcArray.py +9 -4
  31. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/get_cacti_cost.py +65 -55
  32. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/imc_unit.py +14 -15
  33. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/memory_level.py +5 -2
  34. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/memory_port.py +0 -1
  35. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/operational_array.py +0 -1
  36. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/operational_unit.py +0 -1
  37. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/mapping/Mapping.py +29 -27
  38. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/mapping/SpatialMappingInternal.py +6 -3
  39. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/mapping/data_movement.py +105 -65
  40. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/mapping/mapping_assist_funcs.py +0 -1
  41. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/mapping/spatial_mapping.py +25 -4
  42. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/loma/LomaEngine.py +35 -23
  43. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/loma/MemoryAllocator.py +15 -11
  44. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/loma/multipermute.py +3 -4
  45. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/salsa/SalsaEngine.py +4 -2
  46. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/AcceleratorValidator.py +92 -17
  47. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/MappingValidator.py +45 -10
  48. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/UpgradedValidator.py +7 -2
  49. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/accelerator_factory.py +15 -4
  50. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/onnx/ConvParser.py +7 -44
  51. zigzag_dse-3.2.1/zigzag/parser/onnx/DefaultNodeParser.py +22 -0
  52. zigzag_dse-3.2.1/zigzag/parser/onnx/GemmParser.py +100 -0
  53. zigzag_dse-3.2.1/zigzag/parser/onnx/MatMulParser.py +70 -0
  54. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/onnx/ONNXModelParser.py +4 -3
  55. zigzag_dse-3.2.1/zigzag/parser/onnx/ONNXOperatorParser.py +106 -0
  56. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/onnx/utils.py +27 -20
  57. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/workload_factory.py +17 -3
  58. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/ONNXModelParserStage.py +8 -2
  59. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/PlotTemporalMappingsStage.py +7 -1
  60. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/SalsaStage.py +0 -1
  61. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/SpatialMappingConversionStage.py +20 -6
  62. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/SpatialMappingGeneratorStage.py +66 -25
  63. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/Stage.py +4 -2
  64. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/VisualizationStage.py +2 -1
  65. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/WorkloadParserStage.py +8 -1
  66. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/WorkloadStage.py +12 -3
  67. zigzag_dse-3.2.1/zigzag/stages/exploit_data_locality_stages.py +397 -0
  68. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/reduce_stages.py +15 -3
  69. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/run_opt_stages.py +1 -3
  70. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/save_stages.py +12 -2
  71. zigzag_dse-3.2.1/zigzag/stages/temporal_mapping_generator_stage.py +79 -0
  72. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/utils.py +1 -1
  73. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/visualization/results/plot_cme.py +7 -6
  74. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/visualization/results/print_mapping.py +12 -14
  75. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/workload/DNNWorkload.py +9 -2
  76. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/workload/DummyNode.py +16 -7
  77. zigzag_dse-3.2.1/zigzag/workload/ONNXWorkload.py +57 -0
  78. zigzag_dse-3.2.1/zigzag/workload/Workload.py +56 -0
  79. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/workload/layer_attributes.py +60 -11
  80. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/workload/layer_node.py +48 -2
  81. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1/zigzag_dse.egg-info}/PKG-INFO +1 -1
  82. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag_dse.egg-info/SOURCES.txt +8 -10
  83. zigzag_dse-3.2.0/tests/main/test_imc/test_aimc.py +0 -34
  84. zigzag_dse-3.2.0/tests/main/test_imc/test_dimc.py +0 -34
  85. zigzag_dse-3.2.0/tests/main/test_with_mix_spatial_mapping/test_ascend_like.py +0 -59
  86. zigzag_dse-3.2.0/tests/main/test_with_mix_spatial_mapping/test_edge_tpu_like.py +0 -75
  87. zigzag_dse-3.2.0/tests/main/test_with_mix_spatial_mapping/test_meta_prototype_like.py +0 -59
  88. zigzag_dse-3.2.0/tests/main/test_with_mix_spatial_mapping/test_tesla_npu_like.py +0 -55
  89. zigzag_dse-3.2.0/tests/main/test_with_mix_spatial_mapping/test_tpu_like.py +0 -63
  90. zigzag_dse-3.2.0/tests/main/test_without_unused_memory/test_ascend_like.py +0 -34
  91. zigzag_dse-3.2.0/tests/main/test_without_unused_memory/test_edge_tpu_like.py +0 -34
  92. zigzag_dse-3.2.0/tests/main/test_without_unused_memory/test_meta_prototype_like.py +0 -34
  93. zigzag_dse-3.2.0/tests/main/test_without_unused_memory/test_tesla_npu_like.py +0 -34
  94. zigzag_dse-3.2.0/tests/main/test_without_unused_memory/test_tpu_like.py +0 -34
  95. zigzag_dse-3.2.0/zigzag/parser/onnx/DefaultNodeParser.py +0 -30
  96. zigzag_dse-3.2.0/zigzag/parser/onnx/GemmParser.py +0 -117
  97. zigzag_dse-3.2.0/zigzag/parser/onnx/MatMulParser.py +0 -94
  98. zigzag_dse-3.2.0/zigzag/parser/onnx/ONNXOperatorParser.py +0 -55
  99. zigzag_dse-3.2.0/zigzag/stages/LomaStage.py +0 -49
  100. zigzag_dse-3.2.0/zigzag/stages/RemoveUnusedMemoryStage.py +0 -162
  101. zigzag_dse-3.2.0/zigzag/stages/SearchUnusedMemoryStage.py +0 -354
  102. zigzag_dse-3.2.0/zigzag/stages/TemporalOrderingConversionStage.py +0 -78
  103. zigzag_dse-3.2.0/zigzag/workload/ONNXWorkload.py +0 -29
  104. zigzag_dse-3.2.0/zigzag/workload/Workload.py +0 -32
  105. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/LICENSE +0 -0
  106. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/MANIFEST.in +0 -0
  107. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/README.md +0 -0
  108. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/setup.cfg +0 -0
  109. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/tests/main/test_imc/__init__.py +0 -0
  110. {zigzag_dse-3.2.0/tests/main/test_with_mix_spatial_mapping → zigzag_dse-3.2.1/tests/main/test_with_exploit_data_locality}/__init__.py +0 -0
  111. {zigzag_dse-3.2.0/tests/main/test_without_unused_memory → zigzag_dse-3.2.1/tests/main/test_with_mix_spatial_mapping}/__init__.py +0 -0
  112. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/cost_model/__init__.py +0 -0
  113. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/datatypes.py +0 -0
  114. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/Accelerator.py +0 -0
  115. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/Adder.py +0 -0
  116. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/MemoryHierarchy.py +0 -0
  117. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/MemoryInstance.py +0 -0
  118. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/hardware/architecture/__init__.py +0 -0
  119. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/inputs/workload/alexnet.onnx +0 -0
  120. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/inputs/workload/mobilenetv2.onnx +0 -0
  121. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/inputs/workload/resnet18.onnx +0 -0
  122. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/mapping/TemporalMapping.py +0 -0
  123. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/mapping/__init__.py +0 -0
  124. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/__init__.py +0 -0
  125. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/loma/Loop.py +0 -0
  126. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/loma/__init__.py +0 -0
  127. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/salsa/SalsaState.py +0 -0
  128. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/opt/salsa/__init__.py +0 -0
  129. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/WorkloadValidator.py +0 -0
  130. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/__init__.py +0 -0
  131. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/arguments.py +0 -0
  132. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/parser/onnx/__init__.py +0 -0
  133. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/py.typed +0 -0
  134. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/AcceleratorParserStage.py +0 -0
  135. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/CostModelStage.py +0 -0
  136. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/MainStage.py +0 -0
  137. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/PEArrayScalingStage.py +0 -0
  138. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/stages/__init__.py +0 -0
  139. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/visualization/__init__.py +0 -0
  140. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/visualization/graph/__init__.py +0 -0
  141. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/visualization/graph/memory_hierarchy.py +0 -0
  142. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/visualization/graph/workload.py +0 -0
  143. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/visualization/results/__init__.py +0 -0
  144. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/workload/LayerAttribute.py +0 -0
  145. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/workload/LayerNodeABC.py +0 -0
  146. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag/workload/__init__.py +0 -0
  147. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag_dse.egg-info/dependency_links.txt +0 -0
  148. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag_dse.egg-info/entry_points.txt +0 -0
  149. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag_dse.egg-info/requires.txt +0 -0
  150. {zigzag_dse-3.2.0 → zigzag_dse-3.2.1}/zigzag_dse.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zigzag-dse
3
- Version: 3.2.0
3
+ Version: 3.2.1
4
4
  Summary: ZigZag - Deep Learning Hardware Design Space Exploration
5
5
  Author-email: Arne Symons <arne.symons@kuleuven.be>, Linyan Mei <linyan.mei@kuleuven.be>
6
6
  License: MIT License
@@ -14,7 +14,7 @@ namespaces = true # true by default
14
14
 
15
15
  [project]
16
16
  name = "zigzag-dse"
17
- version = "3.2.0"
17
+ version = "3.2.1"
18
18
  description = "ZigZag - Deep Learning Hardware Design Space Exploration"
19
19
  readme = "README.md"
20
20
  authors = [{ name = "Arne Symons", email = "arne.symons@kuleuven.be" }, { name = "Linyan Mei", email = "linyan.mei@kuleuven.be" }]
@@ -48,7 +48,7 @@ Homepage = "https://github.com/KULeuven-MICAS/zigzag"
48
48
  realpython = "zigzag.__main__:main"
49
49
 
50
50
  [tool.bumpver]
51
- current_version = "3.2.0"
51
+ current_version = "3.2.1"
52
52
  version_pattern = "MAJOR.MINOR.PATCH"
53
53
  commit_message = "bump version {old_version} -> {new_version}"
54
54
  commit = true
@@ -63,4 +63,8 @@ push = false
63
63
  "zigzag/__init__.py" = ["{version}"]
64
64
 
65
65
 
66
+ [tool.ruff]
67
+ line-length = 120
66
68
 
69
+ [tool.black]
70
+ line-length = 120
@@ -0,0 +1,41 @@
1
+ import pytest
2
+
3
+ from zigzag.api import get_hardware_performance_zigzag_imc
4
+
5
+ workloads = (
6
+ "zigzag/inputs/workload/resnet18.onnx",
7
+ "zigzag/inputs/workload/resnet18.yaml",
8
+ )
9
+
10
+ # Expected energy, latency (#cycles), clk time and area for each workload defined above
11
+ ens_lats_clks_areas = {
12
+ "zigzag/inputs/workload/alexnet.onnx": (6780119394.667442, 9261169.0, 14.07244, 2.3426222152749223),
13
+ "zigzag/inputs/workload/mobilenetv2.onnx": (2318251910.682223, 10901796.0, 14.07244, 2.3426222152749223),
14
+ "zigzag/inputs/workload/resnet18.onnx": (4695729577.211851, 5540648.0, 14.07244, 2.3426222152749223),
15
+ "zigzag/inputs/workload/resnet18.yaml": (4264976904.6396008, 4907495.0, 14.07244, 2.3426222152749223),
16
+ }
17
+
18
+
19
+ @pytest.fixture
20
+ def mapping():
21
+ return "zigzag/inputs/mapping/default_imc.yaml"
22
+
23
+
24
+ @pytest.fixture
25
+ def accelerator():
26
+ return "zigzag/inputs/hardware/aimc.yaml"
27
+
28
+
29
+ @pytest.mark.parametrize("workload", workloads)
30
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
31
+ (energy, latency, tclk, area, _) = get_hardware_performance_zigzag_imc(workload, accelerator, mapping)
32
+ (
33
+ expected_energy,
34
+ expected_latency,
35
+ expected_tclk,
36
+ expected_area,
37
+ ) = ens_lats_clks_areas[workload]
38
+ assert energy == pytest.approx(expected_energy) # type: ignore
39
+ assert latency == pytest.approx(expected_latency) # type: ignore
40
+ assert tclk == pytest.approx(expected_tclk) # type: ignore
41
+ assert area == pytest.approx(expected_area) # type: ignore
@@ -0,0 +1,41 @@
1
+ import pytest
2
+
3
+ from zigzag.api import get_hardware_performance_zigzag_imc
4
+
5
+ workloads = (
6
+ "zigzag/inputs/workload/resnet18.onnx",
7
+ "zigzag/inputs/workload/resnet18.yaml",
8
+ )
9
+
10
+ # Expected energy, latency (#cycles), clk time and area for each workload defined above
11
+ ens_lats_clks_areas = {
12
+ "zigzag/inputs/workload/alexnet.onnx": (6811036226.435776, 9458913.0, 3.75708, 0.8566212024),
13
+ "zigzag/inputs/workload/mobilenetv2.onnx": (2884847085.7898636, 20453908.0, 3.75708, 0.8566212024),
14
+ "zigzag/inputs/workload/resnet18.onnx": (4726170712.825855, 6337728.0, 3.75708, 0.8566212024),
15
+ "zigzag/inputs/workload/resnet18.yaml": (4268285089.3547516, 5789229.0, 3.75708, 0.8566212024),
16
+ }
17
+
18
+
19
+ @pytest.fixture
20
+ def mapping():
21
+ return "zigzag/inputs/mapping/default_imc.yaml"
22
+
23
+
24
+ @pytest.fixture
25
+ def accelerator():
26
+ return "zigzag/inputs/hardware/dimc.yaml"
27
+
28
+
29
+ @pytest.mark.parametrize("workload", workloads)
30
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
31
+ (energy, latency, tclk, area, _) = get_hardware_performance_zigzag_imc(workload, accelerator, mapping)
32
+ (
33
+ expected_energy,
34
+ expected_latency,
35
+ expected_tclk,
36
+ expected_area,
37
+ ) = ens_lats_clks_areas[workload]
38
+ assert energy == pytest.approx(expected_energy) # type: ignore
39
+ assert latency == pytest.approx(expected_latency) # type: ignore
40
+ assert tclk == pytest.approx(expected_tclk) # type: ignore
41
+ assert area == pytest.approx(expected_area) # type: ignore
@@ -25,9 +25,9 @@ def accelerator():
25
25
 
26
26
 
27
27
  @pytest.mark.parametrize("workload", workloads)
28
- def test_api(workload: str, accelerator: str, mapping: str):
28
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
29
29
  (energy, latency, _) = get_hardware_performance_zigzag(workload, accelerator, mapping)
30
30
  (expected_energy, expected_latency) = ens_lats[workload]
31
31
  print(f"'{workload}': ({energy}, {latency}),")
32
- assert energy == pytest.approx(expected_energy)
33
- assert latency == pytest.approx(expected_latency)
32
+ assert energy == pytest.approx(expected_energy) # type: ignore
33
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -25,9 +25,9 @@ def accelerator():
25
25
 
26
26
 
27
27
  @pytest.mark.parametrize("workload", workloads)
28
- def test_api(workload: str, accelerator: str, mapping: str):
29
- (energy, latency, cmes) = get_hardware_performance_zigzag(workload, accelerator, mapping)
28
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
29
+ (energy, latency, _) = get_hardware_performance_zigzag(workload, accelerator, mapping)
30
30
  (expected_energy, expected_latency) = ens_lats[workload]
31
31
  print(f"'{workload}': ({energy}, {latency}),")
32
- assert energy == pytest.approx(expected_energy)
33
- assert latency == pytest.approx(expected_latency)
32
+ assert energy == pytest.approx(expected_energy) # type: ignore
33
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -25,9 +25,9 @@ def accelerator():
25
25
 
26
26
 
27
27
  @pytest.mark.parametrize("workload", workloads)
28
- def test_api(workload: str, accelerator: str, mapping: str):
29
- (energy, latency, cmes) = get_hardware_performance_zigzag(workload, accelerator, mapping)
28
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
29
+ (energy, latency, _) = get_hardware_performance_zigzag(workload, accelerator, mapping)
30
30
  (expected_energy, expected_latency) = ens_lats[workload]
31
31
  print(f"'{workload}': ({energy}, {latency}),")
32
- assert energy == pytest.approx(expected_energy)
33
- assert latency == pytest.approx(expected_latency)
32
+ assert energy == pytest.approx(expected_energy) # type: ignore
33
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -25,9 +25,9 @@ def accelerator():
25
25
 
26
26
 
27
27
  @pytest.mark.parametrize("workload", workloads)
28
- def test_api(workload: str, accelerator: str, mapping: str):
29
- (energy, latency, cmes) = get_hardware_performance_zigzag(workload, accelerator, mapping)
28
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
29
+ (energy, latency, _) = get_hardware_performance_zigzag(workload, accelerator, mapping)
30
30
  (expected_energy, expected_latency) = ens_lats[workload]
31
31
  print(f"'{workload}': ({energy}, {latency}),")
32
- assert energy == pytest.approx(expected_energy)
33
- assert latency == pytest.approx(expected_latency)
32
+ assert energy == pytest.approx(expected_energy) # type: ignore
33
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -9,8 +9,8 @@ workloads = (
9
9
 
10
10
  # Expected energy and latency for each workload defined above
11
11
  ens_lats = {
12
- "zigzag/inputs/workload/resnet18.onnx": (1795904402.5120003, 4158539.0),
13
- "zigzag/inputs/workload/resnet18.yaml": (2296490149.296, 4906975.0),
12
+ "zigzag/inputs/workload/resnet18.onnx": (1871436380.6559997, 4158539.0),
13
+ "zigzag/inputs/workload/resnet18.yaml": (2615172831.3759995, 6136285.0),
14
14
  }
15
15
 
16
16
 
@@ -25,9 +25,9 @@ def accelerator():
25
25
 
26
26
 
27
27
  @pytest.mark.parametrize("workload", workloads)
28
- def test_api(workload: str, accelerator: str, mapping: str):
28
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
29
29
  (energy, latency, _) = get_hardware_performance_zigzag(workload, accelerator, mapping)
30
30
  (expected_energy, expected_latency) = ens_lats[workload]
31
- print(f"{workload}: ({energy}, {latency}),")
32
- assert energy == pytest.approx(expected_energy)
33
- assert latency == pytest.approx(expected_latency)
31
+ print(f"'{workload}': ({energy}, {latency}),")
32
+ assert energy == pytest.approx(expected_energy) # type: ignore
33
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,34 @@
1
+ import pytest
2
+ from zigzag.api import get_hardware_performance_zigzag_with_exploit_data_locality
3
+
4
+ workloads = (
5
+ "zigzag/inputs/workload/resnet18.onnx",
6
+ "zigzag/inputs/workload/resnet18.yaml",
7
+ )
8
+
9
+ # Expected energy and latency for each workload defined above
10
+ ens_lats = {
11
+ "zigzag/inputs/workload/alexnet.onnx": (5649553476, 8605524),
12
+ "zigzag/inputs/workload/mobilenetv2.onnx": (1880536921, 6472147),
13
+ "zigzag/inputs/workload/resnet18.onnx": (1711355797, 3567658),
14
+ "zigzag/inputs/workload/resnet18.yaml": (2246606942, 4638794),
15
+ }
16
+
17
+
18
+ @pytest.fixture
19
+ def mapping():
20
+ return "zigzag/inputs/mapping/ascend_like.yaml"
21
+
22
+
23
+ @pytest.fixture
24
+ def accelerator():
25
+ return "zigzag/inputs/hardware/ascend_like.yaml"
26
+
27
+
28
+ @pytest.mark.parametrize("workload", workloads)
29
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
30
+ (energy, latency, _) = get_hardware_performance_zigzag_with_exploit_data_locality(workload, accelerator, mapping)
31
+ (expected_energy, expected_latency) = ens_lats[workload]
32
+ print(f"'{workload}': ({energy}, {latency}),")
33
+ assert energy == pytest.approx(expected_energy) # type: ignore
34
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,34 @@
1
+ import pytest
2
+ from zigzag.api import get_hardware_performance_zigzag_with_exploit_data_locality
3
+
4
+ workloads = (
5
+ "zigzag/inputs/workload/resnet18.onnx",
6
+ "zigzag/inputs/workload/resnet18.yaml",
7
+ )
8
+
9
+ # Expected energy and latency for each workload defined above
10
+ ens_lats = {
11
+ "zigzag/inputs/workload/alexnet.onnx": (5568602396.684999, 8134431),
12
+ "zigzag/inputs/workload/mobilenetv2.onnx": (735250234.1699998, 2417321.0),
13
+ "zigzag/inputs/workload/resnet18.onnx": (1783299827.71, 3156625.0),
14
+ "zigzag/inputs/workload/resnet18.yaml": (2115121959.8699996, 3855157.0),
15
+ }
16
+
17
+
18
+ @pytest.fixture
19
+ def mapping():
20
+ return "zigzag/inputs/mapping/edge_tpu_like.yaml"
21
+
22
+
23
+ @pytest.fixture
24
+ def accelerator():
25
+ return "zigzag/inputs/hardware/edge_tpu_like.yaml"
26
+
27
+
28
+ @pytest.mark.parametrize("workload", workloads)
29
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
30
+ (energy, latency, _) = get_hardware_performance_zigzag_with_exploit_data_locality(workload, accelerator, mapping)
31
+ (expected_energy, expected_latency) = ens_lats[workload]
32
+ print(f"'{workload}': ({energy}, {latency}),")
33
+ assert energy == pytest.approx(expected_energy) # type: ignore
34
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,34 @@
1
+ import pytest
2
+ from zigzag.api import get_hardware_performance_zigzag_with_exploit_data_locality
3
+
4
+ workloads = (
5
+ "zigzag/inputs/workload/resnet18.onnx",
6
+ "zigzag/inputs/workload/resnet18.yaml",
7
+ )
8
+
9
+ # Expected energy and latency for each workload defined above
10
+ ens_lats = {
11
+ "zigzag/inputs/workload/alexnet.onnx": (5679636177, 8279493),
12
+ "zigzag/inputs/workload/mobilenetv2.onnx": (901087682, 2596085),
13
+ "zigzag/inputs/workload/resnet18.onnx": (1730188945, 3231087),
14
+ "zigzag/inputs/workload/resnet18.yaml": (2264057101, 3984645),
15
+ }
16
+
17
+
18
+ @pytest.fixture
19
+ def mapping():
20
+ return "zigzag/inputs/mapping/meta_prototype_like.yaml"
21
+
22
+
23
+ @pytest.fixture
24
+ def accelerator():
25
+ return "zigzag/inputs/hardware/meta_prototype.yaml"
26
+
27
+
28
+ @pytest.mark.parametrize("workload", workloads)
29
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
30
+ (energy, latency, _) = get_hardware_performance_zigzag_with_exploit_data_locality(workload, accelerator, mapping)
31
+ (expected_energy, expected_latency) = ens_lats[workload]
32
+ print(f"'{workload}': ({energy}, {latency}),")
33
+ assert energy == pytest.approx(expected_energy) # type: ignore
34
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,34 @@
1
+ import pytest
2
+ from zigzag.api import get_hardware_performance_zigzag_with_exploit_data_locality
3
+
4
+ workloads = (
5
+ "zigzag/inputs/workload/resnet18.onnx",
6
+ "zigzag/inputs/workload/resnet18.yaml",
7
+ )
8
+
9
+ # Expected energy and latency for each workload defined above
10
+ ens_lats = {
11
+ "zigzag/inputs/workload/alexnet.onnx": (6039993369, 8373281),
12
+ "zigzag/inputs/workload/mobilenetv2.onnx": (930699349, 1955657),
13
+ "zigzag/inputs/workload/resnet18.onnx": (1724869587, 3247768),
14
+ "zigzag/inputs/workload/resnet18.yaml": (2220200680, 3924484),
15
+ }
16
+
17
+
18
+ @pytest.fixture
19
+ def mapping():
20
+ return "zigzag/inputs/mapping/tesla_npu_like.yaml"
21
+
22
+
23
+ @pytest.fixture
24
+ def accelerator():
25
+ return "zigzag/inputs/hardware/tesla_npu_like.yaml"
26
+
27
+
28
+ @pytest.mark.parametrize("workload", workloads)
29
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
30
+ (energy, latency, _) = get_hardware_performance_zigzag_with_exploit_data_locality(workload, accelerator, mapping)
31
+ (expected_energy, expected_latency) = ens_lats[workload]
32
+ print(f"'{workload}': ({energy}, {latency}),")
33
+ assert energy == pytest.approx(expected_energy) # type: ignore
34
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,34 @@
1
+ import pytest
2
+ from zigzag.api import get_hardware_performance_zigzag_with_exploit_data_locality
3
+
4
+ workloads = (
5
+ "zigzag/inputs/workload/resnet18.onnx",
6
+ "zigzag/inputs/workload/resnet18.yaml",
7
+ )
8
+
9
+ # Expected energy and latency for each workload defined above
10
+ ens_lats = {
11
+ "zigzag/inputs/workload/alexnet.onnx": (5475639039, 8963572),
12
+ "zigzag/inputs/workload/mobilenetv2.onnx": (952681462, 21868059),
13
+ "zigzag/inputs/workload/resnet18.onnx": (1735241704.2240005, 3998241.0),
14
+ "zigzag/inputs/workload/resnet18.yaml": (2302362179.968, 5736497.0),
15
+ }
16
+
17
+
18
+ @pytest.fixture
19
+ def mapping():
20
+ return "zigzag/inputs/mapping/tpu_like.yaml"
21
+
22
+
23
+ @pytest.fixture
24
+ def accelerator():
25
+ return "zigzag/inputs/hardware/tpu_like.yaml"
26
+
27
+
28
+ @pytest.mark.parametrize("workload", workloads)
29
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
30
+ (energy, latency, _) = get_hardware_performance_zigzag_with_exploit_data_locality(workload, accelerator, mapping)
31
+ (expected_energy, expected_latency) = ens_lats[workload]
32
+ print(f"'{workload}': ({energy}, {latency}),")
33
+ assert energy == pytest.approx(expected_energy) # type: ignore
34
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,37 @@
1
+ import pytest
2
+
3
+ from zigzag.api import get_hardware_performance_zigzag_with_mix_spatial_mapping
4
+
5
+ # Test case for when spatial_mapping is provided, while spatial_mapping_hint is not provided.
6
+
7
+ workloads = (
8
+ "zigzag/inputs/workload/resnet18.onnx",
9
+ "zigzag/inputs/workload/resnet18.yaml",
10
+ )
11
+
12
+ # Expected energy and latency for each workload defined above
13
+ ens_lats = {
14
+ "zigzag/inputs/workload/alexnet.onnx": (5664863934, 8479644),
15
+ "zigzag/inputs/workload/mobilenetv2.onnx": (920740293, 3814440),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1680938520, 3697986),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2286320480, 4418088),
18
+ }
19
+
20
+
21
+ @pytest.fixture
22
+ def mapping():
23
+ return "zigzag/inputs/mapping/ascend_like_mixed.yaml"
24
+
25
+
26
+ @pytest.fixture
27
+ def accelerator():
28
+ return "zigzag/inputs/hardware/ascend_like.yaml"
29
+
30
+
31
+ @pytest.mark.parametrize("workload", workloads)
32
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
33
+ (energy, latency, _) = get_hardware_performance_zigzag_with_mix_spatial_mapping(workload, accelerator, mapping)
34
+ (expected_energy, expected_latency) = ens_lats[workload]
35
+ print(f"'{workload}': ({energy}, {latency}),")
36
+ assert energy == pytest.approx(expected_energy) # type: ignore
37
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,37 @@
1
+ import pytest
2
+
3
+ from zigzag.api import get_hardware_performance_zigzag_with_mix_spatial_mapping
4
+
5
+ # Test case for when both spatial_mapping and spatial_mapping_hint are provided.
6
+
7
+ workloads = (
8
+ "zigzag/inputs/workload/resnet18.onnx",
9
+ "zigzag/inputs/workload/resnet18.yaml",
10
+ )
11
+
12
+ # Expected energy and latency for each workload defined above
13
+ ens_lats = {
14
+ "zigzag/inputs/workload/alexnet.onnx": (6159980160, 8337351),
15
+ "zigzag/inputs/workload/mobilenetv2.onnx": (742114179, 2421959),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1735517944, 4055269),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2029477205, 4738407),
18
+ }
19
+
20
+
21
+ @pytest.fixture
22
+ def mapping():
23
+ return "zigzag/inputs/mapping/edge_tpu_like_mixed.yaml"
24
+
25
+
26
+ @pytest.fixture
27
+ def accelerator():
28
+ return "zigzag/inputs/hardware/edge_tpu_like.yaml"
29
+
30
+
31
+ @pytest.mark.parametrize("workload", workloads)
32
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
33
+ (energy, latency, _) = get_hardware_performance_zigzag_with_mix_spatial_mapping(workload, accelerator, mapping)
34
+ (expected_energy, expected_latency) = ens_lats[workload]
35
+ print(f"'{workload}': ({energy}, {latency}),")
36
+ assert energy == pytest.approx(expected_energy) # type: ignore
37
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,37 @@
1
+ import pytest
2
+
3
+ from zigzag.api import get_hardware_performance_zigzag_with_mix_spatial_mapping
4
+
5
+ # Test case for when an incomplete spatial_mapping is provided and spatial_mapping_hint is also provided.
6
+
7
+ workloads = (
8
+ "zigzag/inputs/workload/resnet18.onnx",
9
+ "zigzag/inputs/workload/resnet18.yaml",
10
+ )
11
+
12
+ # Expected energy and latency for each workload defined above
13
+ ens_lats = {
14
+ "zigzag/inputs/workload/alexnet.onnx": (5681909132.480001, 8279495.0),
15
+ "zigzag/inputs/workload/mobilenetv2.onnx": (909647916.68, 2602479.0),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1751779924.0000002, 3234867.0),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2259198622.68, 3884859.0),
18
+ }
19
+
20
+
21
+ @pytest.fixture
22
+ def mapping():
23
+ return "zigzag/inputs/mapping/meta_prototype_like_mixed.yaml"
24
+
25
+
26
+ @pytest.fixture
27
+ def accelerator():
28
+ return "zigzag/inputs/hardware/meta_prototype.yaml"
29
+
30
+
31
+ @pytest.mark.parametrize("workload", workloads)
32
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
33
+ (energy, latency, _) = get_hardware_performance_zigzag_with_mix_spatial_mapping(workload, accelerator, mapping)
34
+ (expected_energy, expected_latency) = ens_lats[workload]
35
+ print(f"'{workload}': ({energy}, {latency}),")
36
+ assert energy == pytest.approx(expected_energy) # type: ignore
37
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,37 @@
1
+ import pytest
2
+
3
+ from zigzag.api import get_hardware_performance_zigzag_with_mix_spatial_mapping
4
+
5
+ # Test case for when only spatial_mapping_hint is provided.
6
+
7
+ workloads = (
8
+ "zigzag/inputs/workload/resnet18.onnx",
9
+ "zigzag/inputs/workload/resnet18.yaml",
10
+ )
11
+
12
+ # Expected energy and latency for each workload defined above
13
+ ens_lats = {
14
+ "zigzag/inputs/workload/alexnet.onnx": (6006136982.778, 8290892.0),
15
+ "zigzag/inputs/workload/mobilenetv2.onnx": (947736166.5380002, 1857838.0),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1604556365.552, 2828301.0),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2094141825.5040002, 3480232.0),
18
+ }
19
+
20
+
21
+ @pytest.fixture
22
+ def mapping():
23
+ return "zigzag/inputs/mapping/tesla_npu_like_mixed.yaml"
24
+
25
+
26
+ @pytest.fixture
27
+ def accelerator():
28
+ return "zigzag/inputs/hardware/tesla_npu_like.yaml"
29
+
30
+
31
+ @pytest.mark.parametrize("workload", workloads)
32
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621
33
+ (energy, latency, _) = get_hardware_performance_zigzag_with_mix_spatial_mapping(workload, accelerator, mapping)
34
+ (expected_energy, expected_latency) = ens_lats[workload]
35
+ print(f"'{workload}': ({energy}, {latency}),")
36
+ assert energy == pytest.approx(expected_energy) # type: ignore
37
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -0,0 +1,37 @@
1
+ import pytest
2
+
3
+ from zigzag.api import get_hardware_performance_zigzag_with_mix_spatial_mapping
4
+
5
+ # Test case for when more non-existent dimensions are provided in spatial_mapping_hint.
6
+
7
+ workloads = (
8
+ "zigzag/inputs/workload/resnet18.onnx",
9
+ "zigzag/inputs/workload/resnet18.yaml",
10
+ )
11
+
12
+ # Expected energy and latency for each workload defined above
13
+ ens_lats = {
14
+ "zigzag/inputs/workload/alexnet.onnx": (5589583403, 8671208),
15
+ "zigzag/inputs/workload/mobilenetv2.onnx": (932571650, 7304307),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1759424218.3160002, 4495469.0),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2191903732.78, 4845353.0),
18
+ }
19
+
20
+
21
+ @pytest.fixture
22
+ def mapping():
23
+ return "zigzag/inputs/mapping/tpu_like_mixed.yaml"
24
+
25
+
26
+ @pytest.fixture
27
+ def accelerator():
28
+ return "zigzag/inputs/hardware/tpu_like.yaml"
29
+
30
+
31
+ @pytest.mark.parametrize("workload", workloads)
32
+ def test_api(workload: str, accelerator: str, mapping: str): # pylint: disable=W0621 # pylint: disable=W0621
33
+ (energy, latency, _) = get_hardware_performance_zigzag_with_mix_spatial_mapping(workload, accelerator, mapping)
34
+ (expected_energy, expected_latency) = ens_lats[workload]
35
+ print(f"'{workload}': ({energy}, {latency}),")
36
+ assert energy == pytest.approx(expected_energy) # type: ignore
37
+ assert latency == pytest.approx(expected_latency) # type: ignore
@@ -1,3 +1,3 @@
1
- __version__ = "3.2.0"
1
+ __version__ = "3.2.1"
2
2
 
3
3
  # from . import visualization as visualization
@@ -1,5 +1,4 @@
1
1
  from datetime import datetime
2
- from zigzag.stages import *
3
2
 
4
3
  from zigzag.stages.CostModelStage import CostModelStage
5
4
  from zigzag.stages.MainStage import MainStage
@@ -9,7 +8,7 @@ from zigzag.stages.WorkloadStage import WorkloadStage
9
8
  from zigzag.stages.AcceleratorParserStage import AcceleratorParserStage
10
9
  from zigzag.stages.reduce_stages import MinimalLatencyStage
11
10
  from zigzag.stages.save_stages import SimpleSaveStage
12
- from zigzag.stages.LomaStage import LomaStage
11
+ from zigzag.stages.temporal_mapping_generator_stage import TemporalMappingGeneratorStage
13
12
  from zigzag.parser.arguments import get_arg_parser
14
13
 
15
14
 
@@ -36,14 +35,14 @@ def main():
36
35
  WorkloadStage, # Iterates through the different layers in the workload
37
36
  SpatialMappingConversionStage, # Generates multiple spatial mappings (SM)
38
37
  MinimalLatencyStage, # Reduces all CMEs, returning minimal latency one
39
- LomaStage, # Generates multiple temporal mappings (TM)
38
+ TemporalMappingGeneratorStage, # Generates multiple temporal mappings (TM)
40
39
  CostModelStage, # Evaluates generated SM and TM through cost model
41
40
  ],
42
41
  accelerator_path=args.accelerator, # required by AcceleratorParserStage
43
42
  onnx_model_path=args.model, # required by ONNXModelParserStage
44
43
  mapping_path=args.mapping, # required by ONNXModelParserStage
45
44
  dump_folder=f"outputs/{datetime.now()}", # Output folder
46
- loma_lpf_limit=6, # required by LomaStage
45
+ loma_lpf_limit=6, # required by TemporalMappingGeneratorStage
47
46
  loma_show_progress_bar=True, # shows a progress bar while iterating over temporal mappings
48
47
  )
49
48