accelforge 0.0.1__py3-none-any.whl

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 (258) hide show
  1. accelforge/__init__.py +21 -0
  2. accelforge/_accelerated_imports.py +16 -0
  3. accelforge/_deprecate/_simanneal/evalmapping.py +271 -0
  4. accelforge/_deprecate/_simanneal/mapspaceglobals.py +298 -0
  5. accelforge/_deprecate/_simanneal/simanneal.py +666 -0
  6. accelforge/_deprecate/_simanneal/tracking.py +105 -0
  7. accelforge/_deprecate/_simanneal/wrappers.py +218 -0
  8. accelforge/_deprecate/_simanneal2/__init__.py +7 -0
  9. accelforge/_deprecate/_simanneal2/simanneal.py +493 -0
  10. accelforge/_deprecate/_simanneal2/tracking.py +116 -0
  11. accelforge/_deprecate/compatibility_util.py +181 -0
  12. accelforge/_deprecate/layerdeduplication/__init__.py +2 -0
  13. accelforge/_deprecate/layerdeduplication/group_similar_einsums.py +160 -0
  14. accelforge/_deprecate/layerdeduplication/grouped_einsums.py +84 -0
  15. accelforge/_deprecate/mapping_filter_tags/__init__.py +2 -0
  16. accelforge/_deprecate/mapping_filter_tags/ffmt.py +212 -0
  17. accelforge/_deprecate/mapping_filter_tags/onesplit.py +24 -0
  18. accelforge/_deprecate/mapping_filter_tags/util.py +24 -0
  19. accelforge/_deprecate/tags.py +69 -0
  20. accelforge/_deprecate/viz/__init__.py +0 -0
  21. accelforge/_deprecate/viz/interactive.py +159 -0
  22. accelforge/_deprecate/viz/reservationtree.py +307 -0
  23. accelforge/_deprecate/viz/ski_slope.py +88 -0
  24. accelforge/_version.py +15 -0
  25. accelforge/examples.py +39 -0
  26. accelforge/frontend/__init__.py +10 -0
  27. accelforge/frontend/_binding.py +129 -0
  28. accelforge/frontend/_workload_isl/__init__.py +2 -0
  29. accelforge/frontend/_workload_isl/_isl.py +149 -0
  30. accelforge/frontend/_workload_isl/_symbolic.py +141 -0
  31. accelforge/frontend/arch copy.py +1544 -0
  32. accelforge/frontend/arch.py +1642 -0
  33. accelforge/frontend/config.py +63 -0
  34. accelforge/frontend/mapper/__init__.py +5 -0
  35. accelforge/frontend/mapper/ffm.py +126 -0
  36. accelforge/frontend/mapper/mapper.py +7 -0
  37. accelforge/frontend/mapper/metrics.py +30 -0
  38. accelforge/frontend/mapping/__init__.py +1 -0
  39. accelforge/frontend/mapping/mapping.py +1736 -0
  40. accelforge/frontend/model.py +14 -0
  41. accelforge/frontend/renames.py +150 -0
  42. accelforge/frontend/spec copy.py +230 -0
  43. accelforge/frontend/spec.py +301 -0
  44. accelforge/frontend/variables.py +12 -0
  45. accelforge/frontend/workload.py +952 -0
  46. accelforge/mapper/FFM/__init__.py +9 -0
  47. accelforge/mapper/FFM/_join_pmappings/__init__.py +0 -0
  48. accelforge/mapper/FFM/_join_pmappings/compatibility.py +653 -0
  49. accelforge/mapper/FFM/_join_pmappings/compress_pmappings.py +140 -0
  50. accelforge/mapper/FFM/_join_pmappings/join_pmappings.py +703 -0
  51. accelforge/mapper/FFM/_join_pmappings/pmapping_dataframe.py +901 -0
  52. accelforge/mapper/FFM/_join_pmappings/pmapping_group.py +337 -0
  53. accelforge/mapper/FFM/_make_pmappings/contraints/__init__.py +0 -0
  54. accelforge/mapper/FFM/_make_pmappings/contraints/constraints.py +360 -0
  55. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/__init__.py +1 -0
  56. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_loops.py +373 -0
  57. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_pmapping_templates.py +463 -0
  58. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_reservations.py +95 -0
  59. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_storage_order.py +382 -0
  60. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_storages.py +155 -0
  61. accelforge/mapper/FFM/_make_pmappings/make_pmappings.py +411 -0
  62. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/__init__.py +1 -0
  63. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/make_pmappings_from_templates.py +407 -0
  64. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/make_tile_shapes.py +1681 -0
  65. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/run_model.py +170 -0
  66. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/symbol_relations.py +174 -0
  67. accelforge/mapper/FFM/_make_pmappings/pmapper_job.py +282 -0
  68. accelforge/mapper/FFM/_pareto_df/df_convention.py +273 -0
  69. accelforge/mapper/FFM/_pareto_df/pareto copy.py +836 -0
  70. accelforge/mapper/FFM/_pareto_df/pareto.py +508 -0
  71. accelforge/mapper/FFM/data.py +61 -0
  72. accelforge/mapper/FFM/main copy.py +236 -0
  73. accelforge/mapper/FFM/main.py +208 -0
  74. accelforge/mapper/FFM/mappings.py +510 -0
  75. accelforge/mapper/FFM/pmappings.py +310 -0
  76. accelforge/mapper/__init__.py +4 -0
  77. accelforge/mapper.py +0 -0
  78. accelforge/model/__init__.py +1 -0
  79. accelforge/model/_looptree/__init__.py +0 -0
  80. accelforge/model/_looptree/accesses.py +335 -0
  81. accelforge/model/_looptree/capacity/__init__.py +1 -0
  82. accelforge/model/_looptree/capacity/aggregators.py +36 -0
  83. accelforge/model/_looptree/capacity/capacity.py +47 -0
  84. accelforge/model/_looptree/energy.py +150 -0
  85. accelforge/model/_looptree/equivalent_ranks.py +29 -0
  86. accelforge/model/_looptree/latency/__init__.py +1 -0
  87. accelforge/model/_looptree/latency/latency.py +98 -0
  88. accelforge/model/_looptree/latency/memory.py +120 -0
  89. accelforge/model/_looptree/latency/processors.py +92 -0
  90. accelforge/model/_looptree/mapping_utilities.py +71 -0
  91. accelforge/model/_looptree/reuse/__init__.py +4 -0
  92. accelforge/model/_looptree/reuse/isl/__init__.py +1 -0
  93. accelforge/model/_looptree/reuse/isl/des.py +59 -0
  94. accelforge/model/_looptree/reuse/isl/isl_functions.py +374 -0
  95. accelforge/model/_looptree/reuse/isl/mapping_to_isl/__init__.py +4 -0
  96. accelforge/model/_looptree/reuse/isl/mapping_to_isl/analyze_mapping.py +297 -0
  97. accelforge/model/_looptree/reuse/isl/mapping_to_isl/skews_from_mapping.py +236 -0
  98. accelforge/model/_looptree/reuse/isl/mapping_to_isl/tiling.py +685 -0
  99. accelforge/model/_looptree/reuse/isl/mapping_to_isl/types.py +188 -0
  100. accelforge/model/_looptree/reuse/isl/spatial.py +260 -0
  101. accelforge/model/_looptree/reuse/isl/temporal.py +182 -0
  102. accelforge/model/_looptree/reuse/symbolic/__init__.py +1 -0
  103. accelforge/model/_looptree/reuse/symbolic/symbolic copy 2.py +1346 -0
  104. accelforge/model/_looptree/reuse/symbolic/symbolic copy.py +1408 -0
  105. accelforge/model/_looptree/reuse/symbolic/symbolic.py +1396 -0
  106. accelforge/model/_looptree/run.py +122 -0
  107. accelforge/model/_looptree/types.py +26 -0
  108. accelforge/model/_looptree/visualization/__init__.py +0 -0
  109. accelforge/model/_looptree/visualization/occupancy.py +11 -0
  110. accelforge/model/main.py +222 -0
  111. accelforge/plotting/__init__.py +2 -0
  112. accelforge/plotting/mappings.py +219 -0
  113. accelforge/plotting/specs.py +57 -0
  114. accelforge/util/__init__.py +4 -0
  115. accelforge/util/_base_analysis_types.py +24 -0
  116. accelforge/util/_basetypes.py +1089 -0
  117. accelforge/util/_frozenset.py +36 -0
  118. accelforge/util/_isl.py +29 -0
  119. accelforge/util/_itertools.py +14 -0
  120. accelforge/util/_mathfuncs.py +57 -0
  121. accelforge/util/_parse_expressions.py +339 -0
  122. accelforge/util/_picklecache.py +32 -0
  123. accelforge/util/_setexpressions.py +268 -0
  124. accelforge/util/_sympy/__init__.py +0 -0
  125. accelforge/util/_sympy/broadcast_max.py +18 -0
  126. accelforge/util/_visualization.py +112 -0
  127. accelforge/util/_yaml.py +579 -0
  128. accelforge/util/parallel.py +193 -0
  129. accelforge-0.0.1.dist-info/METADATA +64 -0
  130. accelforge-0.0.1.dist-info/RECORD +258 -0
  131. accelforge-0.0.1.dist-info/WHEEL +5 -0
  132. accelforge-0.0.1.dist-info/licenses/LICENSE +19 -0
  133. accelforge-0.0.1.dist-info/top_level.txt +5 -0
  134. docs/_build/html/_sources/fastfusion.frontend.mapper.rst.txt +37 -0
  135. docs/_build/html/_sources/fastfusion.frontend.rst.txt +70 -0
  136. docs/_build/html/_sources/fastfusion.frontend.workload.rst.txt +21 -0
  137. docs/_build/html/_sources/fastfusion.mapper.FFM.rst.txt +37 -0
  138. docs/_build/html/_sources/fastfusion.mapper.rst.txt +18 -0
  139. docs/_build/html/_sources/fastfusion.rst.txt +20 -0
  140. docs/_build/html/_sources/fastfusion.util.rst.txt +21 -0
  141. docs/_build/html/_sources/index.rst.txt +87 -0
  142. docs/_build/html/_sources/modules.rst.txt +7 -0
  143. docs/_build/html/_sources/notes/citation.rst.txt +45 -0
  144. docs/_build/html/_sources/notes/definitions.rst.txt +43 -0
  145. docs/_build/html/_sources/notes/faqs.rst.txt +39 -0
  146. docs/_build/html/_sources/notes/modeling/accelerator_energy_latency.rst.txt +72 -0
  147. docs/_build/html/_sources/notes/modeling/component_energy_area.rst.txt +96 -0
  148. docs/_build/html/_sources/notes/modeling/mapping.rst.txt +100 -0
  149. docs/_build/html/_sources/notes/modeling.rst.txt +33 -0
  150. docs/_build/html/_sources/notes/parsing/arithmetic_parsing.rst.txt +136 -0
  151. docs/_build/html/_sources/notes/parsing/setexpressions.rst.txt +63 -0
  152. docs/_build/html/_sources/notes/parsing/yaml_parsing.rst.txt +176 -0
  153. docs/_build/html/_sources/notes/quickstart_and_installation.rst.txt +9 -0
  154. docs/_build/html/_sources/notes/spec/architecture.rst.txt +133 -0
  155. docs/_build/html/_sources/notes/spec/mapping.rst.txt +12 -0
  156. docs/_build/html/_sources/notes/spec/workload.rst.txt +83 -0
  157. docs/_build/html/_sources/notes/spec.rst.txt +36 -0
  158. docs/source/_ext/include_attrs.py +213 -0
  159. docs/source/_ext/include_docstring.py +364 -0
  160. docs/source/_ext/include_functions.py +154 -0
  161. docs/source/_ext/include_notebook.py +131 -0
  162. docs/source/_ext/include_yaml.py +119 -0
  163. docs/source/_ext/inherited_attributes.py +222 -0
  164. docs/source/_ext/paths.py +4 -0
  165. docs/source/conf.py +79 -0
  166. examples/arches/compute_in_memory/_include.yaml +74 -0
  167. examples/arches/compute_in_memory/_include_functions.py +229 -0
  168. examples/arches/compute_in_memory/_load_spec.py +57 -0
  169. examples/arches/compute_in_memory/components/c2c_multiplier.py +181 -0
  170. examples/arches/compute_in_memory/components/dac_c2c_r2r.py +605 -0
  171. examples/arches/compute_in_memory/components/misc.py +195 -0
  172. examples/arches/compute_in_memory/components/util/bit_functions.py +51 -0
  173. examples/arches/compute_in_memory/components/zero_comparator.py +92 -0
  174. examples/arches/compute_in_memory/isaac.yaml +233 -0
  175. examples/arches/compute_in_memory/memory_cells/ecram_demo.yaml +63 -0
  176. examples/arches/compute_in_memory/memory_cells/rram_example.yaml +63 -0
  177. examples/arches/compute_in_memory/memory_cells/rram_isaac_isca_2016.yaml +64 -0
  178. examples/arches/compute_in_memory/memory_cells/rram_neurosim_default.yaml +63 -0
  179. examples/arches/compute_in_memory/memory_cells/rram_raella_isca_2023.yaml +70 -0
  180. examples/arches/compute_in_memory/memory_cells/rram_wan_nature_2022.yaml +63 -0
  181. examples/arches/compute_in_memory/memory_cells/sram_colonnade_jssc_2021.yaml +63 -0
  182. examples/arches/compute_in_memory/memory_cells/sram_example.yaml +63 -0
  183. examples/arches/compute_in_memory/memory_cells/sram_jia_jssc_2020.yaml +63 -0
  184. examples/arches/compute_in_memory/memory_cells/sram_sinangil_jssc_2021.yaml +63 -0
  185. examples/arches/compute_in_memory/memory_cells/sram_wang_vlsi_2022.yaml +63 -0
  186. examples/arches/compute_in_memory/wang_vlsi_2022.yaml +289 -0
  187. examples/arches/eyeriss.yaml +68 -0
  188. examples/arches/fanout_variations/at_glb.yaml +31 -0
  189. examples/arches/fanout_variations/at_glb_with_fanout_node.yaml +34 -0
  190. examples/arches/fanout_variations/at_mac.yaml +31 -0
  191. examples/arches/fanout_variations/at_mac_with_constraints.yaml +38 -0
  192. examples/arches/fanout_variations/at_mac_with_fanout_node.yaml +34 -0
  193. examples/arches/nvdla.yaml +47 -0
  194. examples/arches/simple.yaml +28 -0
  195. examples/arches/tpu_v4i.yaml +67 -0
  196. examples/mappings/unfused_matmuls_to_simple.yaml +33 -0
  197. examples/misc/component_annotated.yaml +33 -0
  198. examples/workloads/gpt3_6.7B.yaml +124 -0
  199. examples/workloads/matmuls.yaml +20 -0
  200. examples/workloads/mobilenet_28.yaml +81 -0
  201. examples/workloads/mobilenet_various_separate.yaml +106 -0
  202. examples/workloads/three_matmuls_annotated.yaml +59 -0
  203. notebooks/.ipynb_checkpoints/fastfusion_arch_study_michael-checkpoint.ipynb +359 -0
  204. notebooks/compute_in_memory/_scripts.py +339 -0
  205. notebooks/compute_in_memory/isaac.guide.ipynb +270 -0
  206. notebooks/compute_in_memory/wang_vlsi_2022.ipynb +602 -0
  207. notebooks/paths.py +4 -0
  208. notebooks/tutorials/.ipynb_checkpoints/1_FFM-checkpoint.ipynb +3110 -0
  209. notebooks/tutorials/FFM.ipynb +3498 -0
  210. notebooks/tutorials/_include.py +48 -0
  211. notebooks/tutorials/component_energy_area.ipynb +363 -0
  212. tests/Q_mapping.yaml +38 -0
  213. tests/__init__.py +0 -0
  214. tests/conv.mapping.yaml +27 -0
  215. tests/conv.workload.yaml +13 -0
  216. tests/conv_sym.mapping.yaml +43 -0
  217. tests/copy.mapping.yaml +35 -0
  218. tests/copy.workload.yaml +15 -0
  219. tests/distribuffers/__init__.py +0 -0
  220. tests/distribuffers/multicast/test_cases.yaml +482 -0
  221. tests/distribuffers/spec/binding/valid_bindings.yaml +97 -0
  222. tests/distribuffers/spec/distributed.yaml +100 -0
  223. tests/distribuffers/spec/logical_arch.yaml +32 -0
  224. tests/distribuffers/spec/physical_arch.yaml +69 -0
  225. tests/distribuffers/test_binding.py +48 -0
  226. tests/frontend/__init__.py +0 -0
  227. tests/frontend/test_mapping_viz.py +52 -0
  228. tests/mapper/__init__.py +0 -0
  229. tests/mapper/configs/conv1d/conv1d.mapping.yaml +31 -0
  230. tests/mapper/configs/conv1d/conv1d.workload.yaml +11 -0
  231. tests/mapper/configs/two_conv1d/two_conv1d.expected.yaml +38 -0
  232. tests/mapper/configs/two_conv1d/two_conv1d.mapping.yaml +54 -0
  233. tests/mapper/configs/two_conv1d/two_conv1d.workload.yaml +19 -0
  234. tests/mapper/test_mapping_to_isl.py +90 -0
  235. tests/mapper/test_spatial_reuse_analysis.py +67 -0
  236. tests/mapper/test_temporal_reuse_analysis.py +56 -0
  237. tests/mapper/util.py +58 -0
  238. tests/matmul.mapping.yaml +29 -0
  239. tests/matmul.workload.yaml +12 -0
  240. tests/matmul_spatial.mapping.yaml +44 -0
  241. tests/mha.renames.yaml +65 -0
  242. tests/mha.workload.yaml +67 -0
  243. tests/mha.yaml +59 -0
  244. tests/mha_full.workload.yaml +67 -0
  245. tests/mobilenet.workload.yaml +35 -0
  246. tests/mobilenet_long.workload.yaml +64 -0
  247. tests/pmappingcache.py +24 -0
  248. tests/processing_stage.arch.yaml +40 -0
  249. tests/snowcat.arch.yaml +36 -0
  250. tests/test_ffm_join_pmappings.py +106 -0
  251. tests/test_ffm_make_pmappings.py +82 -0
  252. tests/test_ffm_make_tile_shapes.py +49 -0
  253. tests/test_mapper.py +100 -0
  254. tests/test_model.py +37 -0
  255. tests/test_plotting.py +72 -0
  256. tests/test_processing_stage.py +46 -0
  257. tests/test_symbolic_model.py +248 -0
  258. tests/test_workload.py +141 -0
