zigzag-dse 3.7.2__tar.gz → 3.7.4__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 (245) hide show
  1. {zigzag_dse-3.7.2/zigzag_dse.egg-info → zigzag_dse-3.7.4}/PKG-INFO +1 -1
  2. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/pyproject.toml +2 -2
  3. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_origin/test_ascend_like.py +2 -2
  4. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_origin/test_edge_tpu_like.py +2 -2
  5. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_origin/test_meta_prototype_like.py +2 -2
  6. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_origin/test_tesla_npu_like.py +2 -2
  7. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_origin/test_tpu_like.py +2 -2
  8. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_exploit_data_locality/test_ascend_like.py +2 -2
  9. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_exploit_data_locality/test_edge_tpu_like.py +2 -2
  10. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_exploit_data_locality/test_meta_prototype_like.py +2 -2
  11. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_exploit_data_locality/test_tesla_npu_like.py +2 -2
  12. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_exploit_data_locality/test_tpu_like.py +2 -2
  13. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_mix_spatial_mapping/test_ascend_like.py +2 -2
  14. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_mix_spatial_mapping/test_edge_tpu_like.py +2 -2
  15. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_mix_spatial_mapping/test_meta_prototype_like.py +2 -2
  16. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_mix_spatial_mapping/test_tesla_npu_like.py +2 -2
  17. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_mix_spatial_mapping/test_tpu_like.py +2 -2
  18. zigzag_dse-3.7.4/zigzag/__init__.py +1 -0
  19. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cost_model/cost_model.py +29 -16
  20. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/mapping/data_movement.py +11 -8
  21. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/mapping/mapping.py +2 -1
  22. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/visualization/results/plot_cme.py +4 -3
  23. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4/zigzag_dse.egg-info}/PKG-INFO +1 -1
  24. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag_dse.egg-info/top_level.txt +1 -0
  25. zigzag_dse-3.7.2/zigzag/__init__.py +0 -1
  26. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/LICENSE +0 -0
  27. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/MANIFEST.in +0 -0
  28. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/README.md +0 -0
  29. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/setup.cfg +0 -0
  30. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_imc/__init__.py +0 -0
  31. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_imc/test_aimc.py +0 -0
  32. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_imc/test_dimc.py +0 -0
  33. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_exploit_data_locality/__init__.py +0 -0
  34. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/tests/main/test_with_mix_spatial_mapping/__init__.py +0 -0
  35. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/__main__.py +0 -0
  36. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/api.py +0 -0
  37. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/README.md +0 -0
  38. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/__pycache__/cacti_parser.cpython-311.opt-typeguard421.pyc +0 -0
  39. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/__pycache__/cacti_parser.cpython-311.pyc +0 -0
  40. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/2DDRAM_Samsung2GbDDR2.cfg +0 -0
  41. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/2DDRAM_micron1Gb.cfg +0 -0
  42. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/3DDRAM_Samsung3D8Gb_extened.cfg +0 -0
  43. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/README +0 -0
  44. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/TSV.cc +0 -0
  45. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/TSV.h +0 -0
  46. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/Ucache.cc +0 -0
  47. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/Ucache.h +0 -0
  48. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/arbiter.cc +0 -0
  49. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/arbiter.h +0 -0
  50. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/area.cc +0 -0
  51. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/area.h +0 -0
  52. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/bank.cc +0 -0
  53. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/bank.h +0 -0
  54. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/basic_circuit.cc +0 -0
  55. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/basic_circuit.h +0 -0
  56. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cache.cfg_temp +0 -0
  57. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cache_old.cfg.out +0 -0
  58. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cacti +0 -0
  59. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cacti.i +0 -0
  60. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cacti.mk +0 -0
  61. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cacti_config_creator.py +0 -0
  62. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cacti_interface.cc +0 -0
  63. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cacti_interface.h +0 -0
  64. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/cacti_top.py +0 -0
  65. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/component.cc +0 -0
  66. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/component.h +0 -0
  67. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/const.h +0 -0
  68. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/contention.dat +0 -0
  69. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/crossbar.cc +0 -0
  70. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/crossbar.h +0 -0
  71. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/ddr3.cfg +0 -0
  72. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/decoder.cc +0 -0
  73. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/decoder.h +0 -0
  74. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/dram.cfg +0 -0
  75. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/example_mem_pool.yaml +0 -0
  76. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/extio.cc +0 -0
  77. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/extio.h +0 -0
  78. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/extio_technology.cc +0 -0
  79. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/extio_technology.h +0 -0
  80. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/htree2.cc +0 -0
  81. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/htree2.h +0 -0
  82. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/io.cc +0 -0
  83. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/io.h +0 -0
  84. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/lpddr.cfg +0 -0
  85. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/main.cc +0 -0
  86. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/makefile +0 -0
  87. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/mat.cc +0 -0
  88. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/mat.h +0 -0
  89. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/memcad.cc +0 -0
  90. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/memcad.h +0 -0
  91. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/memcad_parameters.cc +0 -0
  92. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/memcad_parameters.h +0 -0
  93. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/memorybus.cc +0 -0
  94. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/memorybus.h +0 -0
  95. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/nuca.cc +0 -0
  96. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/nuca.h +0 -0
  97. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/TSV.o +0 -0
  98. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/Ucache.o +0 -0
  99. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/arbiter.o +0 -0
  100. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/area.o +0 -0
  101. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/bank.o +0 -0
  102. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/basic_circuit.o +0 -0
  103. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/cacti +0 -0
  104. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/cacti_interface.o +0 -0
  105. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/component.o +0 -0
  106. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/crossbar.o +0 -0
  107. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/decoder.o +0 -0
  108. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/extio.o +0 -0
  109. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/extio_technology.o +0 -0
  110. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/htree2.o +0 -0
  111. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/io.o +0 -0
  112. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/main.o +0 -0
  113. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/mat.o +0 -0
  114. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/memcad.o +0 -0
  115. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/memcad_parameters.o +0 -0
  116. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/memorybus.o +0 -0
  117. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/nuca.o +0 -0
  118. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/parameter.o +0 -0
  119. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/powergating.o +0 -0
  120. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/router.o +0 -0
  121. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/subarray.o +0 -0
  122. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/technology.o +0 -0
  123. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/uca.o +0 -0
  124. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/obj_dbg/wire.o +0 -0
  125. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/parameter.cc +0 -0
  126. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/parameter.h +0 -0
  127. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/powergating.cc +0 -0
  128. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/powergating.h +0 -0
  129. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/regression.test +0 -0
  130. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/router.cc +0 -0
  131. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/router.h +0 -0
  132. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/sample_config_files/ddr3_cache.cfg +0 -0
  133. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/sample_config_files/diff_ddr3_cache.cfg +0 -0
  134. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/sample_config_files/lpddr3_cache.cfg +0 -0
  135. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/sample_config_files/wideio_cache.cfg +0 -0
  136. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/self_gen/cache.cfg.out +0 -0
  137. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/subarray.cc +0 -0
  138. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/subarray.h +0 -0
  139. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/16nm.dat +0 -0
  140. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/180nm-old.dat +0 -0
  141. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/180nm.dat +0 -0
  142. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/22nm.dat +0 -0
  143. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/32nm.dat +0 -0
  144. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/45nm.dat +0 -0
  145. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/65nm-old.dat +0 -0
  146. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/65nm.dat +0 -0
  147. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/90nm-old.dat +0 -0
  148. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/tech_params/90nm.dat +0 -0
  149. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/technology.cc +0 -0
  150. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/uca.cc +0 -0
  151. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/uca.h +0 -0
  152. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/version_cacti.h +0 -0
  153. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/wire.cc +0 -0
  154. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_master/wire.h +0 -0
  155. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/cacti_parser.py +0 -0
  156. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cacti/self_gen/cache.cfg +0 -0
  157. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cost_model/__init__.py +0 -0
  158. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cost_model/cost_model_imc.py +0 -0
  159. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/cost_model/port_activity.py +0 -0
  160. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/datatypes.py +0 -0
  161. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/__init__.py +0 -0
  162. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/accelerator.py +0 -0
  163. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/get_cacti_cost.py +0 -0
  164. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/imc_array.py +0 -0
  165. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/imc_unit.py +0 -0
  166. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/memory_hierarchy.py +0 -0
  167. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/memory_instance.py +0 -0
  168. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/memory_level.py +0 -0
  169. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/memory_port.py +0 -0
  170. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/operational_array.py +0 -0
  171. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/hardware/architecture/operational_unit.py +0 -0
  172. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/inputs/workload/alexnet.onnx +0 -0
  173. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/inputs/workload/mobilenetv2.onnx +0 -0
  174. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/inputs/workload/resnet18.onnx +0 -0
  175. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/mapping/__init__.py +0 -0
  176. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/mapping/mapping_assist_funcs.py +0 -0
  177. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/mapping/spatial_mapping.py +0 -0
  178. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/mapping/spatial_mapping_internal.py +0 -0
  179. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/mapping/temporal_mapping.py +0 -0
  180. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/__init__.py +0 -0
  181. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/loma/__init__.py +0 -0
  182. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/loma/engine.py +0 -0
  183. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/loma/loop.py +0 -0
  184. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/loma/memory_allocator.py +0 -0
  185. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/loma/multipermute.py +0 -0
  186. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/salsa/__init__.py +0 -0
  187. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/salsa/engine.py +0 -0
  188. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/opt/salsa/state.py +0 -0
  189. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/__init__.py +0 -0
  190. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/accelerator_factory.py +0 -0
  191. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/accelerator_validator.py +0 -0
  192. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/arguments.py +0 -0
  193. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/mapping_factory.py +0 -0
  194. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/mapping_validator.py +0 -0
  195. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/onnx/__init__.py +0 -0
  196. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/onnx/conv_parser.py +0 -0
  197. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/onnx/default_node_parser.py +0 -0
  198. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/onnx/gemm_parser.py +0 -0
  199. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/onnx/matmul_parser.py +0 -0
  200. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/onnx/onnx_model_parser.py +0 -0
  201. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/onnx/onnx_operator_parser.py +0 -0
  202. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/onnx/utils.py +0 -0
  203. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/upgraded_validator.py +0 -0
  204. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/workload_factory.py +0 -0
  205. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/parser/workload_validator.py +0 -0
  206. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/py.typed +0 -0
  207. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/__init__.py +0 -0
  208. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/evaluation/cost_model_evaluation.py +0 -0
  209. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/exploit_data_locality_stages.py +0 -0
  210. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/main.py +0 -0
  211. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/mapping/salsa.py +0 -0
  212. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/mapping/spatial_mapping_conversion.py +0 -0
  213. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/mapping/spatial_mapping_generation.py +0 -0
  214. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/mapping/temporal_mapping_generator_stage.py +0 -0
  215. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/parser/accelerator_parser.py +0 -0
  216. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/parser/onnx_model_parser.py +0 -0
  217. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/parser/workload_parser.py +0 -0
  218. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/results/plot_temporal_mapping.py +0 -0
  219. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/results/reduce_stages.py +0 -0
  220. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/results/save.py +0 -0
  221. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/results/visualization.py +0 -0
  222. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/run_opt_stages.py +0 -0
  223. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/stage.py +0 -0
  224. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/workload_iterator.py +0 -0
  225. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/stages/workload_parser.py +0 -0
  226. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/utils.py +0 -0
  227. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/visualization/__init__.py +0 -0
  228. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/visualization/graph/__init__.py +0 -0
  229. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/visualization/graph/memory_hierarchy.py +0 -0
  230. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/visualization/graph/workload.py +0 -0
  231. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/visualization/results/__init__.py +0 -0
  232. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/visualization/results/print_mapping.py +0 -0
  233. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/__init__.py +0 -0
  234. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/dnn_workload.py +0 -0
  235. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/dummy_node.py +0 -0
  236. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/layer_attribute.py +0 -0
  237. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/layer_attributes.py +0 -0
  238. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/layer_node.py +0 -0
  239. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/layer_node_abc.py +0 -0
  240. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/onnx_workload.py +0 -0
  241. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag/workload/workload_abc.py +0 -0
  242. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag_dse.egg-info/SOURCES.txt +0 -0
  243. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag_dse.egg-info/dependency_links.txt +0 -0
  244. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag_dse.egg-info/entry_points.txt +0 -0
  245. {zigzag_dse-3.7.2 → zigzag_dse-3.7.4}/zigzag_dse.egg-info/requires.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zigzag-dse
3
- Version: 3.7.2
3
+ Version: 3.7.4
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.7.2"
17
+ version = "3.7.4"
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" }]
@@ -50,7 +50,7 @@ Homepage = "https://github.com/KULeuven-MICAS/zigzag"
50
50
  realpython = "zigzag.__main__:main"
51
51
 
52
52
  [tool.bumpver]
53
- current_version = "3.7.2"
53
+ current_version = "3.7.4"
54
54
  version_pattern = "MAJOR.MINOR.PATCH"
55
55
  commit_message = "bump version {old_version} -> {new_version}"
56
56
  commit = true
@@ -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": (1940385435.76, 3028219.0),
13
- "zigzag/inputs/workload/resnet18.yaml": (2449578483.76, 3974885.0),
12
+ "zigzag/inputs/workload/resnet18.onnx": (1940385435.76, 3032311.0),
13
+ "zigzag/inputs/workload/resnet18.yaml": (2449578483.76, 3980000.0),
14
14
  }
15
15
 
16
16
 
@@ -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": (1906107856.91, 2868613.5),
13
- "zigzag/inputs/workload/resnet18.yaml": (2413348670.67, 3641431.0),
12
+ "zigzag/inputs/workload/resnet18.onnx": (1903229377.55, 2887804.5),
13
+ "zigzag/inputs/workload/resnet18.yaml": (2413348670.67, 3741293.0),
14
14
  }
15
15
 
16
16
 
@@ -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": (1873660858.24, 2679987.16),
13
- "zigzag/inputs/workload/resnet18.yaml": (2395695243.0, 3275453.0),
12
+ "zigzag/inputs/workload/resnet18.onnx": (1863284164.16, 2700449.66),
13
+ "zigzag/inputs/workload/resnet18.yaml": (2373454257.72, 3316037.0),
14
14
  }
15
15
 
16
16
 
@@ -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": (1844670026.55, 2706356.5),
13
- "zigzag/inputs/workload/resnet18.yaml": (2352110509.45, 3274219.66),
12
+ "zigzag/inputs/workload/resnet18.onnx": (1859923747.33, 2719709.75),
13
+ "zigzag/inputs/workload/resnet18.yaml": (2363901208.14, 3313105.91),
14
14
  }
15
15
 
16
16
 
@@ -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": (1871436380.66, 3685888.5),
13
- "zigzag/inputs/workload/resnet18.yaml": (2610625982.61, 5516489.0),
12
+ "zigzag/inputs/workload/resnet18.onnx": (1871436380.66, 3703960.5),
13
+ "zigzag/inputs/workload/resnet18.yaml": (2615172831.38, 5584991.0),
14
14
  }
15
15
 
16
16
 
@@ -11,8 +11,8 @@ workloads = (
11
11
  ens_lats = {
12
12
  "zigzag/inputs/workload/alexnet.onnx": (5649553476, 8605524),
13
13
  "zigzag/inputs/workload/mobilenetv2.onnx": (1880536921, 6472147),
14
- "zigzag/inputs/workload/resnet18.onnx": (1813915548.48, 3015266.0),
15
- "zigzag/inputs/workload/resnet18.yaml": (2338798423.04, 3958170.0),
14
+ "zigzag/inputs/workload/resnet18.onnx": (1813915548.47, 3017312.0),
15
+ "zigzag/inputs/workload/resnet18.yaml": (2338798423.04, 3961239.0),
16
16
  }
17
17
 
18
18
 
@@ -11,8 +11,8 @@ workloads = (
11
11
  ens_lats = {
12
12
  "zigzag/inputs/workload/alexnet.onnx": (5568602396.684999, 8134431),
13
13
  "zigzag/inputs/workload/mobilenetv2.onnx": (735250234.1699998, 2417321.0),
14
- "zigzag/inputs/workload/resnet18.onnx": (1783892066.11, 2951044.5),
15
- "zigzag/inputs/workload/resnet18.yaml": (2115121959.8699996, 3620941.0),
14
+ "zigzag/inputs/workload/resnet18.onnx": (1783892066.11, 2957953.5),
15
+ "zigzag/inputs/workload/resnet18.yaml": (2115121959.87, 3706985.0),
16
16
  }
17
17
 
18
18
 
@@ -11,8 +11,8 @@ workloads = (
11
11
  ens_lats = {
12
12
  "zigzag/inputs/workload/alexnet.onnx": (5679636177, 8279493),
13
13
  "zigzag/inputs/workload/mobilenetv2.onnx": (901087682, 2596085),
14
- "zigzag/inputs/workload/resnet18.onnx": (1721342830.56, 2680789.5),
15
- "zigzag/inputs/workload/resnet18.yaml": (2226399589.40, 3265450.0),
14
+ "zigzag/inputs/workload/resnet18.onnx": (1710966136.48, 2689737.0),
15
+ "zigzag/inputs/workload/resnet18.yaml": (2204158604.12, 3295822.0),
16
16
  }
17
17
 
18
18
 
@@ -11,8 +11,8 @@ workloads = (
11
11
  ens_lats = {
12
12
  "zigzag/inputs/workload/alexnet.onnx": (6039993369, 8373281),
13
13
  "zigzag/inputs/workload/mobilenetv2.onnx": (930699349, 1955657),
14
- "zigzag/inputs/workload/resnet18.onnx": (1709857690.01, 2701244.5),
15
- "zigzag/inputs/workload/resnet18.yaml": (2201631649.06, 3262988.33),
14
+ "zigzag/inputs/workload/resnet18.onnx": (1725111410.78, 2709223.75),
15
+ "zigzag/inputs/workload/resnet18.yaml": (2213422347.76, 3296500.58),
16
16
  }
17
17
 
18
18
 
@@ -11,8 +11,8 @@ workloads = (
11
11
  ens_lats = {
12
12
  "zigzag/inputs/workload/alexnet.onnx": (5475639039, 8963572),
13
13
  "zigzag/inputs/workload/mobilenetv2.onnx": (952681462, 21868059),
14
- "zigzag/inputs/workload/resnet18.onnx": (1735241704.2240005, 3756282.50),
15
- "zigzag/inputs/workload/resnet18.yaml": (2298383687.30, 5493246.0),
14
+ "zigzag/inputs/workload/resnet18.onnx": (1735241704.22, 3762552.5),
15
+ "zigzag/inputs/workload/resnet18.yaml": (2302362179.97, 5548138.0),
16
16
  }
17
17
 
18
18
 
@@ -13,8 +13,8 @@ workloads = (
13
13
  ens_lats = {
14
14
  "zigzag/inputs/workload/alexnet.onnx": (5664863934, 8479644),
15
15
  "zigzag/inputs/workload/mobilenetv2.onnx": (920740293, 3814440),
16
- "zigzag/inputs/workload/resnet18.onnx": (1811468387.52, 3117931.33),
17
- "zigzag/inputs/workload/resnet18.yaml": (2349013378.88, 3714899.66),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1811468387.52, 3119977.33),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2349013378.88, 3718548.66),
18
18
  }
19
19
 
20
20
 
@@ -13,8 +13,8 @@ workloads = (
13
13
  ens_lats = {
14
14
  "zigzag/inputs/workload/alexnet.onnx": (6159980160, 8337351),
15
15
  "zigzag/inputs/workload/mobilenetv2.onnx": (742114179, 2421959),
16
- "zigzag/inputs/workload/resnet18.onnx": (1735517944, 3834226.0),
17
- "zigzag/inputs/workload/resnet18.yaml": (2029477205, 4509461.0),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1735517943.87, 3834226.0),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2029477205.31, 4586293.0),
18
18
  }
19
19
 
20
20
 
@@ -13,8 +13,8 @@ workloads = (
13
13
  ens_lats = {
14
14
  "zigzag/inputs/workload/alexnet.onnx": (5681909132.480001, 8279495.0),
15
15
  "zigzag/inputs/workload/mobilenetv2.onnx": (909647916.68, 2602479.0),
16
- "zigzag/inputs/workload/resnet18.onnx": (1746339277.28, 2685566.66),
17
- "zigzag/inputs/workload/resnet18.yaml": (2250370155.48, 3247268.33),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1746642408.16, 2688913.66),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2249214190.04, 3278925.33),
18
18
  }
19
19
 
20
20
 
@@ -13,8 +13,8 @@ workloads = (
13
13
  ens_lats = {
14
14
  "zigzag/inputs/workload/alexnet.onnx": (6006136982.778, 8290892.0),
15
15
  "zigzag/inputs/workload/mobilenetv2.onnx": (947736166.5380002, 1857838.0),
16
- "zigzag/inputs/workload/resnet18.onnx": (1611048997.07, 2295226.5),
17
- "zigzag/inputs/workload/resnet18.yaml": (2101519570.14, 2841397.0),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1599110638.5, 2318166.5),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2084306723.24, 2889873.0),
18
18
  }
19
19
 
20
20
 
@@ -13,8 +13,8 @@ workloads = (
13
13
  ens_lats = {
14
14
  "zigzag/inputs/workload/alexnet.onnx": (5589583403, 8671208),
15
15
  "zigzag/inputs/workload/mobilenetv2.onnx": (932571650, 7304307),
16
- "zigzag/inputs/workload/resnet18.onnx": (1759424218.3160002, 4250030.0),
17
- "zigzag/inputs/workload/resnet18.yaml": (2191903732.78, 4601363.0),
16
+ "zigzag/inputs/workload/resnet18.onnx": (1759424218.32, 4256300.0),
17
+ "zigzag/inputs/workload/resnet18.yaml": (2191903732.78, 4657608.0),
18
18
  }
19
19
 
20
20
 
@@ -0,0 +1 @@
1
+ __version__ = "3.7.4"
@@ -10,10 +10,10 @@ import numpy as np
10
10
  from zigzag.cost_model.port_activity import PortActivity, PortBeginOrEndActivity
11
11
  from zigzag.datatypes import ArrayType, Constants, LayerOperand, MemoryOperand
12
12
  from zigzag.hardware.architecture.accelerator import Accelerator
13
- from zigzag.hardware.architecture.memory_instance import MemoryInstance
13
+ from zigzag.hardware.architecture.memory_level import MemoryLevel
14
14
  from zigzag.hardware.architecture.memory_port import MemoryPort
15
15
  from zigzag.hardware.architecture.operational_array import OperationalArray
16
- from zigzag.mapping.data_movement import AccessEnergy, DataDirection, MemoryAccesses
16
+ from zigzag.mapping.data_movement import AccessEnergy, DataDirection, FourWayDataMoving, MemoryAccesses
17
17
  from zigzag.mapping.mapping import Mapping
18
18
  from zigzag.mapping.spatial_mapping_internal import SpatialMappingInternal
19
19
  from zigzag.mapping.temporal_mapping import TemporalMapping
@@ -1141,24 +1141,37 @@ class CostModelEvaluation(CostModelEvaluationABC):
1141
1141
  self.mac_utilization1 = mac_utilization1
1142
1142
  self.mac_utilization2 = mac_utilization2
1143
1143
 
1144
- def get_total_inst_bandwidth(self, memory_instance: MemoryInstance) -> MemoryAccesses:
1145
- """Given a cost model evaluation and a memory instance, compute the memory's total instantaneous bandwidth
1146
- required throughout the execution of the layer that corresponds to this CME. Returns empty bandwidth
1147
- requirements if the given memory instance is not included in this CME's memory hierarchy.
1144
+ def get_total_inst_bandwidth(self, memory_level: MemoryLevel) -> FourWayDataMoving[int]:
1145
+ """Given a cost model evaluation and a memory level, compute the memory's total instantaneous bandwidth
1146
+ required throughout the execution of the layer that corresponds to this CME. Raises an assertion error
1147
+ if the given memory level is not included in this CME's memory hierarchy.
1148
1148
  NOTE: this function is used in Stream
1149
1149
  """
1150
- # Check which operands require offchip memory throughout the computation
1151
- offchip_mem_operands: list[MemoryOperand] = []
1152
- for op, memory_levels in self.mem_hierarchy_dict.items():
1153
- last_mem_level = memory_levels[-1]
1154
- if last_mem_level.memory_instance == memory_instance:
1155
- offchip_mem_operands.append(op)
1156
- # Obtain the required instantaneous bandwidth to/from offchip for these operands
1157
- total_inst_bw = MemoryAccesses(0, 0, 0, 0)
1158
- for mem_op in offchip_mem_operands:
1150
+ # Check that the given MemoryInstance is part of the memory hierarchy of this CME
1151
+ assert (
1152
+ memory_level in self.mem_level_list
1153
+ ), f"Memory level {memory_level} is not part of the memory hierarchy of this cost model evaluation."
1154
+ # Obtain the required instantaneous bandwidth to/from the memory for its operands during computation
1155
+ total_inst_bw = FourWayDataMoving(0, 0, 0, 0)
1156
+ for mem_op in memory_level.operands:
1159
1157
  layer_op = self.layer.memory_operand_links.mem_to_layer_op(mem_op)
1160
- inst_bw_4way = self.mapping.unit_mem_data_movement[layer_op][-1].req_mem_bw_inst
1158
+ req_bw_4way = self.mapping.unit_mem_data_movement[layer_op][-1].req_mem_bw_inst
1159
+ inst_bw_4way = FourWayDataMoving(
1160
+ req_bw_4way.rd_out_to_low,
1161
+ req_bw_4way.wr_in_by_low,
1162
+ req_bw_4way.rd_out_to_high,
1163
+ req_bw_4way.wr_in_by_high,
1164
+ )
1161
1165
  total_inst_bw += inst_bw_4way
1166
+ # Add the potential borrowed bandwidth by the loading phases (onloading and offloading)
1167
+ # As this bandwidth is already aggregated across all directions for a single port,
1168
+ # we put it in the WR_IN_BY_HIGH direction if the output memory operand is present in the memory level.
1169
+ # Otherwise, we put it in the RD_OUT_TO_LOW direction.
1170
+ for port in memory_level.port_list:
1171
+ if Constants.OUTPUT_MEM_OP in memory_level.operands:
1172
+ total_inst_bw.wr_in_by_high += self.total_loading_bw_during_computation[port]
1173
+ else:
1174
+ total_inst_bw.rd_out_to_low += self.total_loading_bw_during_computation[port]
1162
1175
  return total_inst_bw
1163
1176
 
1164
1177
  def __str__(self):
@@ -84,6 +84,9 @@ class FourWayDataMoving(Generic[T], metaclass=ABCMeta):
84
84
  self.wr_in_by_high * other,
85
85
  )
86
86
 
87
+ def __add__(self, other: "FourWayDataMoving[T]"):
88
+ return self._add_with_type(other, type(self))
89
+
87
90
  def __repr__(self):
88
91
  return (
89
92
  f"4waydatamoving (rd ^: {self.rd_out_to_high}, wr v: {self.wr_in_by_high}, "
@@ -124,14 +127,14 @@ class DataMovePattern:
124
127
 
125
128
  def __init__(self, operand: LayerOperand, mem_level: int):
126
129
  self.name = operand.name + str(mem_level)
127
- self.data_elem_move_count = MemoryAccesses(0, 0, 0, 0)
128
- self.data_precision = MemoryAccesses(0, 0, 0, 0)
129
- self.req_mem_bw_aver = MemoryAccesses(0, 0, 0, 0)
130
- self.req_mem_bw_inst = MemoryAccesses(0, 0, 0, 0)
131
- self.data_trans_period = MemoryAccesses(0, 0, 0, 0)
132
- self.data_trans_period_count = MemoryAccesses(0, 0, 0, 0)
133
- self.data_trans_amount_per_period = MemoryAccesses(0, 0, 0, 0)
134
- self.inst_data_trans_window = MemoryAccesses(0, 0, 0, 0)
130
+ self.data_elem_move_count = MemoryAccesses(0, 0, 0, 0) # elements
131
+ self.data_precision = MemoryAccesses(0, 0, 0, 0) # bits/element
132
+ self.req_mem_bw_aver = MemoryAccesses(0, 0, 0, 0) # bits/cycle
133
+ self.req_mem_bw_inst = MemoryAccesses(0, 0, 0, 0) # bits/cycle
134
+ self.data_trans_period = MemoryAccesses(0, 0, 0, 0) # cycles
135
+ self.data_trans_period_count = MemoryAccesses(0, 0, 0, 0) # periods
136
+ self.data_trans_amount_per_period = MemoryAccesses(0, 0, 0, 0) # elements
137
+ self.inst_data_trans_window = MemoryAccesses(0, 0, 0, 0) # cycles
135
138
 
136
139
  def set_data_elem_move_count(
137
140
  self,
@@ -481,9 +481,10 @@ class Mapping:
481
481
  # e.g. for the DTL of Global Buffer (Weight) talking to spatially unrolled Weight Reg File,
482
482
  # each Weight Reg File's required write BW is indicated by "_L",
483
483
  # while Global Buffer (Weight)'s required read BW is indicate by "_H"
484
+ # The unit of these variables is bits per cycle
484
485
  req_mem_bw_low_raw = {
485
486
  op: [
486
- data_each_level_unrolled[op][lv] / cycle_each_level[op][lv]
487
+ data_each_level_unrolled[op][lv] * self.data_precision_dict[op][lv] / cycle_each_level[op][lv]
487
488
  for lv in range(self.spatial_mapping.arch_level[op])
488
489
  ]
489
490
  for op in self.operand_list
@@ -31,10 +31,11 @@ GROUP_SPACING = 1
31
31
 
32
32
 
33
33
  def shorten_onnx_layer_name(name: str):
34
- """Names generated in the ONNX format are quite long (e.g. `layer1/layer1.0/conv2/Conv). This function extracts
35
- the most informative part"""
34
+ """Names generated in the ONNX format are quite long (e.g. `layer1/layer1.0/conv2/Conv`). This function extracts
35
+ the most informative part (`conv2/Conv` in this case)"""
36
36
  try:
37
- return name.split("/")[-2]
37
+ last_two = name.split("/")[-2:]
38
+ return "/".join(last_two)
38
39
  except IndexError:
39
40
  return name
40
41
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zigzag-dse
3
- Version: 3.7.2
3
+ Version: 3.7.4
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
@@ -1,5 +1,6 @@
1
1
  build
2
2
  dist
3
3
  lab1
4
+ rooflines
4
5
  tests
5
6
  zigzag
@@ -1 +0,0 @@
1
- __version__ = "3.7.2"
File without changes
File without changes
File without changes
File without changes
File without changes