@@ -0,0 +1,193 @@
1
+ import itertools
2
+ from numbers import Number
3
+ import tempfile
4
+ from typing import Any, Callable, Generic, TypeVar, Generator
5
+
6
+ import pydot
7
+ import sympy
8
+
9
+ from joblib import Parallel, delayed
10
+ import joblib
11
+ import sys
12
+ import os
13
+ from tqdm import tqdm
14
+ import numpy as np
15
+
16
+ PARALLELIZE = True
17
+ N_PARALLEL_PROCESSES = os.cpu_count()
18
+
19
+ NUMPY_FLOAT_TYPE = np.float32
20
+
21
+
22
+ def _lambdify_type_check(*args, **kwargs):
23
+ f = sympy.lambdify(*args, **kwargs)
24
+
25
+ def f_type_checked(*args, **kwargs):
26
+ for a in args:
27
+ if isinstance(a, np.ndarray):
28
+ if a.dtype != NUMPY_FLOAT_TYPE:
29
+ raise ValueError(f"Expected {NUMPY_FLOAT_TYPE}, got {a.dtype}")
30
+ elif not isinstance(a, Number):
31
+ raise ValueError(f"Expected {NUMPY_FLOAT_TYPE}, got {type(a)}")
32
+ for v in kwargs.values():
33
+ if isinstance(v, np.ndarray):
34
+ if v.dtype != NUMPY_FLOAT_TYPE:
35
+ raise ValueError(f"Expected {NUMPY_FLOAT_TYPE}, got {v.dtype}")
36
+ elif not isinstance(v, Number):
37
+ raise ValueError(f"Expected {NUMPY_FLOAT_TYPE}, got {type(v)}")
38
+ return f(*args, **kwargs)
39
+
40
+ return f_type_checked
41
+
42
+
43
+ def set_n_parallel_jobs(n_jobs: int, print_message: bool = False) -> None:
44
+ """
45
+ Set the number of parallel jobs to use.
46
+
47
+ Parameters
48
+ ----------
49
+ n_jobs : int
50
+ The number of parallel jobs to use.
51
+ print_message : bool, optional
52
+ Whether to print a message when the number of parallel jobs is set.
53
+ """
54
+ global N_PARALLEL_PROCESSES
55
+ N_PARALLEL_PROCESSES = n_jobs
56
+ global PARALLELIZE
57
+ PARALLELIZE = n_jobs > 1
58
+ if print_message:
59
+ print(f"Using {n_jobs} parallel job{'s' if n_jobs > 1 else ''}")
60
+
61
+
62
+ def get_n_parallel_jobs() -> int:
63
+ """
64
+ Returns the number of parallel jobs being used. If parallel processing is not
65
+ enabled, returns 1.
66
+ """
67
+ return N_PARALLEL_PROCESSES if is_using_parallel_processing() else 1
68
+
69
+
70
+ def is_using_parallel_processing() -> bool:
71
+ """Returns True if parallel processing is enabled."""
72
+ return PARALLELIZE and N_PARALLEL_PROCESSES > 1
73
+
74
+
75
+ def _expfmt(x):
76
+ if isinstance(x, Number):
77
+ x = round(x)
78
+ if x < 10000:
79
+ return f"{x}"
80
+ x = f"{x:.2e}"
81
+ else:
82
+ x = str(x)
83
+ if "e+00" in x:
84
+ x = x.replace("e+00", "")
85
+ x = x.replace("e+", "e")
86
+ return x
87
+
88
+
89
+ def parallel(
90
+ jobs: list[tuple[Callable, tuple, dict]],
91
+ n_jobs: int = None,
92
+ pbar: str = None,
93
+ return_as: str = None,
94
+ ) -> list[Any] | Generator[Any, None, None] | dict[Any, Any]:
95
+ """
96
+ Parallelizes a list of jobs.
97
+
98
+ Parameters
99
+ ----------
100
+ jobs : list[tuple[Callable, tuple, dict]]
101
+ The jobs to parallelize. The first element of each tuple is a function, the
102
+ second is a tuple of arguments, and the third is a dictionary of keyword
103
+ arguments.
104
+ n_jobs : int, optional
105
+ The number of jobs to run in parallel. If not provided, the number of parallel
106
+ jobs is set to the number of CPU cores.
107
+ pbar : str, optional
108
+ A label for a progress bar. If not provided, no progress bar is shown.
109
+ return_as : Literal["list", "generator", "generator_unordered"], optional
110
+ The type of return value. If not provided, the return value is a list.
111
+
112
+ Returns
113
+ -------
114
+ list[Any] | Generator[Any, None, None] | dict[Any, Any]
115
+ The result of the parallelized jobs.
116
+ """
117
+ jobs = list(jobs)
118
+
119
+ args = {}
120
+ if return_as is not None:
121
+ args["return_as"] = return_as
122
+
123
+ if n_jobs is None:
124
+ n_jobs = N_PARALLEL_PROCESSES
125
+
126
+ if isinstance(jobs, dict):
127
+ assert return_as == None, "return_as is not supported for dict jobs"
128
+ r = zip(
129
+ jobs.keys(),
130
+ parallel(
131
+ jobs.values(),
132
+ pbar=pbar,
133
+ ),
134
+ )
135
+ return {k: v for k, v in r}
136
+
137
+ if n_jobs == 1 or len(jobs) == 1:
138
+ if pbar:
139
+ jobs = tqdm(jobs, total=len(jobs), desc=pbar, leave=True)
140
+ return [j[0](*j[1], **j[2]) for j in jobs]
141
+
142
+ total_jobs = len(jobs)
143
+
144
+ pbar = tqdm(total=total_jobs, desc=pbar, leave=True) if pbar else None
145
+
146
+ def yield_results():
147
+ for result in Parallel(n_jobs=n_jobs, **args)(jobs):
148
+ if pbar:
149
+ pbar.update(1)
150
+ yield result
151
+ if pbar:
152
+ pbar.close()
153
+
154
+ if return_as in ["generator", "generator_unordered"]:
155
+ return yield_results()
156
+
157
+ return list(yield_results())
158
+
159
+
160
+ # import cProfile
161
+ # import io
162
+ # import pstats
163
+
164
+
165
+ # class ProfilePrint:
166
+ # def __init__(self):
167
+ # self.profiler = cProfile.Profile()
168
+
169
+ # def __enter__(self):
170
+ # self.profiler.enable()
171
+ # self.n_jobs = N_PARALLEL_PROCESSES
172
+ # set_n_parallel_jobs(1)
173
+ # return self
174
+
175
+ # def __exit__(self, exc_type, exc_value, traceback):
176
+ # self.profiler.disable()
177
+ # s = io.StringIO()
178
+ # stats = pstats.Stats(self.profiler, stream=s).sort_stats("cumulative")
179
+ # stats.print_stats(20)
180
+ # print("\n===== Profiling Results (sorted by total time) =====")
181
+ # print(s.getvalue())
182
+ # # set_n_parallel_jobs(self.n_jobs)
183
+
184
+
185
+ class _SVGJupyterRender(str):
186
+ def _repr_svg_(self):
187
+ return self
188
+
189
+
190
+ def _memmap_read(x):
191
+ f = tempfile.NamedTemporaryFile(delete=False, suffix=".pkl")
192
+ joblib.dump(x, f.name)
193
+ return joblib.load(f.name, mmap_mode="r")
@@ -0,0 +1,64 @@
1
+ Metadata-Version: 2.4
2
+ Name: accelforge
3
+ Version: 0.0.1
4
+ Summary: AccelForge
5
+ Author-email: Michael Gilbert <gilbertm@mit.edu>, Tanner Andrulis <andrulis@mit.edu>
6
+ Requires-Python: >=3.8
7
+ Description-Content-Type: text/markdown
8
+ License-File: LICENSE
9
+ Requires-Dist: numpy>=2.2.0
10
+ Requires-Dist: pandas>=2.2.0
11
+ Requires-Dist: scipy>=1.15.0
12
+ Requires-Dist: tqdm>=4.67.0
13
+ Requires-Dist: pydantic>=2.0.0
14
+ Requires-Dist: pydantic_core>=2.33.0
15
+ Requires-Dist: ruamel.yaml>=0.18.0
16
+ Requires-Dist: jinja2>=3.1.0
17
+ Requires-Dist: islpy>=2025.0.0
18
+ Requires-Dist: sympy>=1.14.0
19
+ Requires-Dist: paretoset>=1.2.5
20
+ Requires-Dist: matplotlib>=3.10.0
21
+ Requires-Dist: plotly>=6.1.0
22
+ Requires-Dist: pydot>=4.0.0
23
+ Requires-Dist: platformdirs>=4.3.0
24
+ Requires-Dist: joblib>=1.5.1
25
+ Requires-Dist: hwcomponents
26
+ Requires-Dist: hwcomponents-adc
27
+ Requires-Dist: hwcomponents-cacti
28
+ Requires-Dist: hwcomponents-library
29
+ Requires-Dist: hwcomponents-neurosim
30
+ Provides-Extra: dev
31
+ Requires-Dist: pytest; extra == "dev"
32
+ Requires-Dist: pytest-cov; extra == "dev"
33
+ Requires-Dist: black; extra == "dev"
34
+ Requires-Dist: flake8; extra == "dev"
35
+ Requires-Dist: mypy; extra == "dev"
36
+ Dynamic: license-file
37
+
38
+ # AccelForge
39
+
40
+ AccelForge is a framework to design and model tensor algebra accelerators. It includes
41
+ models of components, architectures, and workloads, as well as a fast-and-optimal mapper
42
+ to program the workloads onto the architectures.
43
+
44
+ To learn more, see the [AccelForge
45
+ documentation](https://accelergy-project.github.io/accelforge/).
46
+
47
+ ## Installation
48
+
49
+ ### Native
50
+
51
+ AccelForge is available on PyPI:
52
+
53
+ ```bash
54
+ pip install accelforge
55
+ ```
56
+
57
+ ### Docker
58
+
59
+ TODO
60
+
61
+ ## Notebooks and Examples
62
+
63
+ Examples can be found in the [`notebooks`](notebooks) directory. Examples of the input
64
+ files can be found in the [`examples`](examples) directory.
@@ -0,0 +1,258 @@
1
+ accelforge/__init__.py,sha256=rRl39biNuhpRRt0Hz_jajJwJ55DFtFDEb6iQ0mr5maY,861
2
+ accelforge/_accelerated_imports.py,sha256=bIH_qEqrOSdwFFYX3GMk9QRElBprjQ1rQApKMTnXKXM,316
3
+ accelforge/_version.py,sha256=ubUFyp-4oMj4ChLtaFZV5BQdW9XbOVNQ4IiTRdHcy_g,371
4
+ accelforge/examples.py,sha256=GasmL7ydNwbnGe3PXSm6LDAyIjb8wWuYYdh3FNhZyuY,914
5
+ accelforge/mapper.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ accelforge/_deprecate/compatibility_util.py,sha256=-l3z_aSfPkuPrH770mZFKB9gFO4nmiF23W8s_xMRvVw,6521
7
+ accelforge/_deprecate/tags.py,sha256=1RpHLjPYqyjIjHSlMhVJ1vc2hXqUyKc1CeOYYjX3kos,2000
8
+ accelforge/_deprecate/_simanneal/evalmapping.py,sha256=mPDL-0CoMOJgmfRCsaHnDmkaKH1OeKcZAnCcJATMEhs,10390
9
+ accelforge/_deprecate/_simanneal/mapspaceglobals.py,sha256=pdq4vOVmQ6FKXQp87CyKUaRDdHfB7eHO3QIUhz8m_Aw,12704
10
+ accelforge/_deprecate/_simanneal/simanneal.py,sha256=igb4Wkta5oUU4UlQJQkLzjM63rDbFDxPlUEDmOS_VX4,27432
11
+ accelforge/_deprecate/_simanneal/tracking.py,sha256=1DVQJPCrb9mAv88wp7la7fl1t3HjTgEJWZcgadoEccY,4136
12
+ accelforge/_deprecate/_simanneal/wrappers.py,sha256=PIaXiFXwym5ofrl0tsEQvX2vTpcImIQSEBSMiBC_kjo,7300
13
+ accelforge/_deprecate/_simanneal2/__init__.py,sha256=ROqUK-g25ZSd_fOBJjlOmFrG-XIr5spR3Aw9O4UdS6Y,196
14
+ accelforge/_deprecate/_simanneal2/simanneal.py,sha256=9IvwyuMdElhyHBqHp7vwn47EdQSKv9IthGVGcz1xpYA,18992
15
+ accelforge/_deprecate/_simanneal2/tracking.py,sha256=-WAJrowmRZuZNMVypF2mF4deE_YOZZ_OVhNarUaYloE,4655
16
+ accelforge/_deprecate/layerdeduplication/__init__.py,sha256=LY0XkiXlcFNYwD-IQYVO0FAvIqAJbMATnP-lGbbOnVk,118
17
+ accelforge/_deprecate/layerdeduplication/group_similar_einsums.py,sha256=_bRMO1u1exPH_SefvgwaUiewDm-JNRH5vWhzvg6s2Ko,5965
18
+ accelforge/_deprecate/layerdeduplication/grouped_einsums.py,sha256=hAGJYkaySyjwnLQZICZlx2C9SGgiYR2vVnclF3Prz5A,2894
19
+ accelforge/_deprecate/mapping_filter_tags/__init__.py,sha256=mgU6IYn4rbmcqhI5_lMIvLzH5vqequFLnZQigCXTNJ8,71
20
+ accelforge/_deprecate/mapping_filter_tags/ffmt.py,sha256=_4M9SE3DojI-T0n_Um1ONO7LfUz469J92pkVrSgPi74,7336
21
+ accelforge/_deprecate/mapping_filter_tags/onesplit.py,sha256=fdZYLqV-AHlZNW6RJmnzpx8TRjsTbybA8wIghxN30_g,764
22
+ accelforge/_deprecate/mapping_filter_tags/util.py,sha256=3Hg0wlQau1xWg80g-4rzpEulptonW9L36ptN7tLVonU,848
23
+ accelforge/_deprecate/viz/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
+ accelforge/_deprecate/viz/interactive.py,sha256=IfuEsmY0HeIbVB4W9ZXjHiO_Ge2nWeMxsm8WcVDlQVg,5019
25
+ accelforge/_deprecate/viz/reservationtree.py,sha256=uBxJSUqdogr7A4Nl8edrijpBbLyHXGgc2Vs1CmzFrWU,11390
26
+ accelforge/_deprecate/viz/ski_slope.py,sha256=HygphmMzr1OcxmnrXRNctEvImC17lknSMqGmR7hSDq4,2338
27
+ accelforge/frontend/__init__.py,sha256=3mK8VO1Uw9Y3K5KU31tfk2zxyDfbSVUVqny2EJMngx0,439
28
+ accelforge/frontend/_binding.py,sha256=9q210JLg8iQteKxeE4kqjeyV3ktuYVjJteezjaGQI3E,3843
29
+ accelforge/frontend/arch copy.py,sha256=S5dDHjECtxgHCVx4-4e6B0ek26XFZPUm570nlhbAQ3M,58914
30
+ accelforge/frontend/arch.py,sha256=w4RPzs1bYgfmjGJWbbdv0Wq566CGzyCnHOLErT3niUo,63163
31
+ accelforge/frontend/config.py,sha256=R1T0N3G9gN_Dq7oLNqpTFPu8UWpE-bk5rwl0GzLXtr8,2302
32
+ accelforge/frontend/model.py,sha256=L93zkhrneiHJS6JJSiI1K_pi-8PfxtNhEsQvDQaaIhU,382
33
+ accelforge/frontend/renames.py,sha256=WySEsDT4SrMAyA-v65NU2lMCXGC8BjdtYQeMltHj1Lk,5881
34
+ accelforge/frontend/spec copy.py,sha256=xHYbZfzHHuRpVOuzsmnX09FUe63y9Gg8BVveCHzj7iQ,9142
35
+ accelforge/frontend/spec.py,sha256=2_zUU0d5fwhMD-ubXxN-iHhJGVyBHNCtWJAPB-7Rfg0,11568
36
+ accelforge/frontend/variables.py,sha256=yojUjlUV9kiGfWclFQE1bBcbhX_ugAq_KWkQW8F9UR0,401
37
+ accelforge/frontend/workload.py,sha256=PjAM7_5rbByaPTq9LgPGnUvaIv3jvR9PaGxtyi4aM38,37157
38
+ accelforge/frontend/_workload_isl/__init__.py,sha256=DFIa9Euu1ucceC4qcVEjXoBaf9csMB-3el1TClAmofQ,88
39
+ accelforge/frontend/_workload_isl/_isl.py,sha256=pkga4dsT8D7dk3dl0YhOJKDiU9mQ1nLB7HJQbB9XEtg,5502
40
+ accelforge/frontend/_workload_isl/_symbolic.py,sha256=SeTapAGjW6YuQrVgTqxFocyp_I8pjt1uWiqmPCkRHAU,4434
41
+ accelforge/frontend/mapper/__init__.py,sha256=su-K8zj-wpgu26-FHM5M1vB2T4mvNKV9Qpbl6yZ56as,195
42
+ accelforge/frontend/mapper/ffm.py,sha256=QiT_ipw7wfFT5pp_uQVyhwK889tSGyMZecf-Y8nUiR0,4844
43
+ accelforge/frontend/mapper/mapper.py,sha256=RYeiVL075f1KDTCqOYv0gOB7Z_-EMd7osTztAi4eiv8,240
44
+ accelforge/frontend/mapper/metrics.py,sha256=9NpyPF77TuMCZeZEAjX8NzK715RUaPbpeGqAeT0imGQ,722
45
+ accelforge/frontend/mapping/__init__.py,sha256=8YuHA4lwCBqmYDfHx7MtECoG-qEcCm1Y0kLwdYRnRfU,23
46
+ accelforge/frontend/mapping/mapping.py,sha256=L5oXle0e29cPIzLldKs95wXfl16v3f_M-ZzTNv9Jz70,64899
47
+ accelforge/mapper/__init__.py,sha256=rer8H1iqgGo6rc2buDMlNwwk2D6NfjHwTKljxFuXpjY,145
48
+ accelforge/mapper/FFM/__init__.py,sha256=LIWSC1PViyqKD9aW9Y1OmGwpzdsCXMulF0xIjx7FjCg,283
49
+ accelforge/mapper/FFM/data.py,sha256=pOhPVI12SpC2FgircuR9AmTGiGWfwoGy5ybh_i7mNdI,1646
50
+ accelforge/mapper/FFM/main copy.py,sha256=YUsYjQj9Jn-B7XDv60RENsyzAfP_Cj7pd2lQGHd6nYQ,8662
51
+ accelforge/mapper/FFM/main.py,sha256=En2rOdBhz5N8BiM-0mXkVPjIh8QVa0GjUiVHYcJI5dI,7040
52
+ accelforge/mapper/FFM/mappings.py,sha256=pCViZbUeDsyGZeAZsinjCGzxF8aa0TVU5ubvWmJEtGc,20095
53
+ accelforge/mapper/FFM/pmappings.py,sha256=fMubLlVjXePGeOSErTT3ul3vY__RJeIhbnIojPap-ew,11979
54
+ accelforge/mapper/FFM/_join_pmappings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
+ accelforge/mapper/FFM/_join_pmappings/compatibility.py,sha256=kDAQEMnZugufSLkAMGwksW1a3T690_GmXjCC6qxNmBk,23369
56
+ accelforge/mapper/FFM/_join_pmappings/compress_pmappings.py,sha256=PO_3XEpGCc-l9A-D-DcxgaoYsm50__DKDWA4st0rESA,5312
57
+ accelforge/mapper/FFM/_join_pmappings/join_pmappings.py,sha256=EQ1OxDrqYePRaQ34avxX62idGNb7OGAI4QKtU9qacnw,28954
58
+ accelforge/mapper/FFM/_join_pmappings/pmapping_dataframe.py,sha256=GpLrF4NhPtSH4OtcAlwhgleJCLC6Y7t5ugXna0WrGyc,35786
59
+ accelforge/mapper/FFM/_join_pmappings/pmapping_group.py,sha256=1IsIXnKIpa4eDYRbCEqnoCjstOOTwP02Ie1DPTv8Y_s,13131
60
+ accelforge/mapper/FFM/_make_pmappings/make_pmappings.py,sha256=VKEY7Yw4nVNdI0PI5j2TgpCNZ-T0iYkN6Mkun-Fc8P4,14165
61
+ accelforge/mapper/FFM/_make_pmappings/pmapper_job.py,sha256=OHirX_Hps_ta-MyWpn1TH5WoLLzPAmJ4xsUIhRWQk7Q,9368
62
+ accelforge/mapper/FFM/_make_pmappings/contraints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ accelforge/mapper/FFM/_make_pmappings/contraints/constraints.py,sha256=3kuEM2DDczefk8d-Wk2Y38Hdd2-a-G_USI4aZlGmAJE,13936
64
+ accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/__init__.py,sha256=HhpP1YGm5dM5Vn_mpMGc4akJzTFBWGJw59HL4dC9pcg,61
65
+ accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_loops.py,sha256=vTsGFMV5qc2pe9_xVrXATcPwpcQXVkhGYSqK_bPQvDA,16360
66
+ accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_pmapping_templates.py,sha256=BO-uOKxFpIsAiq9uwQxq6IoyPyeNwzSyOsXQH_Pr6XI,16050
67
+ accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_reservations.py,sha256=Btl6lrPpWQzEpKm7z-l_F66-5N_VKhSgJbqEpufRyEs,3856
68
+ accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_storage_order.py,sha256=ashMMukE6pW4H5_nfIfuWBftgSLlCfgGem8YRrOYSUI,14731
69
+ accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_storages.py,sha256=DT7ZjAwLwbsfpEYgaKi9nT8gL8l6HD8UeFsYfcDrCYg,5550
70
+ accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/__init__.py,sha256=NxzYaBLMvs_dgYGA1BURf1EB7K4byPuDl8U3b0nu1-M,73
71
+ accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/make_pmappings_from_templates.py,sha256=MSJ8AXUeW90ySvmsLIhAYw4Sz_BJWB0NTxwEVYvjB90,15076
72
+ accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/make_tile_shapes.py,sha256=cXlQgvNPh-SRoK2t2Bm8Cx7CeVvkxVFji6dKQnhyRZA,65667
73
+ accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/run_model.py,sha256=lbMtZ1WMEU6wbFylIgpnTpRdJ4b-C-2gVoZPosvxkeU,6545
74
+ accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/symbol_relations.py,sha256=-sftF5-krGaf7w_GrHICqeqSXlhIfi0VZfAfHsO9caE,6783
75
+ accelforge/mapper/FFM/_pareto_df/df_convention.py,sha256=HO62MttDLzKGFhbYc21t-tZBkA-RFeItd1yb8MtXMuA,7827
76
+ accelforge/mapper/FFM/_pareto_df/pareto copy.py,sha256=5i4-CGzyL95i9tqHYaW3aV0OaXy34k324IjGLCF1LUY,30847
77
+ accelforge/mapper/FFM/_pareto_df/pareto.py,sha256=5OmpiM_6ri3ZF16uFQVfe4SAAQ4dpzjUqw6IH9kjnyo,18022
78
+ accelforge/model/__init__.py,sha256=W5DI0_hkW0cj8EN8w_uYSpKszfFJR6csY5nw21NA3nA,51
79
+ accelforge/model/main.py,sha256=cI2abvEiT8aPelmBQjG_lz86aUYfVCeq_bPxLG8HjBE,7926
80
+ accelforge/model/_looptree/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
+ accelforge/model/_looptree/accesses.py,sha256=JNLNDSF7KNkPuFLHPzE9w6TdMExTDmdOP8WHgq1WC6I,13377
82
+ accelforge/model/_looptree/energy.py,sha256=J-PeGLaoMMaUJZujcOWybVP5angibHVPlSPV7ReDa8g,4868
83
+ accelforge/model/_looptree/equivalent_ranks.py,sha256=UNO4CszfyfeuUkuQ--Es_kWXe9Zyf1V7xND95EvnzJI,1068
84
+ accelforge/model/_looptree/mapping_utilities.py,sha256=3L7HCYrtnit9qp8Xo4raVoWsy4A3DKGrBTb1m71UxTg,2326
85
+ accelforge/model/_looptree/run.py,sha256=4oLblEWYDGNXE8YuMjbjZUr301V_6fy4RERcttcOxMY,4750
86
+ accelforge/model/_looptree/types.py,sha256=EE5LJTSyUjEeB26AwAgKHNrDhMrJ10N3Vt3GIjdqqVE,639
87
+ accelforge/model/_looptree/capacity/__init__.py,sha256=iNa9sFDWKbPKyUU1I4mO5evb_6fJ1QrXkY923JsHypM,45
88
+ accelforge/model/_looptree/capacity/aggregators.py,sha256=HjA10p0zzVzPcntnVMpt0l6aj8OC6B6cnI3g1W_mSHY,942
89
+ accelforge/model/_looptree/capacity/capacity.py,sha256=zWkjrolHpuhdyZYC2k5BUKry7EaksJfXzi1TfPqXuHM,1668
90
+ accelforge/model/_looptree/latency/__init__.py,sha256=4AvkiE5mYRlBtexQj1o5ufMUYWgScRUy79hW7_5Sl10,33
91
+ accelforge/model/_looptree/latency/latency.py,sha256=5-yTwlPNLX6xiowZnggQTSIF-aZMfMhMWexrXzP03h8,3317
92
+ accelforge/model/_looptree/latency/memory.py,sha256=fXgtCzXpng9bscFQdsepoHgN-4_97FLrCjLgXRGWPOs,4692
93
+ accelforge/model/_looptree/latency/processors.py,sha256=J_XXvcqT05eerKO2KO8ihM9yPWXoJOTHmmyKips29r0,3028
94
+ accelforge/model/_looptree/reuse/__init__.py,sha256=gFxAqLlPO7tOz1FY_tv10hHiXkjKWf9DQvMxwHS8K6c,105
95
+ accelforge/model/_looptree/reuse/isl/__init__.py,sha256=5glLY7a3x0HemWdkjLVwhvH4Fc2Gewg8bvQG_KS34wc,40
96
+ accelforge/model/_looptree/reuse/isl/des.py,sha256=oEpcrlusgdygfbhFr9_XXg4Un5DV1OhgL1MSVhoTwus,1846
97
+ accelforge/model/_looptree/reuse/isl/isl_functions.py,sha256=sDiCbjcecNePKnlsVUrGpDsaDejAvZ3egR7Yknys-kU,11823
98
+ accelforge/model/_looptree/reuse/isl/spatial.py,sha256=LgkiWvnR1iD_Pq2ZAky4RbU7IAt6eWaO2UyXqTxFnWM,8212
99
+ accelforge/model/_looptree/reuse/isl/temporal.py,sha256=_yLKMI7Ea8gyOyyvaVtu3yorYAH6v2Qp2UxIacM0JX0,6775
100
+ accelforge/model/_looptree/reuse/isl/mapping_to_isl/__init__.py,sha256=QJ2avcsHoXwi1n1gfTMdfKadLspSc6X6CTGjMkNii0s,135
101
+ accelforge/model/_looptree/reuse/isl/mapping_to_isl/analyze_mapping.py,sha256=KzXnsdP8cOS14XYCQfsIlXBzhRqHmud-0mDGAlSiav8,10603
102
+ accelforge/model/_looptree/reuse/isl/mapping_to_isl/skews_from_mapping.py,sha256=d0uODbrjMM6yB7_G3XFBeVp2QKClR5ylL46WeQ8KuwQ,8922
103
+ accelforge/model/_looptree/reuse/isl/mapping_to_isl/tiling.py,sha256=9Wp0H01Iy1pMs5l6dAxq0V3-DLuiuDBWGe2S0u98wLE,26083
104
+ accelforge/model/_looptree/reuse/isl/mapping_to_isl/types.py,sha256=Zt_PfxyMoHlADSFDybGr2HU4tMRJ7FMPMj4E0Ij_BRY,6211
105
+ accelforge/model/_looptree/reuse/symbolic/__init__.py,sha256=Hthm1ibq60xySVATT6yE7x0ykdlOfgkYaiIyVL3-2LE,24
106
+ accelforge/model/_looptree/reuse/symbolic/symbolic copy 2.py,sha256=palZCwIU-rs9x5lLhE5wYsznYp46qcJrAQhYBUe1lj8,50069
107
+ accelforge/model/_looptree/reuse/symbolic/symbolic copy.py,sha256=z_P7ClUp7F5Ht0pv6__erGNFAckNqmxKGjbxM1__96Q,51647
108
+ accelforge/model/_looptree/reuse/symbolic/symbolic.py,sha256=PCUwNGO9Otdhn-R1e6U0ZYSaB4TQeoaCpEyY1HRWL9g,52095
109
+ accelforge/model/_looptree/visualization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
+ accelforge/model/_looptree/visualization/occupancy.py,sha256=OhFDgVIu-if85xmY4bOo2OYmo6bh-C3UaxA5vRM5n-M,332
111
+ accelforge/plotting/__init__.py,sha256=PzPsfcZ0GLPJNGE-O6FHZrHiq2yD2JtjFrP1CQBCsNQ,43
112
+ accelforge/plotting/mappings.py,sha256=vtc-V39W7KP6nhR_kKrOl4jCkCC_qlhLd5mXoSYGrLY,7174
113
+ accelforge/plotting/specs.py,sha256=rhY9PSu2b5Bti9e-p0N4kQTVUdZpnnsqwQzfyU2OaJg,1636
114
+ accelforge/util/__init__.py,sha256=vNMnTjCpFiWlNs9P6OaeZ9Eg2PGao_ncBEB2DXLRKaQ,150
115
+ accelforge/util/_base_analysis_types.py,sha256=PxW1U9C6I-IpHVgU6hh4OjI0OkwzRvLQ1hu5ALzJors,371
116
+ accelforge/util/_basetypes.py,sha256=zq0Tp92U5ZDBPTWCzGySbclKQO75cvLlLdDLOMXEj6g,36315
117
+ accelforge/util/_frozenset.py,sha256=15D3gC81qlMzhsDV6gPzM9N5iAO05KahrCNMdktNkmE,995
118
+ accelforge/util/_isl.py,sha256=FEdB1H6Kv0ZM1j4WtuEbB6Lb4od8qI53Zty85HJQ4m8,832
119
+ accelforge/util/_itertools.py,sha256=2OUIhBcIajMEV_lsCZVU7Jb9emQ8b-DQtk1U9y0eSRw,348
120
+ accelforge/util/_mathfuncs.py,sha256=uszPP_Kp83uddVrhm_-NUTnCI2SSkrVPJ16s5z8MQHA,1409
121
+ accelforge/util/_parse_expressions.py,sha256=iJu7a80rMJb9MEGpt7uE0CYIb6D1KtTL-IntgKE_rQQ,10092
122
+ accelforge/util/_picklecache.py,sha256=gf7dnFt-WLQntNXeVHJeUP7GBTRTg0z9cmy0YlCgEhI,910
123
+ accelforge/util/_setexpressions.py,sha256=iU9i7wJOOeoiwijxw1K0DBCw4Wx1QeqP5o_xtSx3UeI,9439
124
+ accelforge/util/_visualization.py,sha256=uPytn3nB5zX7CyywGI6vaCVIUIiSW_meEiqUsgOcFAY,3991
125
+ accelforge/util/_yaml.py,sha256=WpSCP_NOa6ppl4eZPuDdRDlbx9kSg8LFKzvr1aF0bKA,19634
126
+ accelforge/util/parallel.py,sha256=1LfdenOrvjnj9oSFsQNB57KMA_DFl9kU3UE52o1LPFI,5454
127
+ accelforge/util/_sympy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
+ accelforge/util/_sympy/broadcast_max.py,sha256=S1TzjRNRZhiPTgocRHSYCJvCe1Nonpv0kdv-EifGaB8,504
129
+ accelforge-0.0.1.dist-info/licenses/LICENSE,sha256=rsy_4WDCCAl_Cl0cOHE-dXXuiRKe4OoxMNzyTCn-bw8,1079
130
+ docs/_build/html/_sources/fastfusion.frontend.mapper.rst.txt,sha256=t_R3q9Iye5aoNigya8YhfeBRDMYa9owk4GKMwl5UgNY,782
131
+ docs/_build/html/_sources/fastfusion.frontend.rst.txt,sha256=TuJtKHuPkQ4BeAv49UEItc8mx7ir3XGeDtu__XGV_G4,1326
132
+ docs/_build/html/_sources/fastfusion.frontend.workload.rst.txt,sha256=f5WgqcGB9cCjiWCbgDNRwKqIQoKaPH3pMBZGMjvQXk0,430
133
+ docs/_build/html/_sources/fastfusion.mapper.FFM.rst.txt,sha256=s-B39C0Q7HkUFn85hjcm6zfYqUKoX2Zk6Js9OTw4Y8U,737
134
+ docs/_build/html/_sources/fastfusion.mapper.rst.txt,sha256=rdf6jEVDjgbT5A_qkkdt-qreX6IESgTBC9b-6sRiFME,255
135
+ docs/_build/html/_sources/fastfusion.rst.txt,sha256=UQkUPomhy5hMbQKWUt4e6syo6DHRbsjoVUK2Z1F_hPQ,272
136
+ docs/_build/html/_sources/fastfusion.util.rst.txt,sha256=jCUyOKK89bBFCZpyjM0Xd8UYEURyxITDFqwdohorZLM,352
137
+ docs/_build/html/_sources/index.rst.txt,sha256=wcxLfoiv40lRCm-8o_QRj1TJoVrrPBU6LkGoMdaiIc4,2484
138
+ docs/_build/html/_sources/modules.rst.txt,sha256=uSrLEMo_ugdqxfOJHV_CtMHF3xt5iuT63voxXTXCdZI,67
139
+ docs/_build/html/_sources/notes/citation.rst.txt,sha256=1giiaK2jKILkj0ToLgJF3PpwY84Fs2Zns4AK9-r4DQk,1878
140
+ docs/_build/html/_sources/notes/definitions.rst.txt,sha256=5v6D1PCnbXqvTmo0L198TW_Ha8h6ZOG9vstYhUow3yY,1488
141
+ docs/_build/html/_sources/notes/faqs.rst.txt,sha256=WwdCUU7IHCa8yIKVEIAXBMEJhk7Tzd56Xtjz6N5uUTI,1713
142
+ docs/_build/html/_sources/notes/modeling.rst.txt,sha256=l3PZIXiRVQX4PX5_sPSFaEgccZQV_YQ9L0bR0aT3yGo,1291
143
+ docs/_build/html/_sources/notes/quickstart_and_installation.rst.txt,sha256=jgSHlHdGXzZfrUjS9JBdlPkyzpy260KVbN9JuHir8mQ,102
144
+ docs/_build/html/_sources/notes/spec.rst.txt,sha256=oAphao5db5ClhqhvS4RUh64WQlIL3DUAo5YpYdlFS7E,801
145
+ docs/_build/html/_sources/notes/modeling/accelerator_energy_latency.rst.txt,sha256=To8-m7DEhLJkRc6-N26LUjXZ_hEjE0qCeoaJs_lGJ4Y,3449
146
+ docs/_build/html/_sources/notes/modeling/component_energy_area.rst.txt,sha256=Fea7xrf4_tmV-EHd5QSo2NaVM2hevWELdf2qyPyXZXA,4422
147
+ docs/_build/html/_sources/notes/modeling/mapping.rst.txt,sha256=gMzPP22dZ4AeyatcXMtJ5Hfv0lLiDNkQkSxjPSKq45M,4235
148
+ docs/_build/html/_sources/notes/parsing/arithmetic_parsing.rst.txt,sha256=Ayh3-8VDrJIovwBAsCIpScpkD7TDpaKmdLyLZyX4leU,4475
149
+ docs/_build/html/_sources/notes/parsing/setexpressions.rst.txt,sha256=NX8vpvpUkKKh1ZSqE4DufLE9zXb22IotsXa7O7-nMP4,2673
150
+ docs/_build/html/_sources/notes/parsing/yaml_parsing.rst.txt,sha256=rfY11cwSgWGKjDsodBjBsP8Ua6bFIMeQI9RLm1BpD00,5461
151
+ docs/_build/html/_sources/notes/spec/architecture.rst.txt,sha256=js4upM887c6gMegHJoUssmI6eWympSKudk_o_5gT0uA,5440
152
+ docs/_build/html/_sources/notes/spec/mapping.rst.txt,sha256=DAnx3Hqs05nZb0ssYT-IVJiC-fivA1vnqxmoQJ9siY0,147
153
+ docs/_build/html/_sources/notes/spec/workload.rst.txt,sha256=f8TiB8YVCOwubUYz0JkpgQH3jrP3cAIxm-FuwaDrkGg,3524
154
+ docs/source/conf.py,sha256=sGv7lIML1k-w0012H1Xf16m9iLtuZ5buagSF6_HNhyI,2907
155
+ docs/source/_ext/include_attrs.py,sha256=M66AWVCe4rbm655Tmhs-xNiybCJVVf5nz_lfwt46HMU,7977
156
+ docs/source/_ext/include_docstring.py,sha256=_Bj5lCkUav2XY8C3Ki09G40qg3BSsGyG_MrQ2ypcZI8,13482
157
+ docs/source/_ext/include_functions.py,sha256=bztdcC7MCcKHWmoFrCyiP5V5bQqaJE5otzyFvAv-mtE,4981
158
+ docs/source/_ext/include_notebook.py,sha256=qvHHC-2AmAkNbo8gca2WXFGpDlINACYX8W4LQdppnCM,4433
159
+ docs/source/_ext/include_yaml.py,sha256=g3jxepPMg0Lz8GKVg5haSN1zYiqkD3Xa6V4s3F9jHAU,3584
160
+ docs/source/_ext/inherited_attributes.py,sha256=secgx_pnTvTuu1bREr9n80Ywx3_uhzoOJv_PCzbSyRE,7087
161
+ docs/source/_ext/paths.py,sha256=pvnMkUDW9j5fimwofRx2pargUh6Qzsq42LPN3F_WDOc,110
162
+ examples/arches/eyeriss.yaml,sha256=3mFEtapVqAZE3OK3i5xpIi6Vqumj2rcYNGpJ0W2k8yY,2461
163
+ examples/arches/nvdla.yaml,sha256=FmzoBremeJ9VifNZSsJGD4wSto8ejSXtkCep0esNQ4s,1535
164
+ examples/arches/simple.yaml,sha256=xSlb2I7Tk5X_asx5osey7qRkjSXDAejS-ON_ZeIvutQ,567
165
+ examples/arches/tpu_v4i.yaml,sha256=2U4hBGZjYuOCbByqzI1wQmcGAt4fJMONLKt_zAnpbOA,2158
166
+ examples/arches/compute_in_memory/_include.yaml,sha256=M3dxqdMuwOgJK2RUSlVfX3n8YAIT_VTKNttByZmUKR0,3503
167
+ examples/arches/compute_in_memory/_include_functions.py,sha256=xo_FEY6hfx1s713IaBC6fR3LjWj2C8ZytZs-ux9a_Rw,7558
168
+ examples/arches/compute_in_memory/_load_spec.py,sha256=5qEJNFEz2ec4mYXmLC_dGDg9lmSg5otTOVCswo0TGX0,1950
169
+ examples/arches/compute_in_memory/isaac.yaml,sha256=nZMU7lLiQ--Ws4Tg6QJinaP-mnbAI8oE1IsHgTZGWFM,11167
170
+ examples/arches/compute_in_memory/wang_vlsi_2022.yaml,sha256=eo-4lTDrGhNZZ-P4RXg80m9a83Nr8Z6wvqmqeBz7pD0,12411
171
+ examples/arches/compute_in_memory/components/c2c_multiplier.py,sha256=BEWqzl0ZDCLUaMsKU6gZGL6wuZh6sw9GYJNhhJ_sYZ0,6550
172
+ examples/arches/compute_in_memory/components/dac_c2c_r2r.py,sha256=EAjfA1HgnSN0-8Vd3-3WhpiVVEvQFIL3DaJ11wdWk-E,23040
173
+ examples/arches/compute_in_memory/components/misc.py,sha256=XuOcpDLgmi5T2-x9IytXi_ac6fb7Kd_PRW_1WvlUrYU,6444
174
+ examples/arches/compute_in_memory/components/zero_comparator.py,sha256=a2RCBnN92ChG1dXHuEXbxdlVJlvhqQJhuwya9PpEZhk,2938
175
+ examples/arches/compute_in_memory/components/util/bit_functions.py,sha256=uG8l995pTNNq_tXVTLquPTCi_vLerbMug1EsqgqKkOM,1901
176
+ examples/arches/compute_in_memory/memory_cells/ecram_demo.yaml,sha256=_5TVJie9iEsQYnrBvkH39t7kge1N-UlaFOiFNg1cXa4,2217
177
+ examples/arches/compute_in_memory/memory_cells/rram_example.yaml,sha256=gQSCXJuR0v3B1k52ESKXGmqS4vMOocqGAloTUpGMseE,2181
178
+ examples/arches/compute_in_memory/memory_cells/rram_isaac_isca_2016.yaml,sha256=E0aiaNoTzhMlTrH_Y0MuqwGv3FMonI6HDQ0HuXbdBHE,2384
179
+ examples/arches/compute_in_memory/memory_cells/rram_neurosim_default.yaml,sha256=JpJ-y2knglxKDo94BbK4dZvb99GFVvmpyu5e5bJd59Q,2179
180
+ examples/arches/compute_in_memory/memory_cells/rram_raella_isca_2023.yaml,sha256=cXIyd1MD0I0NsmJZvgB73HFkGLs7fi1q8_xVi2gmqCA,2822
181
+ examples/arches/compute_in_memory/memory_cells/rram_wan_nature_2022.yaml,sha256=KcGmOJgqtBxxZksR5jixwAWREgk2cSj9KQdgEAjnljk,2195
182
+ examples/arches/compute_in_memory/memory_cells/sram_colonnade_jssc_2021.yaml,sha256=z7Zdf4SDlJHJdkiY3MMKggFHpu1oYJLHVcvL81-S0Ho,2179
183
+ examples/arches/compute_in_memory/memory_cells/sram_example.yaml,sha256=p0AhQ9iqoqHK97gtN-HOYStS-Ita4KI7d_sXFXUbYzc,2180
184
+ examples/arches/compute_in_memory/memory_cells/sram_jia_jssc_2020.yaml,sha256=vBkUTKUryIDMSLJ7PGomcG03wBaA3T7lzxZ89bEXHVo,2181
185
+ examples/arches/compute_in_memory/memory_cells/sram_sinangil_jssc_2021.yaml,sha256=iyYI-u3AwBh3hvyTUlyt1RUAwVc5Vwxcc7CQI7Vbd-g,2186
186
+ examples/arches/compute_in_memory/memory_cells/sram_wang_vlsi_2022.yaml,sha256=fdQ_bA1aES8dyPDBLh0p-5LPFRRTEwwUbpzvB8xaLBs,2184
187
+ examples/arches/fanout_variations/at_glb.yaml,sha256=qGT0GwEd4YYXPlvrkAkGXYnXbXKA0S9PpzI3n1tc_TQ,610
188
+ examples/arches/fanout_variations/at_glb_with_fanout_node.yaml,sha256=zdN-iVcA-rr-maotNR_AxUbBgjqlGHGVVRP5t10ywco,651
189
+ examples/arches/fanout_variations/at_mac.yaml,sha256=J7qmQNr--0LSrTm3Pusx1CqI_lhLXZSmC1yV-DVhTtU,610
190
+ examples/arches/fanout_variations/at_mac_with_constraints.yaml,sha256=nyrMLJqh9X8uatCvXONvPPbvPKKg2KJeoOzMgW0xVow,722
191
+ examples/arches/fanout_variations/at_mac_with_fanout_node.yaml,sha256=e_F-Vq5DQKFAhZQhKk25Sisr5iw1cEp9otrV9Xfvnp0,642
192
+ examples/mappings/unfused_matmuls_to_simple.yaml,sha256=nHvaoA6tVOPWll8gUoEjAwrVvN-1C4hAlcEEr5cbUtE,702
193
+ examples/misc/component_annotated.yaml,sha256=qaHZuvLs9lbkjDT_47ykJ-4QXZl8vATWRdIiOILkueY,1331
194
+ examples/workloads/gpt3_6.7B.yaml,sha256=2Ssdpin5uhv-U3k0EEr-4tkIugdO7DVZQtBXbeCgdV4,4442
195
+ examples/workloads/matmuls.yaml,sha256=ltdchS7ovVaAZKfTRx6tzAEbkPzxgvxhyC8bdVfoUx0,577
196
+ examples/workloads/mobilenet_28.yaml,sha256=At0IE0Mx2k4I2pt7lF3Gqx9nrqSqvv0xzbwC93kZDQQ,1931
197
+ examples/workloads/mobilenet_various_separate.yaml,sha256=pZsOa_v62Hq0B3q9_iP0BV_WfbxtxTpEWAPbnqimpHk,2690
198
+ examples/workloads/three_matmuls_annotated.yaml,sha256=VByE56VnqmpIyFdoyVswrG9K436_Uhxf_jpQ8aD9PoA,1731
199
+ notebooks/paths.py,sha256=H5bQxC73iGf0cjGowBTi2FOVyHE-AlzFdP-FNjq0weA,90
200
+ notebooks/.ipynb_checkpoints/fastfusion_arch_study_michael-checkpoint.ipynb,sha256=DdeKQKcYW85X0i1OOMiTOJiPenbXMxfeZ5Ct0AIbjck,90606
201
+ notebooks/compute_in_memory/_scripts.py,sha256=SoG5YfqC_4Oa5ZigzP4NsD7jrmWML3typ2fJSlYv_KQ,10227
202
+ notebooks/compute_in_memory/isaac.guide.ipynb,sha256=WvYaAYm1BzcEjVApgfPfjRPI0BtaQBRb5zE0WSIAnCs,10538
203
+ notebooks/compute_in_memory/wang_vlsi_2022.ipynb,sha256=rI7h08y7FJcEu_xKe4E3J_P1AwhD93Kvuf3_Pn44UpM,40918
204
+ notebooks/tutorials/FFM.ipynb,sha256=edDz1CjsIq_mKqshi3PQF6PzTEdPY6exrov96E9tz1c,403394
205
+ notebooks/tutorials/_include.py,sha256=zjbpQK2TQ2GzSCBxmhrs7pKbqedO-e_zp--f0izrIgA,1574
206
+ notebooks/tutorials/component_energy_area.ipynb,sha256=3hXU1l0Rcsb8fec-Md5M8arW__ID_6cKmW45JgvFbSY,11786
207
+ notebooks/tutorials/.ipynb_checkpoints/1_FFM-checkpoint.ipynb,sha256=EOzCeoSqGy1xpeNhCYw8QlA7As5c3kIJpBMldNW9RRo,298144
208
+ tests/Q_mapping.yaml,sha256=pJvdOSW9susZh3CwB-hFjpSJqmGgGKWbONqurahFv24,750
209
+ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
210
+ tests/conv.mapping.yaml,sha256=qNd-lWlXLyJhJVt_ujlENuTvKW3lO5vpxwIKilpnrcM,471
211
+ tests/conv.workload.yaml,sha256=XdR6mfd-Se8aKuFQGMx4PkJrDbwouzFt8sFjw7jF8_M,291
212
+ tests/conv_sym.mapping.yaml,sha256=pfKL-avGExZlUowUKA99pOr6WzjVG9ZlELyhwfT0P_w,809
213
+ tests/copy.mapping.yaml,sha256=r_56j29zsLpe4z65zZxXJ2KevZygzxMKw_scrOkIoYQ,709
214
+ tests/copy.workload.yaml,sha256=Z_yAKBmbNQ6WvB0GHBnB7LDSeNzqlUDSoy2Wd97j62E,414
215
+ tests/matmul.mapping.yaml,sha256=pQoOaRJKY_KOKXg1iW8q4AjmpnS1rkmzOtidi3OfGpo,522
216
+ tests/matmul.workload.yaml,sha256=7Qa7MItaC0DCC17XQPSsIKnUwZ_K4SK_6tM1CdZZ2P0,274
217
+ tests/matmul_spatial.mapping.yaml,sha256=uDvt1WUyQK2SvvwMhEA0CFYRijTPXXWeoEcKY-6mHQA,797
218
+ tests/mha.renames.yaml,sha256=uXLC7Wp0NzG2QMqpaeES0HU_FQOEZmCl_9GuuncVu3M,1604
219
+ tests/mha.workload.yaml,sha256=kvTuMc8KJRW5L0SS8dDfrlXKGEipktuL0cWRsOmuyH0,1808
220
+ tests/mha.yaml,sha256=sM8Zh_Rs4csO82SYIOcNbJuy8D99a6QSVI6crxHATKM,1615
221
+ tests/mha_full.workload.yaml,sha256=gADl87VB1xqZ1B8_pS87xfyoAF3WpQVh0_ZjWtDbUlI,1795
222
+ tests/mobilenet.workload.yaml,sha256=Svz7vYaSVjoZPtrp2oliFTj__6OMJ25I-_3X9Dh48qg,883
223
+ tests/mobilenet_long.workload.yaml,sha256=J3g2pUcD2-MmYVGwtLskOI1HASY1oV3Jxs2Rv589-JU,1618
224
+ tests/pmappingcache.py,sha256=0WTtHM8JwIFYJraijAouum4WcFsAfyO6PfHx0vICZ1c,813
225
+ tests/processing_stage.arch.yaml,sha256=EhSA5h2e4mQGT0gqPV-kNeg-Cgr02Yzp1_DgyLFphyg,953
226
+ tests/snowcat.arch.yaml,sha256=BbEnuFPbfvCjEt_3rZAPc4mvbmNEsuzaaMYSnQLNjTk,840
227
+ tests/test_ffm_join_pmappings.py,sha256=SHuUWyNvl_KppJA3famR_PepQTh2Fu_umO_QAp4oRGI,4089
228
+ tests/test_ffm_make_pmappings.py,sha256=erAQVrihzWstpGB6yy_kFiou6fdCSJvW0oal2ouKUSE,3137
229
+ tests/test_ffm_make_tile_shapes.py,sha256=t4XOQdc6BRUUT3RoOWH3V61Eb4Pe70at0wcWtB2LH2k,1604
230
+ tests/test_mapper.py,sha256=J_8xk6Vbed1O3wGKs_zG9EeJSRjJPQcbjFVVld4W8PY,3429
231
+ tests/test_model.py,sha256=KRaj174IwevGaKLXVYBLu9gF-24oQ9EDjRiPatexCWw,1089
232
+ tests/test_plotting.py,sha256=E6VFpb1g8doLt4Yc1w7H82VU8JlCGjbLeSUZ4SrFm3c,2613
233
+ tests/test_processing_stage.py,sha256=-9N3o34AJpA4AF6UTBoyQ4c12hH70wFRdWHNwMVSJ-o,1431
234
+ tests/test_symbolic_model.py,sha256=rTZ1ytp9SXShe9JWEjoe0raBkCTmOPXkysN-1DHZp34,10372
235
+ tests/test_workload.py,sha256=4-0glG9CwB4BjLXHEvBTQhob4E-wgOTcuBT-TmIQP34,4993
236
+ tests/distribuffers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
237
+ tests/distribuffers/test_binding.py,sha256=V_EPphGrrBN6Cqova9fZYedzFMVec6vmPguu6XPnFe0,1789
238
+ tests/distribuffers/multicast/test_cases.yaml,sha256=LD8lcwlfo9UXCTJsXwKQCpJM8Z3jwCHoeJoSmoV19QY,18436
239
+ tests/distribuffers/spec/distributed.yaml,sha256=MI0rwmzL1GA_a6AAmDq8WbXq6-2wEDJL4BbB-1Xr5E8,5027
240
+ tests/distribuffers/spec/logical_arch.yaml,sha256=2zNORV1WJ_x0wQIqHM6hHOr6Dp7AA3aClD9X8Hj2zFI,785
241
+ tests/distribuffers/spec/physical_arch.yaml,sha256=4tXAm5j8vieAc1TPPl7PZRgqbUGzWE0F-dsl4CsI67A,1527
242
+ tests/distribuffers/spec/binding/valid_bindings.yaml,sha256=97ULd5o5C5Y09eN90TDqXYPP-srtqqZ90_41FAbofUA,3062
243
+ tests/frontend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
244
+ tests/frontend/test_mapping_viz.py,sha256=4CZEcaG03I_1oZq8ArPL1tYQ6MKOJc7oBVriXFUQy5c,1997
245
+ tests/mapper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
246
+ tests/mapper/test_mapping_to_isl.py,sha256=pfwAk9GYYU3eIN9B4V0Zt7_pgglZddRhHG80s7CtaUQ,3190
247
+ tests/mapper/test_spatial_reuse_analysis.py,sha256=LyVupngG6uTt5VoPbuyk5rV6-4H-B8QB589h7w03xgo,2420
248
+ tests/mapper/test_temporal_reuse_analysis.py,sha256=-R936lyF3LWp31kEzhM3bgJ2uqVJYihUzdJUs54KOxo,1771
249
+ tests/mapper/util.py,sha256=5lQi_-DcFdQEDKALYjysGdH9-pRC5qtC3y7-3HJa7qY,1591
250
+ tests/mapper/configs/conv1d/conv1d.mapping.yaml,sha256=bUATpTUMjWw07oUjlPTrUPilBg891b95pl8rJd_xLuo,561
251
+ tests/mapper/configs/conv1d/conv1d.workload.yaml,sha256=5F8DffYYSBMGkpjO-zXNFNHlTnWS6L2xVnl5DbEj8YQ,226
252
+ tests/mapper/configs/two_conv1d/two_conv1d.expected.yaml,sha256=iRKZEJplZcj082Q7FRmVlLcFQzqa3x8d4fpo2AjYeH8,3875
253
+ tests/mapper/configs/two_conv1d/two_conv1d.mapping.yaml,sha256=3vSOtC9-pYcu3ulhHwcpitzXOq6SMAa2KwrXKTpnup8,1104
254
+ tests/mapper/configs/two_conv1d/two_conv1d.workload.yaml,sha256=CMtQvtUl9tOTvUPUX5-atvKTdH6Rn-JZ2tE_8CUPYso,447
255
+ accelforge-0.0.1.dist-info/METADATA,sha256=40mUHPEAhLNXx-D9UyAnvFE9J7xku538FNgzdo2Sf_M,1770
256
+ accelforge-0.0.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
257
+ accelforge-0.0.1.dist-info/top_level.txt,sha256=ToYJM-Ouf0tENYD0zZGDheeF-UhQpPoIv0qgzkt9MGg,41
258
+ accelforge-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.10.2)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2026 Tanner Andrulis and Michael Gilbert
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
@@ -0,0 +1,5 @@
1
+ accelforge
2
+ docs
3
+ examples
4
+ notebooks
5
+ tests
@@ -0,0 +1,37 @@
1
+ fastfusion.frontend.mapper package
2
+ ==================================
3
+
4
+ Submodules
5
+ ----------
6
+
7
+ fastfusion.frontend.mapper.ffm module
8
+ -------------------------------------
9
+
10
+ .. automodule:: fastfusion.frontend.mapper.ffm
11
+ :members:
12
+ :show-inheritance:
13
+ :undoc-members:
14
+
15
+ fastfusion.frontend.mapper.mapper module
16
+ ----------------------------------------
17
+
18
+ .. automodule:: fastfusion.frontend.mapper.mapper
19
+ :members:
20
+ :show-inheritance:
21
+ :undoc-members:
22
+
23
+ fastfusion.frontend.mapper.metrics module
24
+ -----------------------------------------
25
+
26
+ .. automodule:: fastfusion.frontend.mapper.metrics
27
+ :members:
28
+ :show-inheritance:
29
+ :undoc-members:
30
+
31
+ Module contents
32
+ ---------------
33
+
34
+ .. automodule:: fastfusion.frontend.mapper
35
+ :members:
36
+ :show-inheritance:
37
+ :undoc-members: