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.
- accelforge/__init__.py +21 -0
- accelforge/_accelerated_imports.py +16 -0
- accelforge/_deprecate/_simanneal/evalmapping.py +271 -0
- accelforge/_deprecate/_simanneal/mapspaceglobals.py +298 -0
- accelforge/_deprecate/_simanneal/simanneal.py +666 -0
- accelforge/_deprecate/_simanneal/tracking.py +105 -0
- accelforge/_deprecate/_simanneal/wrappers.py +218 -0
- accelforge/_deprecate/_simanneal2/__init__.py +7 -0
- accelforge/_deprecate/_simanneal2/simanneal.py +493 -0
- accelforge/_deprecate/_simanneal2/tracking.py +116 -0
- accelforge/_deprecate/compatibility_util.py +181 -0
- accelforge/_deprecate/layerdeduplication/__init__.py +2 -0
- accelforge/_deprecate/layerdeduplication/group_similar_einsums.py +160 -0
- accelforge/_deprecate/layerdeduplication/grouped_einsums.py +84 -0
- accelforge/_deprecate/mapping_filter_tags/__init__.py +2 -0
- accelforge/_deprecate/mapping_filter_tags/ffmt.py +212 -0
- accelforge/_deprecate/mapping_filter_tags/onesplit.py +24 -0
- accelforge/_deprecate/mapping_filter_tags/util.py +24 -0
- accelforge/_deprecate/tags.py +69 -0
- accelforge/_deprecate/viz/__init__.py +0 -0
- accelforge/_deprecate/viz/interactive.py +159 -0
- accelforge/_deprecate/viz/reservationtree.py +307 -0
- accelforge/_deprecate/viz/ski_slope.py +88 -0
- accelforge/_version.py +15 -0
- accelforge/examples.py +39 -0
- accelforge/frontend/__init__.py +10 -0
- accelforge/frontend/_binding.py +129 -0
- accelforge/frontend/_workload_isl/__init__.py +2 -0
- accelforge/frontend/_workload_isl/_isl.py +149 -0
- accelforge/frontend/_workload_isl/_symbolic.py +141 -0
- accelforge/frontend/arch copy.py +1544 -0
- accelforge/frontend/arch.py +1642 -0
- accelforge/frontend/config.py +63 -0
- accelforge/frontend/mapper/__init__.py +5 -0
- accelforge/frontend/mapper/ffm.py +126 -0
- accelforge/frontend/mapper/mapper.py +7 -0
- accelforge/frontend/mapper/metrics.py +30 -0
- accelforge/frontend/mapping/__init__.py +1 -0
- accelforge/frontend/mapping/mapping.py +1736 -0
- accelforge/frontend/model.py +14 -0
- accelforge/frontend/renames.py +150 -0
- accelforge/frontend/spec copy.py +230 -0
- accelforge/frontend/spec.py +301 -0
- accelforge/frontend/variables.py +12 -0
- accelforge/frontend/workload.py +952 -0
- accelforge/mapper/FFM/__init__.py +9 -0
- accelforge/mapper/FFM/_join_pmappings/__init__.py +0 -0
- accelforge/mapper/FFM/_join_pmappings/compatibility.py +653 -0
- accelforge/mapper/FFM/_join_pmappings/compress_pmappings.py +140 -0
- accelforge/mapper/FFM/_join_pmappings/join_pmappings.py +703 -0
- accelforge/mapper/FFM/_join_pmappings/pmapping_dataframe.py +901 -0
- accelforge/mapper/FFM/_join_pmappings/pmapping_group.py +337 -0
- accelforge/mapper/FFM/_make_pmappings/contraints/__init__.py +0 -0
- accelforge/mapper/FFM/_make_pmappings/contraints/constraints.py +360 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/__init__.py +1 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_loops.py +373 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_pmapping_templates.py +463 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_reservations.py +95 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_storage_order.py +382 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_storages.py +155 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmappings.py +411 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/__init__.py +1 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/make_pmappings_from_templates.py +407 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/make_tile_shapes.py +1681 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/run_model.py +170 -0
- accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/symbol_relations.py +174 -0
- accelforge/mapper/FFM/_make_pmappings/pmapper_job.py +282 -0
- accelforge/mapper/FFM/_pareto_df/df_convention.py +273 -0
- accelforge/mapper/FFM/_pareto_df/pareto copy.py +836 -0
- accelforge/mapper/FFM/_pareto_df/pareto.py +508 -0
- accelforge/mapper/FFM/data.py +61 -0
- accelforge/mapper/FFM/main copy.py +236 -0
- accelforge/mapper/FFM/main.py +208 -0
- accelforge/mapper/FFM/mappings.py +510 -0
- accelforge/mapper/FFM/pmappings.py +310 -0
- accelforge/mapper/__init__.py +4 -0
- accelforge/mapper.py +0 -0
- accelforge/model/__init__.py +1 -0
- accelforge/model/_looptree/__init__.py +0 -0
- accelforge/model/_looptree/accesses.py +335 -0
- accelforge/model/_looptree/capacity/__init__.py +1 -0
- accelforge/model/_looptree/capacity/aggregators.py +36 -0
- accelforge/model/_looptree/capacity/capacity.py +47 -0
- accelforge/model/_looptree/energy.py +150 -0
- accelforge/model/_looptree/equivalent_ranks.py +29 -0
- accelforge/model/_looptree/latency/__init__.py +1 -0
- accelforge/model/_looptree/latency/latency.py +98 -0
- accelforge/model/_looptree/latency/memory.py +120 -0
- accelforge/model/_looptree/latency/processors.py +92 -0
- accelforge/model/_looptree/mapping_utilities.py +71 -0
- accelforge/model/_looptree/reuse/__init__.py +4 -0
- accelforge/model/_looptree/reuse/isl/__init__.py +1 -0
- accelforge/model/_looptree/reuse/isl/des.py +59 -0
- accelforge/model/_looptree/reuse/isl/isl_functions.py +374 -0
- accelforge/model/_looptree/reuse/isl/mapping_to_isl/__init__.py +4 -0
- accelforge/model/_looptree/reuse/isl/mapping_to_isl/analyze_mapping.py +297 -0
- accelforge/model/_looptree/reuse/isl/mapping_to_isl/skews_from_mapping.py +236 -0
- accelforge/model/_looptree/reuse/isl/mapping_to_isl/tiling.py +685 -0
- accelforge/model/_looptree/reuse/isl/mapping_to_isl/types.py +188 -0
- accelforge/model/_looptree/reuse/isl/spatial.py +260 -0
- accelforge/model/_looptree/reuse/isl/temporal.py +182 -0
- accelforge/model/_looptree/reuse/symbolic/__init__.py +1 -0
- accelforge/model/_looptree/reuse/symbolic/symbolic copy 2.py +1346 -0
- accelforge/model/_looptree/reuse/symbolic/symbolic copy.py +1408 -0
- accelforge/model/_looptree/reuse/symbolic/symbolic.py +1396 -0
- accelforge/model/_looptree/run.py +122 -0
- accelforge/model/_looptree/types.py +26 -0
- accelforge/model/_looptree/visualization/__init__.py +0 -0
- accelforge/model/_looptree/visualization/occupancy.py +11 -0
- accelforge/model/main.py +222 -0
- accelforge/plotting/__init__.py +2 -0
- accelforge/plotting/mappings.py +219 -0
- accelforge/plotting/specs.py +57 -0
- accelforge/util/__init__.py +4 -0
- accelforge/util/_base_analysis_types.py +24 -0
- accelforge/util/_basetypes.py +1089 -0
- accelforge/util/_frozenset.py +36 -0
- accelforge/util/_isl.py +29 -0
- accelforge/util/_itertools.py +14 -0
- accelforge/util/_mathfuncs.py +57 -0
- accelforge/util/_parse_expressions.py +339 -0
- accelforge/util/_picklecache.py +32 -0
- accelforge/util/_setexpressions.py +268 -0
- accelforge/util/_sympy/__init__.py +0 -0
- accelforge/util/_sympy/broadcast_max.py +18 -0
- accelforge/util/_visualization.py +112 -0
- accelforge/util/_yaml.py +579 -0
- accelforge/util/parallel.py +193 -0
- accelforge-0.0.1.dist-info/METADATA +64 -0
- accelforge-0.0.1.dist-info/RECORD +258 -0
- accelforge-0.0.1.dist-info/WHEEL +5 -0
- accelforge-0.0.1.dist-info/licenses/LICENSE +19 -0
- accelforge-0.0.1.dist-info/top_level.txt +5 -0
- docs/_build/html/_sources/fastfusion.frontend.mapper.rst.txt +37 -0
- docs/_build/html/_sources/fastfusion.frontend.rst.txt +70 -0
- docs/_build/html/_sources/fastfusion.frontend.workload.rst.txt +21 -0
- docs/_build/html/_sources/fastfusion.mapper.FFM.rst.txt +37 -0
- docs/_build/html/_sources/fastfusion.mapper.rst.txt +18 -0
- docs/_build/html/_sources/fastfusion.rst.txt +20 -0
- docs/_build/html/_sources/fastfusion.util.rst.txt +21 -0
- docs/_build/html/_sources/index.rst.txt +87 -0
- docs/_build/html/_sources/modules.rst.txt +7 -0
- docs/_build/html/_sources/notes/citation.rst.txt +45 -0
- docs/_build/html/_sources/notes/definitions.rst.txt +43 -0
- docs/_build/html/_sources/notes/faqs.rst.txt +39 -0
- docs/_build/html/_sources/notes/modeling/accelerator_energy_latency.rst.txt +72 -0
- docs/_build/html/_sources/notes/modeling/component_energy_area.rst.txt +96 -0
- docs/_build/html/_sources/notes/modeling/mapping.rst.txt +100 -0
- docs/_build/html/_sources/notes/modeling.rst.txt +33 -0
- docs/_build/html/_sources/notes/parsing/arithmetic_parsing.rst.txt +136 -0
- docs/_build/html/_sources/notes/parsing/setexpressions.rst.txt +63 -0
- docs/_build/html/_sources/notes/parsing/yaml_parsing.rst.txt +176 -0
- docs/_build/html/_sources/notes/quickstart_and_installation.rst.txt +9 -0
- docs/_build/html/_sources/notes/spec/architecture.rst.txt +133 -0
- docs/_build/html/_sources/notes/spec/mapping.rst.txt +12 -0
- docs/_build/html/_sources/notes/spec/workload.rst.txt +83 -0
- docs/_build/html/_sources/notes/spec.rst.txt +36 -0
- docs/source/_ext/include_attrs.py +213 -0
- docs/source/_ext/include_docstring.py +364 -0
- docs/source/_ext/include_functions.py +154 -0
- docs/source/_ext/include_notebook.py +131 -0
- docs/source/_ext/include_yaml.py +119 -0
- docs/source/_ext/inherited_attributes.py +222 -0
- docs/source/_ext/paths.py +4 -0
- docs/source/conf.py +79 -0
- examples/arches/compute_in_memory/_include.yaml +74 -0
- examples/arches/compute_in_memory/_include_functions.py +229 -0
- examples/arches/compute_in_memory/_load_spec.py +57 -0
- examples/arches/compute_in_memory/components/c2c_multiplier.py +181 -0
- examples/arches/compute_in_memory/components/dac_c2c_r2r.py +605 -0
- examples/arches/compute_in_memory/components/misc.py +195 -0
- examples/arches/compute_in_memory/components/util/bit_functions.py +51 -0
- examples/arches/compute_in_memory/components/zero_comparator.py +92 -0
- examples/arches/compute_in_memory/isaac.yaml +233 -0
- examples/arches/compute_in_memory/memory_cells/ecram_demo.yaml +63 -0
- examples/arches/compute_in_memory/memory_cells/rram_example.yaml +63 -0
- examples/arches/compute_in_memory/memory_cells/rram_isaac_isca_2016.yaml +64 -0
- examples/arches/compute_in_memory/memory_cells/rram_neurosim_default.yaml +63 -0
- examples/arches/compute_in_memory/memory_cells/rram_raella_isca_2023.yaml +70 -0
- examples/arches/compute_in_memory/memory_cells/rram_wan_nature_2022.yaml +63 -0
- examples/arches/compute_in_memory/memory_cells/sram_colonnade_jssc_2021.yaml +63 -0
- examples/arches/compute_in_memory/memory_cells/sram_example.yaml +63 -0
- examples/arches/compute_in_memory/memory_cells/sram_jia_jssc_2020.yaml +63 -0
- examples/arches/compute_in_memory/memory_cells/sram_sinangil_jssc_2021.yaml +63 -0
- examples/arches/compute_in_memory/memory_cells/sram_wang_vlsi_2022.yaml +63 -0
- examples/arches/compute_in_memory/wang_vlsi_2022.yaml +289 -0
- examples/arches/eyeriss.yaml +68 -0
- examples/arches/fanout_variations/at_glb.yaml +31 -0
- examples/arches/fanout_variations/at_glb_with_fanout_node.yaml +34 -0
- examples/arches/fanout_variations/at_mac.yaml +31 -0
- examples/arches/fanout_variations/at_mac_with_constraints.yaml +38 -0
- examples/arches/fanout_variations/at_mac_with_fanout_node.yaml +34 -0
- examples/arches/nvdla.yaml +47 -0
- examples/arches/simple.yaml +28 -0
- examples/arches/tpu_v4i.yaml +67 -0
- examples/mappings/unfused_matmuls_to_simple.yaml +33 -0
- examples/misc/component_annotated.yaml +33 -0
- examples/workloads/gpt3_6.7B.yaml +124 -0
- examples/workloads/matmuls.yaml +20 -0
- examples/workloads/mobilenet_28.yaml +81 -0
- examples/workloads/mobilenet_various_separate.yaml +106 -0
- examples/workloads/three_matmuls_annotated.yaml +59 -0
- notebooks/.ipynb_checkpoints/fastfusion_arch_study_michael-checkpoint.ipynb +359 -0
- notebooks/compute_in_memory/_scripts.py +339 -0
- notebooks/compute_in_memory/isaac.guide.ipynb +270 -0
- notebooks/compute_in_memory/wang_vlsi_2022.ipynb +602 -0
- notebooks/paths.py +4 -0
- notebooks/tutorials/.ipynb_checkpoints/1_FFM-checkpoint.ipynb +3110 -0
- notebooks/tutorials/FFM.ipynb +3498 -0
- notebooks/tutorials/_include.py +48 -0
- notebooks/tutorials/component_energy_area.ipynb +363 -0
- tests/Q_mapping.yaml +38 -0
- tests/__init__.py +0 -0
- tests/conv.mapping.yaml +27 -0
- tests/conv.workload.yaml +13 -0
- tests/conv_sym.mapping.yaml +43 -0
- tests/copy.mapping.yaml +35 -0
- tests/copy.workload.yaml +15 -0
- tests/distribuffers/__init__.py +0 -0
- tests/distribuffers/multicast/test_cases.yaml +482 -0
- tests/distribuffers/spec/binding/valid_bindings.yaml +97 -0
- tests/distribuffers/spec/distributed.yaml +100 -0
- tests/distribuffers/spec/logical_arch.yaml +32 -0
- tests/distribuffers/spec/physical_arch.yaml +69 -0
- tests/distribuffers/test_binding.py +48 -0
- tests/frontend/__init__.py +0 -0
- tests/frontend/test_mapping_viz.py +52 -0
- tests/mapper/__init__.py +0 -0
- tests/mapper/configs/conv1d/conv1d.mapping.yaml +31 -0
- tests/mapper/configs/conv1d/conv1d.workload.yaml +11 -0
- tests/mapper/configs/two_conv1d/two_conv1d.expected.yaml +38 -0
- tests/mapper/configs/two_conv1d/two_conv1d.mapping.yaml +54 -0
- tests/mapper/configs/two_conv1d/two_conv1d.workload.yaml +19 -0
- tests/mapper/test_mapping_to_isl.py +90 -0
- tests/mapper/test_spatial_reuse_analysis.py +67 -0
- tests/mapper/test_temporal_reuse_analysis.py +56 -0
- tests/mapper/util.py +58 -0
- tests/matmul.mapping.yaml +29 -0
- tests/matmul.workload.yaml +12 -0
- tests/matmul_spatial.mapping.yaml +44 -0
- tests/mha.renames.yaml +65 -0
- tests/mha.workload.yaml +67 -0
- tests/mha.yaml +59 -0
- tests/mha_full.workload.yaml +67 -0
- tests/mobilenet.workload.yaml +35 -0
- tests/mobilenet_long.workload.yaml +64 -0
- tests/pmappingcache.py +24 -0
- tests/processing_stage.arch.yaml +40 -0
- tests/snowcat.arch.yaml +36 -0
- tests/test_ffm_join_pmappings.py +106 -0
- tests/test_ffm_make_pmappings.py +82 -0
- tests/test_ffm_make_tile_shapes.py +49 -0
- tests/test_mapper.py +100 -0
- tests/test_model.py +37 -0
- tests/test_plotting.py +72 -0
- tests/test_processing_stage.py +46 -0
- tests/test_symbolic_model.py +248 -0
- tests/test_workload.py +141 -0
|
@@ -0,0 +1,3498 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"metadata": {},
|
|
6
|
+
"source": [
|
|
7
|
+
"## Running the Fast & Fusiest Mapper (FFM)\n",
|
|
8
|
+
"This notebook shows how to run the Fast & Fusiest Mapper (FFM) on a full workload and\n",
|
|
9
|
+
"architecture."
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"cell_type": "markdown",
|
|
14
|
+
"metadata": {},
|
|
15
|
+
"source": [
|
|
16
|
+
"We first initialize the spec. The spec is initialized with a `af.Spec` object\n",
|
|
17
|
+
"using YAML files (though you may also initialize them with Python objects).\n",
|
|
18
|
+
"\n",
|
|
19
|
+
"When loading specifications, Jinja2 templating can be used, and the `jinja_parse_data`\n",
|
|
20
|
+
"parameter can be used to pass in data to the templating engine."
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"cell_type": "code",
|
|
25
|
+
"execution_count": 1,
|
|
26
|
+
"metadata": {},
|
|
27
|
+
"outputs": [
|
|
28
|
+
{
|
|
29
|
+
"name": "stderr",
|
|
30
|
+
"output_type": "stream",
|
|
31
|
+
"text": [
|
|
32
|
+
"WARNING Loading configuration file from /home/tanner/.config/accelforge/config.yaml\n"
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"name": "stdout",
|
|
37
|
+
"output_type": "stream",
|
|
38
|
+
"text": [
|
|
39
|
+
"Using 32 parallel jobs\n",
|
|
40
|
+
"Keeping all tensors in MainMemory\n"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"source": [
|
|
45
|
+
"from pathlib import Path\n",
|
|
46
|
+
"\n",
|
|
47
|
+
"examples_dir = Path(\"../../examples\")\n",
|
|
48
|
+
"\n",
|
|
49
|
+
"# < DOC_INCLUDE_MARKER > make_spec\n",
|
|
50
|
+
"import accelforge as af\n",
|
|
51
|
+
"\n",
|
|
52
|
+
"# Set the number of parallel threads that the mapper can use. If you are running out of\n",
|
|
53
|
+
"# memory, you may decrease this number. By default the number of threads is set to the\n",
|
|
54
|
+
"# number of cores on your machine.\n",
|
|
55
|
+
"import os\n",
|
|
56
|
+
"af.set_n_parallel_jobs(os.cpu_count(), print_message=True)\n",
|
|
57
|
+
"\n",
|
|
58
|
+
"# Initialize the spec and show the workload.\n",
|
|
59
|
+
"BATCH_SIZE = 1\n",
|
|
60
|
+
"N_TOKENS = 16384\n",
|
|
61
|
+
"FUSE = False\n",
|
|
62
|
+
"\n",
|
|
63
|
+
"spec = af.Spec.from_yaml(\n",
|
|
64
|
+
" examples_dir / \"arches\" / \"nvdla_like.arch.yaml\",\n",
|
|
65
|
+
" examples_dir / \"workloads\" / \"gpt3_6.7B.workload.yaml\",\n",
|
|
66
|
+
" jinja_parse_data=dict(\n",
|
|
67
|
+
" BATCH_SIZE=BATCH_SIZE,\n",
|
|
68
|
+
" N_TOKENS=N_TOKENS,\n",
|
|
69
|
+
" )\n",
|
|
70
|
+
")\n",
|
|
71
|
+
"\n",
|
|
72
|
+
"# Fusion happens when tensors bypass the outermost Memory object, so, to disable fusion,\n",
|
|
73
|
+
"# force all tensors to be in the outermost memory.\n",
|
|
74
|
+
"if not FUSE:\n",
|
|
75
|
+
" for node in spec.arch.nodes:\n",
|
|
76
|
+
" if isinstance(node, af.arch.Memory):\n",
|
|
77
|
+
" print(f'Keeping all tensors in {node.name}')\n",
|
|
78
|
+
" node.tensors.keep = \"All\"\n",
|
|
79
|
+
" break"
|
|
80
|
+
]
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"cell_type": "markdown",
|
|
84
|
+
"metadata": {},
|
|
85
|
+
"source": [
|
|
86
|
+
"Now we'll visualize the workload. The workload is a cascade of Einsums, with boxes\n",
|
|
87
|
+
"showing Einsums (computation steps), ovals showing tensors, and arrows showing\n",
|
|
88
|
+
"dependencies."
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"cell_type": "code",
|
|
93
|
+
"execution_count": null,
|
|
94
|
+
"metadata": {},
|
|
95
|
+
"outputs": [
|
|
96
|
+
{
|
|
97
|
+
"data": {
|
|
98
|
+
"image/svg+xml": [
|
|
99
|
+
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
100
|
+
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
101
|
+
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
102
|
+
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
103
|
+
" -->\n",
|
|
104
|
+
"<!-- Title: G Pages: 1 -->\n",
|
|
105
|
+
"<svg width=\"472pt\" height=\"844pt\"\n",
|
|
106
|
+
" viewBox=\"0.00 0.00 472.00 844.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
107
|
+
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 840)\">\n",
|
|
108
|
+
"<title>G</title>\n",
|
|
109
|
+
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-840 468,-840 468,4 -4,4\"/>\n",
|
|
110
|
+
"<!-- Einsum_I -->\n",
|
|
111
|
+
"<g id=\"node1\" class=\"node\">\n",
|
|
112
|
+
"<title>Einsum_I</title>\n",
|
|
113
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"326.5,-786 229.5,-786 229.5,-750 326.5,-750 326.5,-786\"/>\n",
|
|
114
|
+
"<text text-anchor=\"start\" x=\"237.5\" y=\"-765.9\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
115
|
+
"<text text-anchor=\"start\" x=\"241.5\" y=\"-765.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,d</text>\n",
|
|
116
|
+
"<text text-anchor=\"start\" x=\"266.5\" y=\"-765.9\" font-family=\"Arial\" font-size=\"12.00\">=I_in</text>\n",
|
|
117
|
+
"<text text-anchor=\"start\" x=\"293.5\" y=\"-765.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,d</text>\n",
|
|
118
|
+
"</g>\n",
|
|
119
|
+
"<!-- Tensor_I -->\n",
|
|
120
|
+
"<g id=\"node3\" class=\"node\">\n",
|
|
121
|
+
"<title>Tensor_I</title>\n",
|
|
122
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"278\" cy=\"-718\" rx=\"27.9\" ry=\"18\"/>\n",
|
|
123
|
+
"<text text-anchor=\"start\" x=\"263.5\" y=\"-715.9\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
124
|
+
"<text text-anchor=\"start\" x=\"267.5\" y=\"-715.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,d</text>\n",
|
|
125
|
+
"</g>\n",
|
|
126
|
+
"<!-- Einsum_I->Tensor_I -->\n",
|
|
127
|
+
"<g id=\"edge2\" class=\"edge\">\n",
|
|
128
|
+
"<title>Einsum_I->Tensor_I</title>\n",
|
|
129
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M278,-749.94C278,-748.67 278,-747.37 278,-746.05\"/>\n",
|
|
130
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"281.5,-746 278,-736 274.5,-746 281.5,-746\"/>\n",
|
|
131
|
+
"</g>\n",
|
|
132
|
+
"<!-- Tensor_I_in -->\n",
|
|
133
|
+
"<g id=\"node2\" class=\"node\">\n",
|
|
134
|
+
"<title>Tensor_I_in</title>\n",
|
|
135
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"278\" cy=\"-818\" rx=\"37.6\" ry=\"18\"/>\n",
|
|
136
|
+
"<text text-anchor=\"start\" x=\"255.5\" y=\"-815.9\" font-family=\"Arial\" font-size=\"12.00\">I_in</text>\n",
|
|
137
|
+
"<text text-anchor=\"start\" x=\"275.5\" y=\"-815.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,d</text>\n",
|
|
138
|
+
"</g>\n",
|
|
139
|
+
"<!-- Tensor_I_in->Einsum_I -->\n",
|
|
140
|
+
"<g id=\"edge1\" class=\"edge\">\n",
|
|
141
|
+
"<title>Tensor_I_in->Einsum_I</title>\n",
|
|
142
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M278,-799.94C278,-798.67 278,-797.37 278,-796.05\"/>\n",
|
|
143
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"281.5,-796 278,-786 274.5,-796 281.5,-796\"/>\n",
|
|
144
|
+
"</g>\n",
|
|
145
|
+
"<!-- Einsum_V -->\n",
|
|
146
|
+
"<g id=\"node4\" class=\"node\">\n",
|
|
147
|
+
"<title>Einsum_V</title>\n",
|
|
148
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"142,-686 0,-686 0,-650 142,-650 142,-686\"/>\n",
|
|
149
|
+
"<text text-anchor=\"start\" x=\"8\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
150
|
+
"<text text-anchor=\"start\" x=\"17\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,e</text>\n",
|
|
151
|
+
"<text text-anchor=\"start\" x=\"51\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">=I</text>\n",
|
|
152
|
+
"<text text-anchor=\"start\" x=\"61\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,d</text>\n",
|
|
153
|
+
"<text text-anchor=\"start\" x=\"86\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">  WV</text>\n",
|
|
154
|
+
"<text text-anchor=\"start\" x=\"112\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,e,d</text>\n",
|
|
155
|
+
"</g>\n",
|
|
156
|
+
"<!-- Tensor_I->Einsum_V -->\n",
|
|
157
|
+
"<g id=\"edge3\" class=\"edge\">\n",
|
|
158
|
+
"<title>Tensor_I->Einsum_V</title>\n",
|
|
159
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M256.87,-706.08C251.78,-703.79 246.28,-701.59 241,-700 205.04,-689.17 192.61,-692.69 152.07,-686.06\"/>\n",
|
|
160
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"152.51,-682.58 142.06,-684.31 151.31,-689.48 152.51,-682.58\"/>\n",
|
|
161
|
+
"</g>\n",
|
|
162
|
+
"<!-- Einsum_K -->\n",
|
|
163
|
+
"<g id=\"node7\" class=\"node\">\n",
|
|
164
|
+
"<title>Einsum_K</title>\n",
|
|
165
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"464,-686 322,-686 322,-650 464,-650 464,-686\"/>\n",
|
|
166
|
+
"<text text-anchor=\"start\" x=\"330\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
167
|
+
"<text text-anchor=\"start\" x=\"339\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,e</text>\n",
|
|
168
|
+
"<text text-anchor=\"start\" x=\"373\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">=I</text>\n",
|
|
169
|
+
"<text text-anchor=\"start\" x=\"383\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,d</text>\n",
|
|
170
|
+
"<text text-anchor=\"start\" x=\"408\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">  WK</text>\n",
|
|
171
|
+
"<text text-anchor=\"start\" x=\"434\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,e,d</text>\n",
|
|
172
|
+
"</g>\n",
|
|
173
|
+
"<!-- Tensor_I->Einsum_K -->\n",
|
|
174
|
+
"<g id=\"edge6\" class=\"edge\">\n",
|
|
175
|
+
"<title>Tensor_I->Einsum_K</title>\n",
|
|
176
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M300.72,-707.52C312.75,-702.5 328.03,-696.12 342.68,-690\"/>\n",
|
|
177
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"344.29,-693.12 352.17,-686.04 341.6,-686.66 344.29,-693.12\"/>\n",
|
|
178
|
+
"</g>\n",
|
|
179
|
+
"<!-- Einsum_Q -->\n",
|
|
180
|
+
"<g id=\"node10\" class=\"node\">\n",
|
|
181
|
+
"<title>Einsum_Q</title>\n",
|
|
182
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"304,-686 160,-686 160,-650 304,-650 304,-686\"/>\n",
|
|
183
|
+
"<text text-anchor=\"start\" x=\"168\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
184
|
+
"<text text-anchor=\"start\" x=\"178\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,e</text>\n",
|
|
185
|
+
"<text text-anchor=\"start\" x=\"212\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">=I</text>\n",
|
|
186
|
+
"<text text-anchor=\"start\" x=\"222\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,d</text>\n",
|
|
187
|
+
"<text text-anchor=\"start\" x=\"247\" y=\"-665.9\" font-family=\"Arial\" font-size=\"12.00\">  WQ</text>\n",
|
|
188
|
+
"<text text-anchor=\"start\" x=\"274\" y=\"-665.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,e,d</text>\n",
|
|
189
|
+
"</g>\n",
|
|
190
|
+
"<!-- Tensor_I->Einsum_Q -->\n",
|
|
191
|
+
"<g id=\"edge9\" class=\"edge\">\n",
|
|
192
|
+
"<title>Tensor_I->Einsum_Q</title>\n",
|
|
193
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M263.95,-702.34C261.29,-699.56 258.44,-696.59 255.58,-693.61\"/>\n",
|
|
194
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"258,-691.07 248.55,-686.27 252.94,-695.91 258,-691.07\"/>\n",
|
|
195
|
+
"</g>\n",
|
|
196
|
+
"<!-- Tensor_V -->\n",
|
|
197
|
+
"<g id=\"node6\" class=\"node\">\n",
|
|
198
|
+
"<title>Tensor_V</title>\n",
|
|
199
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"74\" cy=\"-568\" rx=\"36.14\" ry=\"18\"/>\n",
|
|
200
|
+
"<text text-anchor=\"start\" x=\"52.5\" y=\"-565.9\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
201
|
+
"<text text-anchor=\"start\" x=\"61.5\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,e</text>\n",
|
|
202
|
+
"</g>\n",
|
|
203
|
+
"<!-- Einsum_V->Tensor_V -->\n",
|
|
204
|
+
"<g id=\"edge5\" class=\"edge\">\n",
|
|
205
|
+
"<title>Einsum_V->Tensor_V</title>\n",
|
|
206
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M71.52,-649.93C71.98,-635.12 72.64,-613.43 73.17,-596.23\"/>\n",
|
|
207
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"76.67,-596.31 73.47,-586.2 69.67,-596.09 76.67,-596.31\"/>\n",
|
|
208
|
+
"</g>\n",
|
|
209
|
+
"<!-- Tensor_WV -->\n",
|
|
210
|
+
"<g id=\"node5\" class=\"node\">\n",
|
|
211
|
+
"<title>Tensor_WV</title>\n",
|
|
212
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"71\" cy=\"-718\" rx=\"35.91\" ry=\"18\"/>\n",
|
|
213
|
+
"<text text-anchor=\"start\" x=\"50\" y=\"-715.9\" font-family=\"Arial\" font-size=\"12.00\">WV</text>\n",
|
|
214
|
+
"<text text-anchor=\"start\" x=\"70\" y=\"-715.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,e,d</text>\n",
|
|
215
|
+
"</g>\n",
|
|
216
|
+
"<!-- Tensor_WV->Einsum_V -->\n",
|
|
217
|
+
"<g id=\"edge4\" class=\"edge\">\n",
|
|
218
|
+
"<title>Tensor_WV->Einsum_V</title>\n",
|
|
219
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M71,-699.94C71,-698.67 71,-697.37 71,-696.05\"/>\n",
|
|
220
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"74.5,-696 71,-686 67.5,-696 74.5,-696\"/>\n",
|
|
221
|
+
"</g>\n",
|
|
222
|
+
"<!-- Einsum_AV -->\n",
|
|
223
|
+
"<g id=\"node17\" class=\"node\">\n",
|
|
224
|
+
"<title>Einsum_AV</title>\n",
|
|
225
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"271,-386 15,-386 15,-350 271,-350 271,-386\"/>\n",
|
|
226
|
+
"<text text-anchor=\"start\" x=\"23\" y=\"-365.9\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
227
|
+
"<text text-anchor=\"start\" x=\"39\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,f</text>\n",
|
|
228
|
+
"<text text-anchor=\"start\" x=\"70\" y=\"-365.9\" font-family=\"Arial\" font-size=\"12.00\">=QK_softmax</text>\n",
|
|
229
|
+
"<text text-anchor=\"start\" x=\"143\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,p,h</text>\n",
|
|
230
|
+
"<text text-anchor=\"start\" x=\"177\" y=\"-365.9\" font-family=\"Arial\" font-size=\"12.00\">  V</text>\n",
|
|
231
|
+
"<text text-anchor=\"start\" x=\"192\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"super\" font-size=\"12.00\">B,</text>\n",
|
|
232
|
+
"<text text-anchor=\"start\" x=\"202\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,</text>\n",
|
|
233
|
+
"<text text-anchor=\"start\" x=\"211\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"super\" font-size=\"12.00\">M,</text>\n",
|
|
234
|
+
"<text text-anchor=\"start\" x=\"223\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">p,</text>\n",
|
|
235
|
+
"<text text-anchor=\"start\" x=\"232\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"super\" font-size=\"12.00\">H,</text>\n",
|
|
236
|
+
"<text text-anchor=\"start\" x=\"243\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,</text>\n",
|
|
237
|
+
"<text text-anchor=\"start\" x=\"252\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"super\" font-size=\"12.00\">E</text>\n",
|
|
238
|
+
"<text text-anchor=\"start\" x=\"259\" y=\"-365.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">f</text>\n",
|
|
239
|
+
"</g>\n",
|
|
240
|
+
"<!-- Tensor_V->Einsum_AV -->\n",
|
|
241
|
+
"<g id=\"edge18\" class=\"edge\">\n",
|
|
242
|
+
"<title>Tensor_V->Einsum_AV</title>\n",
|
|
243
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M76.84,-549.72C82.39,-518.61 96.33,-451.63 121,-400 121.85,-398.21 122.81,-396.42 123.83,-394.65\"/>\n",
|
|
244
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"126.89,-396.36 129.33,-386.06 120.99,-392.59 126.89,-396.36\"/>\n",
|
|
245
|
+
"</g>\n",
|
|
246
|
+
"<!-- Tensor_K -->\n",
|
|
247
|
+
"<g id=\"node9\" class=\"node\">\n",
|
|
248
|
+
"<title>Tensor_K</title>\n",
|
|
249
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"358\" cy=\"-618\" rx=\"36.14\" ry=\"18\"/>\n",
|
|
250
|
+
"<text text-anchor=\"start\" x=\"336.5\" y=\"-615.9\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
251
|
+
"<text text-anchor=\"start\" x=\"345.5\" y=\"-615.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,e</text>\n",
|
|
252
|
+
"</g>\n",
|
|
253
|
+
"<!-- Einsum_K->Tensor_K -->\n",
|
|
254
|
+
"<g id=\"edge8\" class=\"edge\">\n",
|
|
255
|
+
"<title>Einsum_K->Tensor_K</title>\n",
|
|
256
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M380.56,-649.94C379.05,-647.87 377.48,-645.72 375.91,-643.56\"/>\n",
|
|
257
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"378.65,-641.38 369.93,-635.36 372.99,-645.5 378.65,-641.38\"/>\n",
|
|
258
|
+
"</g>\n",
|
|
259
|
+
"<!-- Tensor_WK -->\n",
|
|
260
|
+
"<g id=\"node8\" class=\"node\">\n",
|
|
261
|
+
"<title>Tensor_WK</title>\n",
|
|
262
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"393\" cy=\"-718\" rx=\"35.91\" ry=\"18\"/>\n",
|
|
263
|
+
"<text text-anchor=\"start\" x=\"372\" y=\"-715.9\" font-family=\"Arial\" font-size=\"12.00\">WK</text>\n",
|
|
264
|
+
"<text text-anchor=\"start\" x=\"392\" y=\"-715.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,e,d</text>\n",
|
|
265
|
+
"</g>\n",
|
|
266
|
+
"<!-- Tensor_WK->Einsum_K -->\n",
|
|
267
|
+
"<g id=\"edge7\" class=\"edge\">\n",
|
|
268
|
+
"<title>Tensor_WK->Einsum_K</title>\n",
|
|
269
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M393,-699.94C393,-698.67 393,-697.37 393,-696.05\"/>\n",
|
|
270
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"396.5,-696 393,-686 389.5,-696 396.5,-696\"/>\n",
|
|
271
|
+
"</g>\n",
|
|
272
|
+
"<!-- Einsum_QK -->\n",
|
|
273
|
+
"<g id=\"node13\" class=\"node\">\n",
|
|
274
|
+
"<title>Einsum_QK</title>\n",
|
|
275
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"335,-586 129,-586 129,-550 335,-550 335,-586\"/>\n",
|
|
276
|
+
"<text text-anchor=\"start\" x=\"137\" y=\"-565.9\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
277
|
+
"<text text-anchor=\"start\" x=\"155\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,p,h</text>\n",
|
|
278
|
+
"<text text-anchor=\"start\" x=\"189\" y=\"-565.9\" font-family=\"Arial\" font-size=\"12.00\">=Q</text>\n",
|
|
279
|
+
"<text text-anchor=\"start\" x=\"205\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,e</text>\n",
|
|
280
|
+
"<text text-anchor=\"start\" x=\"239\" y=\"-565.9\" font-family=\"Arial\" font-size=\"12.00\">  K</text>\n",
|
|
281
|
+
"<text text-anchor=\"start\" x=\"254\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"super\" font-size=\"12.00\">B,</text>\n",
|
|
282
|
+
"<text text-anchor=\"start\" x=\"264\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,</text>\n",
|
|
283
|
+
"<text text-anchor=\"start\" x=\"273\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"super\" font-size=\"12.00\">M,</text>\n",
|
|
284
|
+
"<text text-anchor=\"start\" x=\"285\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">p,</text>\n",
|
|
285
|
+
"<text text-anchor=\"start\" x=\"294\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"super\" font-size=\"12.00\">H,</text>\n",
|
|
286
|
+
"<text text-anchor=\"start\" x=\"305\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,</text>\n",
|
|
287
|
+
"<text text-anchor=\"start\" x=\"314\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"super\" font-size=\"12.00\">E</text>\n",
|
|
288
|
+
"<text text-anchor=\"start\" x=\"321\" y=\"-565.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">e</text>\n",
|
|
289
|
+
"</g>\n",
|
|
290
|
+
"<!-- Tensor_K->Einsum_QK -->\n",
|
|
291
|
+
"<g id=\"edge13\" class=\"edge\">\n",
|
|
292
|
+
"<title>Tensor_K->Einsum_QK</title>\n",
|
|
293
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M330.04,-606.35C317.19,-601.45 301.49,-595.47 286.46,-589.75\"/>\n",
|
|
294
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"287.3,-586.32 276.71,-586.03 284.81,-592.86 287.3,-586.32\"/>\n",
|
|
295
|
+
"</g>\n",
|
|
296
|
+
"<!-- Tensor_Q -->\n",
|
|
297
|
+
"<g id=\"node12\" class=\"node\">\n",
|
|
298
|
+
"<title>Tensor_Q</title>\n",
|
|
299
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"232\" cy=\"-618\" rx=\"36.87\" ry=\"18\"/>\n",
|
|
300
|
+
"<text text-anchor=\"start\" x=\"210\" y=\"-615.9\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
301
|
+
"<text text-anchor=\"start\" x=\"220\" y=\"-615.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,e</text>\n",
|
|
302
|
+
"</g>\n",
|
|
303
|
+
"<!-- Einsum_Q->Tensor_Q -->\n",
|
|
304
|
+
"<g id=\"edge11\" class=\"edge\">\n",
|
|
305
|
+
"<title>Einsum_Q->Tensor_Q</title>\n",
|
|
306
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M232,-649.94C232,-648.67 232,-647.37 232,-646.05\"/>\n",
|
|
307
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"235.5,-646 232,-636 228.5,-646 235.5,-646\"/>\n",
|
|
308
|
+
"</g>\n",
|
|
309
|
+
"<!-- Tensor_WQ -->\n",
|
|
310
|
+
"<g id=\"node11\" class=\"node\">\n",
|
|
311
|
+
"<title>Tensor_WQ</title>\n",
|
|
312
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"196\" cy=\"-718\" rx=\"36.14\" ry=\"18\"/>\n",
|
|
313
|
+
"<text text-anchor=\"start\" x=\"174.5\" y=\"-715.9\" font-family=\"Arial\" font-size=\"12.00\">WQ</text>\n",
|
|
314
|
+
"<text text-anchor=\"start\" x=\"195.5\" y=\"-715.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,e,d</text>\n",
|
|
315
|
+
"</g>\n",
|
|
316
|
+
"<!-- Tensor_WQ->Einsum_Q -->\n",
|
|
317
|
+
"<g id=\"edge10\" class=\"edge\">\n",
|
|
318
|
+
"<title>Tensor_WQ->Einsum_Q</title>\n",
|
|
319
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M208.19,-700.75C209.72,-698.7 211.32,-696.57 212.93,-694.43\"/>\n",
|
|
320
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"215.89,-696.32 219.09,-686.22 210.29,-692.12 215.89,-696.32\"/>\n",
|
|
321
|
+
"</g>\n",
|
|
322
|
+
"<!-- Tensor_Q->Einsum_QK -->\n",
|
|
323
|
+
"<g id=\"edge12\" class=\"edge\">\n",
|
|
324
|
+
"<title>Tensor_Q->Einsum_QK</title>\n",
|
|
325
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M232,-599.94C232,-598.67 232,-597.37 232,-596.05\"/>\n",
|
|
326
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"235.5,-596 232,-586 228.5,-596 235.5,-596\"/>\n",
|
|
327
|
+
"</g>\n",
|
|
328
|
+
"<!-- Tensor_QK -->\n",
|
|
329
|
+
"<g id=\"node14\" class=\"node\">\n",
|
|
330
|
+
"<title>Tensor_QK</title>\n",
|
|
331
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"226\" cy=\"-518\" rx=\"41.72\" ry=\"18\"/>\n",
|
|
332
|
+
"<text text-anchor=\"start\" x=\"200\" y=\"-515.9\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
333
|
+
"<text text-anchor=\"start\" x=\"218\" y=\"-515.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,p,h</text>\n",
|
|
334
|
+
"</g>\n",
|
|
335
|
+
"<!-- Einsum_QK->Tensor_QK -->\n",
|
|
336
|
+
"<g id=\"edge14\" class=\"edge\">\n",
|
|
337
|
+
"<title>Einsum_QK->Tensor_QK</title>\n",
|
|
338
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M229.87,-549.94C229.71,-548.67 229.55,-547.37 229.38,-546.05\"/>\n",
|
|
339
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"232.84,-545.49 228.13,-536 225.89,-546.36 232.84,-545.49\"/>\n",
|
|
340
|
+
"</g>\n",
|
|
341
|
+
"<!-- Einsum_QK_softmax -->\n",
|
|
342
|
+
"<g id=\"node15\" class=\"node\">\n",
|
|
343
|
+
"<title>Einsum_QK_softmax</title>\n",
|
|
344
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"307.5,-486 132.5,-486 132.5,-450 307.5,-450 307.5,-486\"/>\n",
|
|
345
|
+
"<text text-anchor=\"start\" x=\"140.5\" y=\"-465.9\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
346
|
+
"<text text-anchor=\"start\" x=\"206.5\" y=\"-465.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,p,h</text>\n",
|
|
347
|
+
"<text text-anchor=\"start\" x=\"240.5\" y=\"-465.9\" font-family=\"Arial\" font-size=\"12.00\">=QK</text>\n",
|
|
348
|
+
"<text text-anchor=\"start\" x=\"265.5\" y=\"-465.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,p,h</text>\n",
|
|
349
|
+
"</g>\n",
|
|
350
|
+
"<!-- Tensor_QK->Einsum_QK_softmax -->\n",
|
|
351
|
+
"<g id=\"edge15\" class=\"edge\">\n",
|
|
352
|
+
"<title>Tensor_QK->Einsum_QK_softmax</title>\n",
|
|
353
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M223.87,-499.94C223.71,-498.67 223.55,-497.37 223.38,-496.05\"/>\n",
|
|
354
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"226.84,-495.49 222.13,-486 219.89,-496.36 226.84,-495.49\"/>\n",
|
|
355
|
+
"</g>\n",
|
|
356
|
+
"<!-- Tensor_QK_softmax -->\n",
|
|
357
|
+
"<g id=\"node16\" class=\"node\">\n",
|
|
358
|
+
"<title>Tensor_QK_softmax</title>\n",
|
|
359
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"201\" cy=\"-418\" rx=\"71.32\" ry=\"18\"/>\n",
|
|
360
|
+
"<text text-anchor=\"start\" x=\"151\" y=\"-415.9\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
361
|
+
"<text text-anchor=\"start\" x=\"217\" y=\"-415.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,p,h</text>\n",
|
|
362
|
+
"</g>\n",
|
|
363
|
+
"<!-- Einsum_QK_softmax->Tensor_QK_softmax -->\n",
|
|
364
|
+
"<g id=\"edge16\" class=\"edge\">\n",
|
|
365
|
+
"<title>Einsum_QK_softmax->Tensor_QK_softmax</title>\n",
|
|
366
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M213.25,-449.94C212.69,-448.53 212.11,-447.08 211.53,-445.61\"/>\n",
|
|
367
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"214.67,-444.01 207.73,-436 208.16,-446.59 214.67,-444.01\"/>\n",
|
|
368
|
+
"</g>\n",
|
|
369
|
+
"<!-- Tensor_QK_softmax->Einsum_AV -->\n",
|
|
370
|
+
"<g id=\"edge17\" class=\"edge\">\n",
|
|
371
|
+
"<title>Tensor_QK_softmax->Einsum_AV</title>\n",
|
|
372
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M181.04,-400.48C177.96,-397.93 174.72,-395.25 171.5,-392.58\"/>\n",
|
|
373
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"173.52,-389.72 163.59,-386.04 169.06,-395.11 173.52,-389.72\"/>\n",
|
|
374
|
+
"</g>\n",
|
|
375
|
+
"<!-- Tensor_AV -->\n",
|
|
376
|
+
"<g id=\"node18\" class=\"node\">\n",
|
|
377
|
+
"<title>Tensor_AV</title>\n",
|
|
378
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"143\" cy=\"-318\" rx=\"38.57\" ry=\"18\"/>\n",
|
|
379
|
+
"<text text-anchor=\"start\" x=\"119.5\" y=\"-315.9\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
380
|
+
"<text text-anchor=\"start\" x=\"135.5\" y=\"-315.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,f</text>\n",
|
|
381
|
+
"</g>\n",
|
|
382
|
+
"<!-- Einsum_AV->Tensor_AV -->\n",
|
|
383
|
+
"<g id=\"edge19\" class=\"edge\">\n",
|
|
384
|
+
"<title>Einsum_AV->Tensor_AV</title>\n",
|
|
385
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M143,-349.94C143,-348.67 143,-347.37 143,-346.05\"/>\n",
|
|
386
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"146.5,-346 143,-336 139.5,-346 146.5,-346\"/>\n",
|
|
387
|
+
"</g>\n",
|
|
388
|
+
"<!-- Einsum_Z -->\n",
|
|
389
|
+
"<g id=\"node19\" class=\"node\">\n",
|
|
390
|
+
"<title>Einsum_Z</title>\n",
|
|
391
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"261.5,-286 114.5,-286 114.5,-250 261.5,-250 261.5,-286\"/>\n",
|
|
392
|
+
"<text text-anchor=\"start\" x=\"122.5\" y=\"-265.9\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
393
|
+
"<text text-anchor=\"start\" x=\"130.5\" y=\"-265.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,g</text>\n",
|
|
394
|
+
"<text text-anchor=\"start\" x=\"155.5\" y=\"-265.9\" font-family=\"Arial\" font-size=\"12.00\">=AV</text>\n",
|
|
395
|
+
"<text text-anchor=\"start\" x=\"177.5\" y=\"-265.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,h,f</text>\n",
|
|
396
|
+
"<text text-anchor=\"start\" x=\"208.5\" y=\"-265.9\" font-family=\"Arial\" font-size=\"12.00\">  WZ</text>\n",
|
|
397
|
+
"<text text-anchor=\"start\" x=\"233.5\" y=\"-265.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,f,g</text>\n",
|
|
398
|
+
"</g>\n",
|
|
399
|
+
"<!-- Tensor_AV->Einsum_Z -->\n",
|
|
400
|
+
"<g id=\"edge20\" class=\"edge\">\n",
|
|
401
|
+
"<title>Tensor_AV->Einsum_Z</title>\n",
|
|
402
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M157.73,-301.28C159.99,-298.88 162.36,-296.34 164.75,-293.8\"/>\n",
|
|
403
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"167.55,-295.93 171.83,-286.24 162.44,-291.15 167.55,-295.93\"/>\n",
|
|
404
|
+
"</g>\n",
|
|
405
|
+
"<!-- Tensor_Z -->\n",
|
|
406
|
+
"<g id=\"node21\" class=\"node\">\n",
|
|
407
|
+
"<title>Tensor_Z</title>\n",
|
|
408
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"188\" cy=\"-218\" rx=\"30.33\" ry=\"18\"/>\n",
|
|
409
|
+
"<text text-anchor=\"start\" x=\"171.5\" y=\"-215.9\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
410
|
+
"<text text-anchor=\"start\" x=\"179.5\" y=\"-215.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,g</text>\n",
|
|
411
|
+
"</g>\n",
|
|
412
|
+
"<!-- Einsum_Z->Tensor_Z -->\n",
|
|
413
|
+
"<g id=\"edge22\" class=\"edge\">\n",
|
|
414
|
+
"<title>Einsum_Z->Tensor_Z</title>\n",
|
|
415
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M188,-249.94C188,-248.67 188,-247.37 188,-246.05\"/>\n",
|
|
416
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"191.5,-246 188,-236 184.5,-246 191.5,-246\"/>\n",
|
|
417
|
+
"</g>\n",
|
|
418
|
+
"<!-- Tensor_WZ -->\n",
|
|
419
|
+
"<g id=\"node20\" class=\"node\">\n",
|
|
420
|
+
"<title>Tensor_WZ</title>\n",
|
|
421
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"234\" cy=\"-318\" rx=\"33.72\" ry=\"18\"/>\n",
|
|
422
|
+
"<text text-anchor=\"start\" x=\"214.5\" y=\"-315.9\" font-family=\"Arial\" font-size=\"12.00\">WZ</text>\n",
|
|
423
|
+
"<text text-anchor=\"start\" x=\"233.5\" y=\"-315.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">h,f,g</text>\n",
|
|
424
|
+
"</g>\n",
|
|
425
|
+
"<!-- Tensor_WZ->Einsum_Z -->\n",
|
|
426
|
+
"<g id=\"edge21\" class=\"edge\">\n",
|
|
427
|
+
"<title>Tensor_WZ->Einsum_Z</title>\n",
|
|
428
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M219.19,-301.55C216.68,-298.93 214.02,-296.15 211.35,-293.37\"/>\n",
|
|
429
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"213.82,-290.88 204.37,-286.09 208.77,-295.73 213.82,-290.88\"/>\n",
|
|
430
|
+
"</g>\n",
|
|
431
|
+
"<!-- Einsum_FFA -->\n",
|
|
432
|
+
"<g id=\"node22\" class=\"node\">\n",
|
|
433
|
+
"<title>Einsum_FFA</title>\n",
|
|
434
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"311,-186 153,-186 153,-150 311,-150 311,-186\"/>\n",
|
|
435
|
+
"<text text-anchor=\"start\" x=\"161\" y=\"-165.9\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
436
|
+
"<text text-anchor=\"start\" x=\"184\" y=\"-165.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,c</text>\n",
|
|
437
|
+
"<text text-anchor=\"start\" x=\"209\" y=\"-165.9\" font-family=\"Arial\" font-size=\"12.00\">=Z</text>\n",
|
|
438
|
+
"<text text-anchor=\"start\" x=\"224\" y=\"-165.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,g</text>\n",
|
|
439
|
+
"<text text-anchor=\"start\" x=\"249\" y=\"-165.9\" font-family=\"Arial\" font-size=\"12.00\">  WFFA</text>\n",
|
|
440
|
+
"<text text-anchor=\"start\" x=\"289\" y=\"-165.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">g,c</text>\n",
|
|
441
|
+
"</g>\n",
|
|
442
|
+
"<!-- Tensor_Z->Einsum_FFA -->\n",
|
|
443
|
+
"<g id=\"edge23\" class=\"edge\">\n",
|
|
444
|
+
"<title>Tensor_Z->Einsum_FFA</title>\n",
|
|
445
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M201.92,-201.81C204.19,-199.34 206.59,-196.72 209,-194.09\"/>\n",
|
|
446
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"212,-196 216.18,-186.26 206.84,-191.27 212,-196\"/>\n",
|
|
447
|
+
"</g>\n",
|
|
448
|
+
"<!-- Tensor_FFA -->\n",
|
|
449
|
+
"<g id=\"node24\" class=\"node\">\n",
|
|
450
|
+
"<title>Tensor_FFA</title>\n",
|
|
451
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"232\" cy=\"-118\" rx=\"39.3\" ry=\"18\"/>\n",
|
|
452
|
+
"<text text-anchor=\"start\" x=\"208\" y=\"-115.9\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
453
|
+
"<text text-anchor=\"start\" x=\"231\" y=\"-115.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,c</text>\n",
|
|
454
|
+
"</g>\n",
|
|
455
|
+
"<!-- Einsum_FFA->Tensor_FFA -->\n",
|
|
456
|
+
"<g id=\"edge25\" class=\"edge\">\n",
|
|
457
|
+
"<title>Einsum_FFA->Tensor_FFA</title>\n",
|
|
458
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M232,-149.94C232,-148.67 232,-147.37 232,-146.05\"/>\n",
|
|
459
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"235.5,-146 232,-136 228.5,-146 235.5,-146\"/>\n",
|
|
460
|
+
"</g>\n",
|
|
461
|
+
"<!-- Tensor_WFFA -->\n",
|
|
462
|
+
"<g id=\"node23\" class=\"node\">\n",
|
|
463
|
+
"<title>Tensor_WFFA</title>\n",
|
|
464
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"276\" cy=\"-218\" rx=\"39.3\" ry=\"18\"/>\n",
|
|
465
|
+
"<text text-anchor=\"start\" x=\"252\" y=\"-215.9\" font-family=\"Arial\" font-size=\"12.00\">WFFA</text>\n",
|
|
466
|
+
"<text text-anchor=\"start\" x=\"286\" y=\"-215.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">g,c</text>\n",
|
|
467
|
+
"</g>\n",
|
|
468
|
+
"<!-- Tensor_WFFA->Einsum_FFA -->\n",
|
|
469
|
+
"<g id=\"edge24\" class=\"edge\">\n",
|
|
470
|
+
"<title>Tensor_WFFA->Einsum_FFA</title>\n",
|
|
471
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M261.35,-201.02C259.15,-198.62 256.84,-196.1 254.52,-193.57\"/>\n",
|
|
472
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"256.98,-191.07 247.64,-186.07 251.82,-195.8 256.98,-191.07\"/>\n",
|
|
473
|
+
"</g>\n",
|
|
474
|
+
"<!-- Einsum_FFB -->\n",
|
|
475
|
+
"<g id=\"node25\" class=\"node\">\n",
|
|
476
|
+
"<title>Einsum_FFB</title>\n",
|
|
477
|
+
"<polygon fill=\"none\" stroke=\"black\" points=\"364.5,-86 195.5,-86 195.5,-50 364.5,-50 364.5,-86\"/>\n",
|
|
478
|
+
"<text text-anchor=\"start\" x=\"203.5\" y=\"-65.9\" font-family=\"Arial\" font-size=\"12.00\">FFB</text>\n",
|
|
479
|
+
"<text text-anchor=\"start\" x=\"227.5\" y=\"-65.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,j</text>\n",
|
|
480
|
+
"<text text-anchor=\"start\" x=\"249.5\" y=\"-65.9\" font-family=\"Arial\" font-size=\"12.00\">=FFA</text>\n",
|
|
481
|
+
"<text text-anchor=\"start\" x=\"279.5\" y=\"-65.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,c</text>\n",
|
|
482
|
+
"<text text-anchor=\"start\" x=\"304.5\" y=\"-65.9\" font-family=\"Arial\" font-size=\"12.00\">  WFFB</text>\n",
|
|
483
|
+
"<text text-anchor=\"start\" x=\"345.5\" y=\"-65.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">c,j</text>\n",
|
|
484
|
+
"</g>\n",
|
|
485
|
+
"<!-- Tensor_FFA->Einsum_FFB -->\n",
|
|
486
|
+
"<g id=\"edge26\" class=\"edge\">\n",
|
|
487
|
+
"<title>Tensor_FFA->Einsum_FFB</title>\n",
|
|
488
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M247.72,-101.28C250.27,-98.73 252.97,-96.03 255.68,-93.32\"/>\n",
|
|
489
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"258.16,-95.79 262.76,-86.24 253.21,-90.84 258.16,-95.79\"/>\n",
|
|
490
|
+
"</g>\n",
|
|
491
|
+
"<!-- Tensor_FFB -->\n",
|
|
492
|
+
"<g id=\"node27\" class=\"node\">\n",
|
|
493
|
+
"<title>Tensor_FFB</title>\n",
|
|
494
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"280\" cy=\"-18\" rx=\"38.33\" ry=\"18\"/>\n",
|
|
495
|
+
"<text text-anchor=\"start\" x=\"257\" y=\"-15.9\" font-family=\"Arial\" font-size=\"12.00\">FFB</text>\n",
|
|
496
|
+
"<text text-anchor=\"start\" x=\"281\" y=\"-15.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">b,m,j</text>\n",
|
|
497
|
+
"</g>\n",
|
|
498
|
+
"<!-- Einsum_FFB->Tensor_FFB -->\n",
|
|
499
|
+
"<g id=\"edge28\" class=\"edge\">\n",
|
|
500
|
+
"<title>Einsum_FFB->Tensor_FFB</title>\n",
|
|
501
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M280,-49.94C280,-48.67 280,-47.37 280,-46.05\"/>\n",
|
|
502
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"283.5,-46 280,-36 276.5,-46 283.5,-46\"/>\n",
|
|
503
|
+
"</g>\n",
|
|
504
|
+
"<!-- Tensor_WFFB -->\n",
|
|
505
|
+
"<g id=\"node26\" class=\"node\">\n",
|
|
506
|
+
"<title>Tensor_WFFB</title>\n",
|
|
507
|
+
"<ellipse fill=\"none\" stroke=\"black\" cx=\"328\" cy=\"-118\" rx=\"38.33\" ry=\"18\"/>\n",
|
|
508
|
+
"<text text-anchor=\"start\" x=\"305\" y=\"-115.9\" font-family=\"Arial\" font-size=\"12.00\">WFFB</text>\n",
|
|
509
|
+
"<text text-anchor=\"start\" x=\"340\" y=\"-115.9\" font-family=\"Arial\" baseline-shift=\"sub\" font-size=\"12.00\">c,j</text>\n",
|
|
510
|
+
"</g>\n",
|
|
511
|
+
"<!-- Tensor_WFFB->Einsum_FFB -->\n",
|
|
512
|
+
"<g id=\"edge27\" class=\"edge\">\n",
|
|
513
|
+
"<title>Tensor_WFFB->Einsum_FFB</title>\n",
|
|
514
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M312.28,-101.28C309.73,-98.73 307.03,-96.03 304.32,-93.32\"/>\n",
|
|
515
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"306.79,-90.84 297.24,-86.24 301.84,-95.79 306.79,-90.84\"/>\n",
|
|
516
|
+
"</g>\n",
|
|
517
|
+
"</g>\n",
|
|
518
|
+
"</svg>\n"
|
|
519
|
+
],
|
|
520
|
+
"text/plain": [
|
|
521
|
+
"Workload(einsums=[Einsum(name='I', tensor_accesses=[TensorAccess(name='I_in', projection={'B': 'b', 'M': 'm', 'D': 'd'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='I', projection={'B': 'b', 'M': 'm', 'D': 'd'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=True, renames=[Rename(name='weight', source='Nothing()', expected_count=None), Rename(name='input', source='Inputs()', expected_count=None), Rename(name='output', source='Outputs()', expected_count=None)], n_instances=1), Einsum(name='V', tensor_accesses=[TensorAccess(name='I', projection={'B': 'b', 'M': 'm', 'D': 'd'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='WV', projection={'H': 'h', 'E': 'e', 'D': 'd'}, output=False, persistent=True, backing_storage_size_scale=1.0), TensorAccess(name='V', projection={'B': 'b', 'M': 'm', 'H': 'h', 'E': 'e'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[], n_instances=1), Einsum(name='K', tensor_accesses=[TensorAccess(name='I', projection={'B': 'b', 'M': 'm', 'D': 'd'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='WK', projection={'H': 'h', 'E': 'e', 'D': 'd'}, output=False, persistent=True, backing_storage_size_scale=1.0), TensorAccess(name='K', projection={'B': 'b', 'M': 'm', 'H': 'h', 'E': 'e'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[], n_instances=1), Einsum(name='Q', tensor_accesses=[TensorAccess(name='I', projection={'B': 'b', 'M': 'm', 'D': 'd'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='WQ', projection={'H': 'h', 'E': 'e', 'D': 'd'}, output=False, persistent=True, backing_storage_size_scale=1.0), TensorAccess(name='Q', projection={'B': 'b', 'M': 'm', 'H': 'h', 'E': 'e'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[], n_instances=1), Einsum(name='QK', tensor_accesses=[TensorAccess(name='Q', projection={'B': 'b', 'M': 'm', 'H': 'h', 'E': 'e'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='K', projection={'B': 'b', 'M': 'p', 'H': 'h', 'E': 'e'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='QK', projection={'B': 'b', 'M': 'm', 'P': 'p', 'H': 'h'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[Rename(name='weight', source='K', expected_count=None), Rename(name='input', source='Q', expected_count=None), Rename(name='output', source='QK', expected_count=None)], n_instances=1), Einsum(name='QK_softmax', tensor_accesses=[TensorAccess(name='QK', projection={'B': 'b', 'M': 'm', 'P': 'p', 'H': 'h'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='QK_softmax', projection={'B': 'b', 'M': 'm', 'P': 'p', 'H': 'h'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[Rename(name='weight', source='Nothing()', expected_count=None)], n_instances=1), Einsum(name='AV', tensor_accesses=[TensorAccess(name='QK_softmax', projection={'B': 'b', 'M': 'm', 'P': 'p', 'H': 'h'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='V', projection={'B': 'b', 'M': 'p', 'H': 'h', 'E': 'f'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='AV', projection={'B': 'b', 'M': 'm', 'H': 'h', 'F': 'f'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[Rename(name='weight', source='V', expected_count=None), Rename(name='input', source='QK_softmax', expected_count=None)], n_instances=1), Einsum(name='Z', tensor_accesses=[TensorAccess(name='AV', projection={'B': 'b', 'M': 'm', 'H': 'h', 'F': 'f'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='WZ', projection={'H': 'h', 'F': 'f', 'G': 'g'}, output=False, persistent=True, backing_storage_size_scale=1.0), TensorAccess(name='Z', projection={'B': 'b', 'M': 'm', 'G': 'g'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[], n_instances=1), Einsum(name='FFA', tensor_accesses=[TensorAccess(name='Z', projection={'B': 'b', 'M': 'm', 'G': 'g'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='WFFA', projection={'G': 'g', 'C': 'c'}, output=False, persistent=True, backing_storage_size_scale=1.0), TensorAccess(name='FFA', projection={'B': 'b', 'M': 'm', 'C': 'c'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[], n_instances=1), Einsum(name='FFB', tensor_accesses=[TensorAccess(name='FFA', projection={'B': 'b', 'M': 'm', 'C': 'c'}, output=False, persistent=False, backing_storage_size_scale=1.0), TensorAccess(name='WFFB', projection={'C': 'c', 'J': 'j'}, output=False, persistent=True, backing_storage_size_scale=1.0), TensorAccess(name='FFB', projection={'B': 'b', 'M': 'm', 'J': 'j'}, output=True, persistent=False, backing_storage_size_scale=1.0)], iteration_space_shape=[], rank_sizes={}, is_copy_operation=False, renames=[], n_instances=1)], iteration_space_shape={}, rank_sizes={'B': 1, 'P': 16384, 'M': 16384, 'H': 32, 'E': 128, 'F': 128, 'D': 4096, 'C': 16384, 'J': 4096, 'G': 4096}, n_instances=1)"
|
|
522
|
+
]
|
|
523
|
+
},
|
|
524
|
+
"execution_count": 2,
|
|
525
|
+
"metadata": {},
|
|
526
|
+
"output_type": "execute_result"
|
|
527
|
+
}
|
|
528
|
+
],
|
|
529
|
+
"source": [
|
|
530
|
+
"spec.workload"
|
|
531
|
+
]
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"cell_type": "markdown",
|
|
535
|
+
"metadata": {},
|
|
536
|
+
"source": [
|
|
537
|
+
"Next, we'll set optimization metrics for the mapper. Note that having more metrics will\n",
|
|
538
|
+
"make the mapper slower because it is more difficult to prune suboptimal mappings,\n",
|
|
539
|
+
"because it must prove that something is Pareto-dominated in all metrics."
|
|
540
|
+
]
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"cell_type": "code",
|
|
544
|
+
"execution_count": 3,
|
|
545
|
+
"metadata": {},
|
|
546
|
+
"outputs": [],
|
|
547
|
+
"source": [
|
|
548
|
+
"# Set optimization metrics\n",
|
|
549
|
+
"spec.mapper.ffm.metrics = af.mapper.FFM.Metrics.ENERGY\n",
|
|
550
|
+
"# spec.mapper.ffm.metrics = af.mapper.FFM.Metrics.LATENCY\n",
|
|
551
|
+
"# spec.mapper.ffm.metrics = af.mapper.FFM.Metrics.LATENCY | af.mapper.FFM.Metrics.ENERGY"
|
|
552
|
+
]
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
"cell_type": "markdown",
|
|
556
|
+
"metadata": {},
|
|
557
|
+
"source": [
|
|
558
|
+
"<!-- < DOC_INCLUDE_MARKER > FFM_parts -->\n",
|
|
559
|
+
"\n",
|
|
560
|
+
"The mapper consists of two parts:\n",
|
|
561
|
+
"\n",
|
|
562
|
+
"- The Turbo-Charged Pmapper: This part makes all Pareto-optimal pmappings for all\n",
|
|
563
|
+
" Einsums.\n",
|
|
564
|
+
"- Fast and Fusiest: This part takes the Pareto-optimal pmappings and joins them into\n",
|
|
565
|
+
" full mappings.\n",
|
|
566
|
+
"\n",
|
|
567
|
+
"Mapping begins with the Turbo-Charged Pmapper with the `make_pmappings` function."
|
|
568
|
+
]
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"cell_type": "code",
|
|
572
|
+
"execution_count": 4,
|
|
573
|
+
"metadata": {},
|
|
574
|
+
"outputs": [
|
|
575
|
+
{
|
|
576
|
+
"name": "stderr",
|
|
577
|
+
"output_type": "stream",
|
|
578
|
+
"text": [
|
|
579
|
+
"Generating jobs: 0%| | 0/10 [00:00<?, ?it/s]"
|
|
580
|
+
]
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"name": "stderr",
|
|
584
|
+
"output_type": "stream",
|
|
585
|
+
"text": [
|
|
586
|
+
"Generating pmapping templates for compute MAC Einsum I: 1it [00:00, 4.12it/s]it/s]\n",
|
|
587
|
+
"Generating pmapping templates for compute MAC Einsum QK_softmax: 2it [00:00, 9.90it/s]\n",
|
|
588
|
+
"Generating pmapping templates for compute MAC Einsum Q: 6it [00:00, 15.99it/s]]\n",
|
|
589
|
+
"Generating pmapping templates for compute MAC Einsum K: 6it [00:00, 14.83it/s]\n",
|
|
590
|
+
"Generating pmapping templates for compute MAC Einsum V: 6it [00:00, 14.82it/s]\n",
|
|
591
|
+
"Generating pmapping templates for compute MAC Einsum Z: 6it [00:00, 14.62it/s]]]\n",
|
|
592
|
+
"Generating pmapping templates for compute MAC Einsum FFB: 6it [00:00, 18.98it/s]\n",
|
|
593
|
+
"Generating pmapping templates for compute MAC Einsum QK: 6it [00:00, 14.36it/s]\n",
|
|
594
|
+
"Generating pmapping templates for compute MAC Einsum FFA: 6it [00:00, 17.96it/s]\n",
|
|
595
|
+
"Generating pmapping templates for compute MAC Einsum AV: 6it [00:00, 14.69it/s]\n",
|
|
596
|
+
"Generating jobs: 100%|██████████| 10/10 [00:04<00:00, 2.20it/s]\n",
|
|
597
|
+
"WARNING Einsum I has 1 pmapping templates:\n",
|
|
598
|
+
"WARNING \t[I_in,I in MainMemory] T-b T-d T-m MAC computes I\n",
|
|
599
|
+
"WARNING Einsum V has 6 pmapping templates:\n",
|
|
600
|
+
"WARNING \t[WV,V,I in MainMemory] T-b T-d T-m [I in GlobalBuffer] T-e T-h [V in GlobalBuffer] T-d [WV in GlobalBuffer] S-reuse_output-d S-reuse_input-e S-reuse_input-h [WV in Register] T-b T-m MAC computes V\n",
|
|
601
|
+
"WARNING \t[WV,V,I in MainMemory] T-b T-d T-m [I in GlobalBuffer] T-e T-h [WV in GlobalBuffer] T-b T-m [V in GlobalBuffer] T-d S-reuse_output-d S-reuse_input-e S-reuse_input-h [WV in Register] T-b T-m MAC computes V\n",
|
|
602
|
+
"WARNING \t[WV,V,I in MainMemory] T-b T-e T-h T-m [V in GlobalBuffer] T-d [I in GlobalBuffer] T-e T-h [WV in GlobalBuffer] S-reuse_output-d S-reuse_input-e S-reuse_input-h [WV in Register] T-b T-m MAC computes V\n",
|
|
603
|
+
"WARNING \t[WV,V,I in MainMemory] T-b T-e T-h T-m [V in GlobalBuffer] T-d [WV in GlobalBuffer] T-b T-m [I in GlobalBuffer] T-e T-h S-reuse_output-d S-reuse_input-e S-reuse_input-h [WV in Register] T-b T-m MAC computes V\n",
|
|
604
|
+
"WARNING \t[WV,V,I in MainMemory] T-d T-e T-h [WV in GlobalBuffer] T-b T-m [I in GlobalBuffer] T-e T-h [V in GlobalBuffer] T-d S-reuse_output-d S-reuse_input-e S-reuse_input-h [WV in Register] T-b T-m MAC computes V\n",
|
|
605
|
+
"WARNING \t[WV,V,I in MainMemory] T-d T-e T-h [WV in GlobalBuffer] T-b T-m [V in GlobalBuffer] T-d [I in GlobalBuffer] T-e T-h S-reuse_output-d S-reuse_input-e S-reuse_input-h [WV in Register] T-b T-m MAC computes V\n",
|
|
606
|
+
"WARNING Einsum K has 6 pmapping templates:\n",
|
|
607
|
+
"WARNING \t[WK,K,I in MainMemory] T-b T-d T-m [I in GlobalBuffer] T-e T-h [K in GlobalBuffer] T-d [WK in GlobalBuffer] S-reuse_output-d S-reuse_input-e S-reuse_input-h [WK in Register] T-b T-m MAC computes K\n",
|
|
608
|
+
"WARNING \t[WK,K,I in MainMemory] T-b T-d T-m [I in GlobalBuffer] T-e T-h [WK in GlobalBuffer] T-b T-m [K in GlobalBuffer] T-d S-reuse_output-d S-reuse_input-e S-reuse_input-h [WK in Register] T-b T-m MAC computes K\n",
|
|
609
|
+
"WARNING \t[WK,K,I in MainMemory] T-b T-e T-h T-m [K in GlobalBuffer] T-d [I in GlobalBuffer] T-e T-h [WK in GlobalBuffer] S-reuse_output-d S-reuse_input-e S-reuse_input-h [WK in Register] T-b T-m MAC computes K\n",
|
|
610
|
+
"WARNING \t[WK,K,I in MainMemory] T-b T-e T-h T-m [K in GlobalBuffer] T-d [WK in GlobalBuffer] T-b T-m [I in GlobalBuffer] T-e T-h S-reuse_output-d S-reuse_input-e S-reuse_input-h [WK in Register] T-b T-m MAC computes K\n",
|
|
611
|
+
"WARNING \t[WK,K,I in MainMemory] T-d T-e T-h [WK in GlobalBuffer] T-b T-m [I in GlobalBuffer] T-e T-h [K in GlobalBuffer] T-d S-reuse_output-d S-reuse_input-e S-reuse_input-h [WK in Register] T-b T-m MAC computes K\n",
|
|
612
|
+
"WARNING \t[WK,K,I in MainMemory] T-d T-e T-h [WK in GlobalBuffer] T-b T-m [K in GlobalBuffer] T-d [I in GlobalBuffer] T-e T-h S-reuse_output-d S-reuse_input-e S-reuse_input-h [WK in Register] T-b T-m MAC computes K\n",
|
|
613
|
+
"WARNING Einsum Q has 6 pmapping templates:\n",
|
|
614
|
+
"WARNING \t[WQ,Q,I in MainMemory] T-b T-d T-m [I in GlobalBuffer] T-e T-h [Q in GlobalBuffer] T-d [WQ in GlobalBuffer] S-reuse_output-d S-reuse_input-h S-reuse_input-e [WQ in Register] T-b T-m MAC computes Q\n",
|
|
615
|
+
"WARNING \t[WQ,Q,I in MainMemory] T-b T-d T-m [I in GlobalBuffer] T-e T-h [WQ in GlobalBuffer] T-b T-m [Q in GlobalBuffer] T-d S-reuse_output-d S-reuse_input-h S-reuse_input-e [WQ in Register] T-b T-m MAC computes Q\n",
|
|
616
|
+
"WARNING \t[WQ,Q,I in MainMemory] T-b T-e T-h T-m [Q in GlobalBuffer] T-d [I in GlobalBuffer] T-e T-h [WQ in GlobalBuffer] S-reuse_output-d S-reuse_input-h S-reuse_input-e [WQ in Register] T-b T-m MAC computes Q\n",
|
|
617
|
+
"WARNING \t[WQ,Q,I in MainMemory] T-b T-e T-h T-m [Q in GlobalBuffer] T-d [WQ in GlobalBuffer] T-b T-m [I in GlobalBuffer] T-e T-h S-reuse_output-d S-reuse_input-h S-reuse_input-e [WQ in Register] T-b T-m MAC computes Q\n",
|
|
618
|
+
"WARNING \t[WQ,Q,I in MainMemory] T-d T-e T-h [WQ in GlobalBuffer] T-b T-m [I in GlobalBuffer] T-e T-h [Q in GlobalBuffer] T-d S-reuse_output-d S-reuse_input-h S-reuse_input-e [WQ in Register] T-b T-m MAC computes Q\n",
|
|
619
|
+
"WARNING \t[WQ,Q,I in MainMemory] T-d T-e T-h [WQ in GlobalBuffer] T-b T-m [Q in GlobalBuffer] T-d [I in GlobalBuffer] T-e T-h S-reuse_output-d S-reuse_input-h S-reuse_input-e [WQ in Register] T-b T-m MAC computes Q\n",
|
|
620
|
+
"WARNING Einsum QK has 6 pmapping templates:\n",
|
|
621
|
+
"WARNING \t[QK,Q,K in MainMemory] T-b T-e T-h T-p [K in GlobalBuffer] T-m [Q in GlobalBuffer] T-p [QK in GlobalBuffer] T-e S-reuse_output-e S-reuse_input-p [K in Register] T-m MAC computes QK\n",
|
|
622
|
+
"WARNING \t[QK,Q,K in MainMemory] T-b T-e T-h T-p [K in GlobalBuffer] T-m [QK in GlobalBuffer] T-e [Q in GlobalBuffer] T-p S-reuse_output-e S-reuse_input-p [K in Register] T-m MAC computes QK\n",
|
|
623
|
+
"WARNING \t[QK,Q,K in MainMemory] T-b T-e T-h T-m [Q in GlobalBuffer] T-p [K in GlobalBuffer] T-m [QK in GlobalBuffer] T-e S-reuse_output-e S-reuse_input-p [K in Register] T-m MAC computes QK\n",
|
|
624
|
+
"WARNING \t[QK,Q,K in MainMemory] T-b T-e T-h T-m [Q in GlobalBuffer] T-p [QK in GlobalBuffer] T-e [K in GlobalBuffer] S-reuse_output-e S-reuse_input-p [K in Register] T-m MAC computes QK\n",
|
|
625
|
+
"WARNING \t[QK,Q,K in MainMemory] T-b T-h T-m T-p [QK in GlobalBuffer] T-e [K in GlobalBuffer] T-m [Q in GlobalBuffer] T-p S-reuse_output-e S-reuse_input-p [K in Register] T-m MAC computes QK\n",
|
|
626
|
+
"WARNING \t[QK,Q,K in MainMemory] T-b T-h T-m T-p [QK in GlobalBuffer] T-e [Q in GlobalBuffer] T-p [K in GlobalBuffer] S-reuse_output-e S-reuse_input-p [K in Register] T-m MAC computes QK\n",
|
|
627
|
+
"WARNING Einsum QK_softmax has 2 pmapping templates:\n",
|
|
628
|
+
"WARNING \t[QK_softmax,QK in MainMemory] T-b T-h T-m T-p [QK,QK_softmax in GlobalBuffer] MAC computes QK_softmax\n",
|
|
629
|
+
"WARNING \t[QK_softmax,QK in MainMemory] T-b T-h T-m T-p [QK_softmax,QK in GlobalBuffer] MAC computes QK_softmax\n",
|
|
630
|
+
"WARNING Einsum AV has 6 pmapping templates:\n",
|
|
631
|
+
"WARNING \t[V,QK_softmax,AV in MainMemory] T-b T-f T-h T-m [AV in GlobalBuffer] T-p [QK_softmax in GlobalBuffer] T-f [V in GlobalBuffer] S-reuse_output-p S-reuse_input-f [V in Register] T-m MAC computes AV\n",
|
|
632
|
+
"WARNING \t[V,QK_softmax,AV in MainMemory] T-b T-f T-h T-m [AV in GlobalBuffer] T-p [V in GlobalBuffer] T-m [QK_softmax in GlobalBuffer] T-f S-reuse_output-p S-reuse_input-f [V in Register] T-m MAC computes AV\n",
|
|
633
|
+
"WARNING \t[V,QK_softmax,AV in MainMemory] T-b T-h T-m T-p [QK_softmax in GlobalBuffer] T-f [AV in GlobalBuffer] T-p [V in GlobalBuffer] S-reuse_output-p S-reuse_input-f [V in Register] T-m MAC computes AV\n",
|
|
634
|
+
"WARNING \t[V,QK_softmax,AV in MainMemory] T-b T-h T-m T-p [QK_softmax in GlobalBuffer] T-f [V in GlobalBuffer] T-m [AV in GlobalBuffer] T-p S-reuse_output-p S-reuse_input-f [V in Register] T-m MAC computes AV\n",
|
|
635
|
+
"WARNING \t[V,QK_softmax,AV in MainMemory] T-b T-f T-h T-p [V in GlobalBuffer] T-m [AV in GlobalBuffer] T-p [QK_softmax in GlobalBuffer] T-f S-reuse_output-p S-reuse_input-f [V in Register] T-m MAC computes AV\n",
|
|
636
|
+
"WARNING \t[V,QK_softmax,AV in MainMemory] T-b T-f T-h T-p [V in GlobalBuffer] T-m [QK_softmax in GlobalBuffer] T-f [AV in GlobalBuffer] T-p S-reuse_output-p S-reuse_input-f [V in Register] T-m MAC computes AV\n",
|
|
637
|
+
"WARNING Einsum Z has 6 pmapping templates:\n",
|
|
638
|
+
"WARNING \t[Z,WZ,AV in MainMemory] T-b T-f T-h T-m [AV in GlobalBuffer] T-g [WZ in GlobalBuffer] T-b T-m [Z in GlobalBuffer] T-f T-h S-reuse_output-h S-reuse_output-f S-reuse_input-g [WZ in Register] T-b T-m MAC computes Z\n",
|
|
639
|
+
"WARNING \t[Z,WZ,AV in MainMemory] T-b T-f T-h T-m [AV in GlobalBuffer] T-g [Z in GlobalBuffer] T-f T-h [WZ in GlobalBuffer] S-reuse_output-h S-reuse_output-f S-reuse_input-g [WZ in Register] T-b T-m MAC computes Z\n",
|
|
640
|
+
"WARNING \t[Z,WZ,AV in MainMemory] T-f T-g T-h [WZ in GlobalBuffer] T-b T-m [AV in GlobalBuffer] T-g [Z in GlobalBuffer] T-f T-h S-reuse_output-h S-reuse_output-f S-reuse_input-g [WZ in Register] T-b T-m MAC computes Z\n",
|
|
641
|
+
"WARNING \t[Z,WZ,AV in MainMemory] T-f T-g T-h [WZ in GlobalBuffer] T-b T-m [Z in GlobalBuffer] T-f T-h [AV in GlobalBuffer] T-g S-reuse_output-h S-reuse_output-f S-reuse_input-g [WZ in Register] T-b T-m MAC computes Z\n",
|
|
642
|
+
"WARNING \t[Z,WZ,AV in MainMemory] T-b T-g T-m [Z in GlobalBuffer] T-f T-h [AV in GlobalBuffer] T-g [WZ in GlobalBuffer] S-reuse_output-h S-reuse_output-f S-reuse_input-g [WZ in Register] T-b T-m MAC computes Z\n",
|
|
643
|
+
"WARNING \t[Z,WZ,AV in MainMemory] T-b T-g T-m [Z in GlobalBuffer] T-f T-h [WZ in GlobalBuffer] T-b T-m [AV in GlobalBuffer] T-g S-reuse_output-h S-reuse_output-f S-reuse_input-g [WZ in Register] T-b T-m MAC computes Z\n",
|
|
644
|
+
"WARNING Einsum FFA has 6 pmapping templates:\n",
|
|
645
|
+
"WARNING \t[Z,WFFA,FFA in MainMemory] T-b T-c T-m [FFA in GlobalBuffer] T-g [WFFA in GlobalBuffer] T-b T-m [Z in GlobalBuffer] T-c S-reuse_output-g S-reuse_input-c [WFFA in Register] T-b T-m MAC computes FFA\n",
|
|
646
|
+
"WARNING \t[Z,WFFA,FFA in MainMemory] T-b T-c T-m [FFA in GlobalBuffer] T-g [Z in GlobalBuffer] T-c [WFFA in GlobalBuffer] S-reuse_output-g S-reuse_input-c [WFFA in Register] T-b T-m MAC computes FFA\n",
|
|
647
|
+
"WARNING \t[Z,WFFA,FFA in MainMemory] T-c T-g [WFFA in GlobalBuffer] T-b T-m [FFA in GlobalBuffer] T-g [Z in GlobalBuffer] T-c S-reuse_output-g S-reuse_input-c [WFFA in Register] T-b T-m MAC computes FFA\n",
|
|
648
|
+
"WARNING \t[Z,WFFA,FFA in MainMemory] T-c T-g [WFFA in GlobalBuffer] T-b T-m [Z in GlobalBuffer] T-c [FFA in GlobalBuffer] T-g S-reuse_output-g S-reuse_input-c [WFFA in Register] T-b T-m MAC computes FFA\n",
|
|
649
|
+
"WARNING \t[Z,WFFA,FFA in MainMemory] T-b T-g T-m [Z in GlobalBuffer] T-c [FFA in GlobalBuffer] T-g [WFFA in GlobalBuffer] S-reuse_output-g S-reuse_input-c [WFFA in Register] T-b T-m MAC computes FFA\n",
|
|
650
|
+
"WARNING \t[Z,WFFA,FFA in MainMemory] T-b T-g T-m [Z in GlobalBuffer] T-c [WFFA in GlobalBuffer] T-b T-m [FFA in GlobalBuffer] T-g S-reuse_output-g S-reuse_input-c [WFFA in Register] T-b T-m MAC computes FFA\n",
|
|
651
|
+
"WARNING Einsum FFB has 6 pmapping templates:\n",
|
|
652
|
+
"WARNING \t[WFFB,FFB,FFA in MainMemory] T-b T-c T-m [FFA in GlobalBuffer] T-j [FFB in GlobalBuffer] T-c [WFFB in GlobalBuffer] S-reuse_output-c S-reuse_input-j [WFFB in Register] T-b T-m MAC computes FFB\n",
|
|
653
|
+
"WARNING \t[WFFB,FFB,FFA in MainMemory] T-b T-c T-m [FFA in GlobalBuffer] T-j [WFFB in GlobalBuffer] T-b T-m [FFB in GlobalBuffer] T-c S-reuse_output-c S-reuse_input-j [WFFB in Register] T-b T-m MAC computes FFB\n",
|
|
654
|
+
"WARNING \t[WFFB,FFB,FFA in MainMemory] T-b T-j T-m [FFB in GlobalBuffer] T-c [FFA in GlobalBuffer] T-j [WFFB in GlobalBuffer] S-reuse_output-c S-reuse_input-j [WFFB in Register] T-b T-m MAC computes FFB\n",
|
|
655
|
+
"WARNING \t[WFFB,FFB,FFA in MainMemory] T-b T-j T-m [FFB in GlobalBuffer] T-c [WFFB in GlobalBuffer] T-b T-m [FFA in GlobalBuffer] T-j S-reuse_output-c S-reuse_input-j [WFFB in Register] T-b T-m MAC computes FFB\n",
|
|
656
|
+
"WARNING \t[WFFB,FFB,FFA in MainMemory] T-c T-j [WFFB in GlobalBuffer] T-b T-m [FFA in GlobalBuffer] T-j [FFB in GlobalBuffer] T-c S-reuse_output-c S-reuse_input-j [WFFB in Register] T-b T-m MAC computes FFB\n",
|
|
657
|
+
"WARNING \t[WFFB,FFB,FFA in MainMemory] T-c T-j [WFFB in GlobalBuffer] T-b T-m [FFB in GlobalBuffer] T-c [FFA in GlobalBuffer] T-j S-reuse_output-c S-reuse_input-j [WFFB in Register] T-b T-m MAC computes FFB\n",
|
|
658
|
+
"WARNING Insufficient jobs available to utilize available threads. Splitting jobs into smaller chunks.\n",
|
|
659
|
+
"Generating pmappings: 100%|██████████| 51/51 [00:27<00:00, 1.88it/s]\n",
|
|
660
|
+
"Grouping pmappings for V: 100%|██████████| 1/1 [00:08<00:00, 8.89s/it]\n",
|
|
661
|
+
"Grouping pmappings for K: 100%|██████████| 1/1 [00:00<00:00, 49.01it/s]\n",
|
|
662
|
+
"Grouping pmappings for Q: 100%|██████████| 1/1 [00:00<00:00, 45.71it/s]\n",
|
|
663
|
+
"Grouping pmappings for QK: 100%|██████████| 1/1 [00:00<00:00, 56.96it/s]\n",
|
|
664
|
+
"Grouping pmappings for QK_softmax: 100%|██████████| 1/1 [00:00<00:00, 170.12it/s]\n",
|
|
665
|
+
"Grouping pmappings for AV: 100%|██████████| 1/1 [00:00<00:00, 48.48it/s]\n",
|
|
666
|
+
"Grouping pmappings for Z: 100%|██████████| 1/1 [00:00<00:00, 38.21it/s]\n",
|
|
667
|
+
"Grouping pmappings for FFA: 100%|██████████| 1/1 [00:00<00:00, 50.44it/s]\n",
|
|
668
|
+
"Grouping pmappings for FFB: 100%|██████████| 1/1 [00:00<00:00, 55.03it/s]"
|
|
669
|
+
]
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"name": "stdout",
|
|
673
|
+
"output_type": "stream",
|
|
674
|
+
"text": [
|
|
675
|
+
"FFA: 7.22e05 total, 766 (1/943) valid, 1.12e03 (1/644) evaluated, 1 (1/7.22e05) Pareto-Optimal\n",
|
|
676
|
+
"QK: 3.32e05 total, 534 (1/622) valid, 784 (1/424) evaluated, 1 (1/3.32e05) Pareto-Optimal\n",
|
|
677
|
+
"Q: 3.98e06 total, 8.16e03 (1/488) valid, 4.36e03 (1/914) evaluated, 1 (1/3.98e06) Pareto-Optimal\n",
|
|
678
|
+
"AV: 3.32e05 total, 577 (1/576) valid, 877 (1/379) evaluated, 1 (1/3.32e05) Pareto-Optimal\n",
|
|
679
|
+
"K: 3.98e06 total, 8.16e03 (1/488) valid, 4.36e03 (1/914) evaluated, 1 (1/3.98e06) Pareto-Optimal\n",
|
|
680
|
+
"FFB: 7.22e05 total, 823 (1/878) valid, 1.12e03 (1/644) evaluated, 1 (1/7.22e05) Pareto-Optimal\n",
|
|
681
|
+
"Z: 3.98e06 total, 6.56e03 (1/606) valid, 4.53e03 (1/879) evaluated, 1 (1/3.98e06) Pareto-Optimal\n",
|
|
682
|
+
"V: 3.98e06 total, 8.16e03 (1/488) valid, 4.36e03 (1/914) evaluated, 1 (1/3.98e06) Pareto-Optimal\n",
|
|
683
|
+
"QK_softmax: 2 total, 2 (1/1) valid, 0 (1/inf) evaluated, 1 (1/2) Pareto-Optimal\n",
|
|
684
|
+
"I: 1 total, 1 (1/1) valid, 0 (1/inf) evaluated, 1 (1/1) Pareto-Optimal\n",
|
|
685
|
+
"Total: 1.80e07 total, 3.37e04 (1/534) valid, 2.15e04 (1/839) evaluated, 10 (1/1.80e06) Pareto-Optimal\n"
|
|
686
|
+
]
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"name": "stderr",
|
|
690
|
+
"output_type": "stream",
|
|
691
|
+
"text": [
|
|
692
|
+
"\n"
|
|
693
|
+
]
|
|
694
|
+
}
|
|
695
|
+
],
|
|
696
|
+
"source": [
|
|
697
|
+
"# < DOC_INCLUDE_MARKER > make_pmappings\n",
|
|
698
|
+
"\n",
|
|
699
|
+
"# Commenting this will be slower, but may generate better mappings. Limits the number of\n",
|
|
700
|
+
"# fused loops that can exist in a single pmapping.\n",
|
|
701
|
+
"spec.mapper.ffm.max_fused_loops = 1\n",
|
|
702
|
+
"\n",
|
|
703
|
+
"pmappings = af.mapper.FFM.make_pmappings(\n",
|
|
704
|
+
" spec,\n",
|
|
705
|
+
" # Having can_combine_multiple_runs=False is faster, so it should generally be set to\n",
|
|
706
|
+
" # True. If it is set to False, then you may run make_pmappings multiple times with\n",
|
|
707
|
+
" # compatible specs and combine them:\n",
|
|
708
|
+
" # pmappings = make_pmappings(*args_a) | make_pmappings(*args_b)\n",
|
|
709
|
+
" can_combine_multiple_runs=False\n",
|
|
710
|
+
")"
|
|
711
|
+
]
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
"cell_type": "code",
|
|
715
|
+
"execution_count": 5,
|
|
716
|
+
"metadata": {},
|
|
717
|
+
"outputs": [
|
|
718
|
+
{
|
|
719
|
+
"name": "stdout",
|
|
720
|
+
"output_type": "stream",
|
|
721
|
+
"text": [
|
|
722
|
+
"Total number of pmappings: 18030513\n",
|
|
723
|
+
"Number of valid pmappings: 33734.14646276613\n",
|
|
724
|
+
"Number of Pareto-optimal pmappings: 10\n",
|
|
725
|
+
"Number of evaluated pmappings: 21500\n"
|
|
726
|
+
]
|
|
727
|
+
}
|
|
728
|
+
],
|
|
729
|
+
"source": [
|
|
730
|
+
"# < DOC_INCLUDE_MARKER > pmappings_stats\n",
|
|
731
|
+
"\n",
|
|
732
|
+
"# Output some stats about the generated pmappings.\n",
|
|
733
|
+
"print(f\"Total number of pmappings: {pmappings.n_total_pmappings()}\")\n",
|
|
734
|
+
"print(f\"Number of valid pmappings: {pmappings.n_valid_pmappings()}\")\n",
|
|
735
|
+
"print(f\"Number of Pareto-optimal pmappings: {pmappings.n_pareto_optimal_pmappings()}\")\n",
|
|
736
|
+
"print(f\"Number of evaluated pmappings: {pmappings.n_evaluated_pmappings()}\")"
|
|
737
|
+
]
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"cell_type": "code",
|
|
741
|
+
"execution_count": 6,
|
|
742
|
+
"metadata": {},
|
|
743
|
+
"outputs": [
|
|
744
|
+
{
|
|
745
|
+
"name": "stdout",
|
|
746
|
+
"output_type": "stream",
|
|
747
|
+
"text": [
|
|
748
|
+
"Einsum I has 1 pmappings with 1 compatibilities\n",
|
|
749
|
+
"Einsum V has 1 pmappings with 1 compatibilities\n",
|
|
750
|
+
"Einsum K has 1 pmappings with 1 compatibilities\n",
|
|
751
|
+
"Einsum Q has 1 pmappings with 1 compatibilities\n",
|
|
752
|
+
"Einsum QK has 1 pmappings with 1 compatibilities\n",
|
|
753
|
+
"Einsum QK_softmax has 1 pmappings with 1 compatibilities\n",
|
|
754
|
+
"Einsum AV has 1 pmappings with 1 compatibilities\n",
|
|
755
|
+
"Einsum Z has 1 pmappings with 1 compatibilities\n",
|
|
756
|
+
"Einsum FFA has 1 pmappings with 1 compatibilities\n",
|
|
757
|
+
"Einsum FFB has 1 pmappings with 1 compatibilities\n"
|
|
758
|
+
]
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
"name": "stderr",
|
|
762
|
+
"output_type": "stream",
|
|
763
|
+
"text": [
|
|
764
|
+
"Compressing pmappings: 100%|██████████| 10/10 [00:00<00:00, 225.02it/s]\n"
|
|
765
|
+
]
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
"name": "stdout",
|
|
769
|
+
"output_type": "stream",
|
|
770
|
+
"text": [
|
|
771
|
+
"Not tracking GlobalBuffer because it is never reserved for multiple pmappings.\n",
|
|
772
|
+
"Not tracking MainMemory because it is never reserved for multiple pmappings.\n",
|
|
773
|
+
"Not tracking Register because it is never reserved for multiple pmappings.\n"
|
|
774
|
+
]
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
"name": "stderr",
|
|
778
|
+
"output_type": "stream",
|
|
779
|
+
"text": [
|
|
780
|
+
"Removing unneeded reservations for I: 100%|██████████| 2/2 [00:00<00:00, 145.25it/s]\n",
|
|
781
|
+
"Removing unneeded reservations for V: 100%|██████████| 2/2 [00:00<00:00, 156.78it/s]\n",
|
|
782
|
+
"Removing unneeded reservations for K: 100%|██████████| 2/2 [00:00<00:00, 148.56it/s]\n",
|
|
783
|
+
"Removing unneeded reservations for Q: 100%|██████████| 2/2 [00:00<00:00, 139.86it/s]\n",
|
|
784
|
+
"Removing unneeded reservations for QK: 100%|██████████| 2/2 [00:00<00:00, 147.11it/s]\n",
|
|
785
|
+
"Removing unneeded reservations for QK_softmax: 100%|██████████| 2/2 [00:00<00:00, 154.26it/s]\n",
|
|
786
|
+
"Removing unneeded reservations for AV: 100%|██████████| 2/2 [00:00<00:00, 157.26it/s]\n",
|
|
787
|
+
"Removing unneeded reservations for Z: 100%|██████████| 2/2 [00:00<00:00, 152.86it/s]\n",
|
|
788
|
+
"Removing unneeded reservations for FFA: 100%|██████████| 2/2 [00:00<00:00, 149.74it/s]\n",
|
|
789
|
+
"Removing unneeded reservations for FFB: 100%|██████████| 2/2 [00:00<00:00, 164.95it/s]\n",
|
|
790
|
+
"Grouping pmappings for V (2/10): 100%|██████████| 1/1 [00:00<00:00, 236.22it/s]\n",
|
|
791
|
+
"Grouping pmappings for K (3/10): 100%|██████████| 1/1 [00:00<00:00, 203.98it/s]\n",
|
|
792
|
+
"Grouping pmappings for Q (4/10): 100%|██████████| 1/1 [00:00<00:00, 251.82it/s]\n",
|
|
793
|
+
"Grouping pmappings for QK (5/10): 100%|██████████| 1/1 [00:00<00:00, 252.53it/s]\n",
|
|
794
|
+
"Grouping pmappings for QK_softmax (6/10): 100%|██████████| 1/1 [00:00<00:00, 223.04it/s]\n",
|
|
795
|
+
"Grouping pmappings for AV (7/10): 100%|██████████| 1/1 [00:00<00:00, 176.94it/s]\n",
|
|
796
|
+
"Grouping pmappings for Z (8/10): 100%|██████████| 1/1 [00:00<00:00, 265.41it/s]\n",
|
|
797
|
+
"Grouping pmappings for FFA (9/10): 100%|██████████| 1/1 [00:00<00:00, 253.11it/s]\n",
|
|
798
|
+
"Grouping pmappings for FFB (10/10): 100%|██████████| 1/1 [00:00<00:00, 226.51it/s]\n",
|
|
799
|
+
"Grouping pmappings: 100%|██████████| 1/1 [00:00<00:00, 251.70it/s]\n",
|
|
800
|
+
"Joining pmappings for I <--> V (2/10): 100%|██████████| 1/1 [00:00<00:00, 60.46it/s]\n",
|
|
801
|
+
"Joining pmappings for V <--> K (3/10): 100%|██████████| 1/1 [00:00<00:00, 60.05it/s]\n",
|
|
802
|
+
"Joining pmappings for K <--> Q (4/10): 100%|██████████| 1/1 [00:00<00:00, 51.07it/s]\n",
|
|
803
|
+
"Joining pmappings for Q <--> QK (5/10): 100%|██████████| 1/1 [00:00<00:00, 67.22it/s]\n",
|
|
804
|
+
"Joining pmappings for QK <--> QK_softmax (6/10): 100%|██████████| 1/1 [00:00<00:00, 61.40it/s]\n",
|
|
805
|
+
"Joining pmappings for QK_softmax <--> AV (7/10): 100%|██████████| 1/1 [00:00<00:00, 58.85it/s]\n",
|
|
806
|
+
"Joining pmappings for AV <--> Z (8/10): 100%|██████████| 1/1 [00:00<00:00, 47.41it/s]\n",
|
|
807
|
+
"Joining pmappings for Z <--> FFA (9/10): 100%|██████████| 1/1 [00:00<00:00, 64.96it/s]\n",
|
|
808
|
+
"Joining pmappings for FFA <--> FFB (10/10): 100%|██████████| 1/1 [00:00<00:00, 55.68it/s]\n",
|
|
809
|
+
"Final consolidate: 100%|██████████| 1/1 [00:00<00:00, 4324.02it/s]\n"
|
|
810
|
+
]
|
|
811
|
+
}
|
|
812
|
+
],
|
|
813
|
+
"source": [
|
|
814
|
+
"# < DOC_INCLUDE_MARKER > join_pmappings\n",
|
|
815
|
+
"\n",
|
|
816
|
+
"# Join the pmappings to create a full mapping.\n",
|
|
817
|
+
"mappings = af.mapper.FFM.join_pmappings(spec,pmappings)"
|
|
818
|
+
]
|
|
819
|
+
},
|
|
820
|
+
{
|
|
821
|
+
"cell_type": "code",
|
|
822
|
+
"execution_count": 7,
|
|
823
|
+
"metadata": {},
|
|
824
|
+
"outputs": [
|
|
825
|
+
{
|
|
826
|
+
"name": "stdout",
|
|
827
|
+
"output_type": "stream",
|
|
828
|
+
"text": [
|
|
829
|
+
"Totals:\n",
|
|
830
|
+
"\tenergy: 37.821644600723054\n",
|
|
831
|
+
"\tmapping: <accelforge.mapper.FFM.main.MappingFromRow object at 0x7f342026ad80>\n"
|
|
832
|
+
]
|
|
833
|
+
}
|
|
834
|
+
],
|
|
835
|
+
"source": [
|
|
836
|
+
"# The joined pmappings object contains a DataFrame of all Pareto-optimal pmappings for\n",
|
|
837
|
+
"# the given optimization metrics. Since we're only interested in one metric, this should\n",
|
|
838
|
+
"# have exaclty one row, but we'll grab index 0 to be sure.\n",
|
|
839
|
+
"mapping = mappings[0]\n",
|
|
840
|
+
"\n",
|
|
841
|
+
"# All units are SI units-- seconds, joules, meters, etc.\n",
|
|
842
|
+
"print(f\"Totals:\")\n",
|
|
843
|
+
"\n",
|
|
844
|
+
"# The access method accesses all columns that include Total.\n",
|
|
845
|
+
"for k, v in mapping.access(\"Total\").to_dict().items():\n",
|
|
846
|
+
" print(f\"\\t{k}: {v}\")"
|
|
847
|
+
]
|
|
848
|
+
},
|
|
849
|
+
{
|
|
850
|
+
"cell_type": "code",
|
|
851
|
+
"execution_count": 8,
|
|
852
|
+
"metadata": {},
|
|
853
|
+
"outputs": [
|
|
854
|
+
{
|
|
855
|
+
"data": {
|
|
856
|
+
"image/svg+xml": [
|
|
857
|
+
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
|
|
858
|
+
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
|
|
859
|
+
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
|
|
860
|
+
"<!-- Generated by graphviz version 2.43.0 (0)\n",
|
|
861
|
+
" -->\n",
|
|
862
|
+
"<!-- Title: G Pages: 1 -->\n",
|
|
863
|
+
"<svg width=\"2151pt\" height=\"1109pt\"\n",
|
|
864
|
+
" viewBox=\"0.00 0.00 2150.50 1108.62\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
865
|
+
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 1104.62)\">\n",
|
|
866
|
+
"<title>G</title>\n",
|
|
867
|
+
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-1104.62 2146.5,-1104.62 2146.5,4 -4,4\"/>\n",
|
|
868
|
+
"<!-- Storage_139860231978784 -->\n",
|
|
869
|
+
"<g id=\"node1\" class=\"node\">\n",
|
|
870
|
+
"<title>Storage_139860231978784</title>\n",
|
|
871
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1341.5,-1097.3C1341.5,-1099.17 1199.19,-1100.69 1024,-1100.69 848.81,-1100.69 706.5,-1099.17 706.5,-1097.3 706.5,-1097.3 706.5,-1066.82 706.5,-1066.82 706.5,-1064.96 848.81,-1063.44 1024,-1063.44 1199.19,-1063.44 1341.5,-1064.96 1341.5,-1066.82 1341.5,-1066.82 1341.5,-1097.3 1341.5,-1097.3\"/>\n",
|
|
872
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1341.5,-1097.3C1341.5,-1095.43 1199.19,-1093.91 1024,-1093.91 848.81,-1093.91 706.5,-1095.43 706.5,-1097.3\"/>\n",
|
|
873
|
+
"<text text-anchor=\"start\" x=\"709\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reuses</text>\n",
|
|
874
|
+
"<polygon fill=\"none\" stroke=\"#f000ff\" stroke-width=\"5\" points=\"822.5,-1070.56 822.5,-1092.56 851.5,-1092.56 851.5,-1070.56 822.5,-1070.56\"/>\n",
|
|
875
|
+
"<text text-anchor=\"start\" x=\"827\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">WV</text>\n",
|
|
876
|
+
"<polygon fill=\"none\" stroke=\"#3c00ff\" stroke-width=\"5\" points=\"856.5,-1070.56 856.5,-1092.56 885.5,-1092.56 885.5,-1070.56 856.5,-1070.56\"/>\n",
|
|
877
|
+
"<text text-anchor=\"start\" x=\"861\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">WK</text>\n",
|
|
878
|
+
"<polygon fill=\"none\" stroke=\"#9500ff\" stroke-width=\"5\" points=\"890.5,-1070.56 890.5,-1092.56 920.5,-1092.56 920.5,-1070.56 890.5,-1070.56\"/>\n",
|
|
879
|
+
"<text text-anchor=\"start\" x=\"895\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">WQ</text>\n",
|
|
880
|
+
"<polygon fill=\"none\" stroke=\"#ff00b4\" stroke-width=\"5\" points=\"925.5,-1070.56 925.5,-1092.56 953.5,-1092.56 953.5,-1070.56 925.5,-1070.56\"/>\n",
|
|
881
|
+
"<text text-anchor=\"start\" x=\"930\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">WZ</text>\n",
|
|
882
|
+
"<polygon fill=\"none\" stroke=\"#000080\" stroke-width=\"5\" points=\"958.5,-1070.56 958.5,-1092.56 1001.5,-1092.56 1001.5,-1070.56 958.5,-1070.56\"/>\n",
|
|
883
|
+
"<text text-anchor=\"start\" x=\"963\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">WFFA</text>\n",
|
|
884
|
+
"<polygon fill=\"none\" stroke=\"#808000\" stroke-width=\"5\" points=\"1006.5,-1070.56 1006.5,-1092.56 1050.5,-1092.56 1050.5,-1070.56 1006.5,-1070.56\"/>\n",
|
|
885
|
+
"<text text-anchor=\"start\" x=\"1011\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">WFFB</text>\n",
|
|
886
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"1055.5,-1070.56 1055.5,-1092.56 1068.5,-1092.56 1068.5,-1070.56 1055.5,-1070.56\"/>\n",
|
|
887
|
+
"<text text-anchor=\"start\" x=\"1060\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
888
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"1073.5,-1070.56 1073.5,-1092.56 1091.5,-1092.56 1091.5,-1070.56 1073.5,-1070.56\"/>\n",
|
|
889
|
+
"<text text-anchor=\"start\" x=\"1078\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
890
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"1096.5,-1070.56 1096.5,-1092.56 1114.5,-1092.56 1114.5,-1070.56 1096.5,-1070.56\"/>\n",
|
|
891
|
+
"<text text-anchor=\"start\" x=\"1101\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
892
|
+
"<polygon fill=\"none\" stroke=\"#ff8000\" stroke-width=\"5\" points=\"1119.5,-1070.56 1119.5,-1092.56 1138.5,-1092.56 1138.5,-1070.56 1119.5,-1070.56\"/>\n",
|
|
893
|
+
"<text text-anchor=\"start\" x=\"1124\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
894
|
+
"<polygon fill=\"none\" stroke=\"#8000ff\" stroke-width=\"5\" points=\"1143.5,-1070.56 1143.5,-1092.56 1170.5,-1092.56 1170.5,-1070.56 1143.5,-1070.56\"/>\n",
|
|
895
|
+
"<text text-anchor=\"start\" x=\"1148\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
896
|
+
"<polygon fill=\"none\" stroke=\"#008000\" stroke-width=\"5\" points=\"1175.5,-1070.56 1175.5,-1092.56 1250.5,-1092.56 1250.5,-1070.56 1175.5,-1070.56\"/>\n",
|
|
897
|
+
"<text text-anchor=\"start\" x=\"1180\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
898
|
+
"<polygon fill=\"none\" stroke=\"#ff0000\" stroke-width=\"5\" points=\"1255.5,-1070.56 1255.5,-1092.56 1280.5,-1092.56 1280.5,-1070.56 1255.5,-1070.56\"/>\n",
|
|
899
|
+
"<text text-anchor=\"start\" x=\"1260\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
900
|
+
"<polygon fill=\"none\" stroke=\"#ff005a\" stroke-width=\"5\" points=\"1285.5,-1070.56 1285.5,-1092.56 1302.5,-1092.56 1302.5,-1070.56 1285.5,-1070.56\"/>\n",
|
|
901
|
+
"<text text-anchor=\"start\" x=\"1290\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
902
|
+
"<polygon fill=\"none\" stroke=\"#00ff00\" stroke-width=\"5\" points=\"1307.5,-1070.56 1307.5,-1092.56 1339.5,-1092.56 1339.5,-1070.56 1307.5,-1070.56\"/>\n",
|
|
903
|
+
"<text text-anchor=\"start\" x=\"1312\" y=\"-1078.46\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
904
|
+
"</g>\n",
|
|
905
|
+
"<!-- Reservation_139860231978624 -->\n",
|
|
906
|
+
"<g id=\"node2\" class=\"node\">\n",
|
|
907
|
+
"<title>Reservation_139860231978624</title>\n",
|
|
908
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1210.5,-1049.5 837.5,-1049.5 837.5,-1045.5 833.5,-1045.5 833.5,-1041.5 837.5,-1041.5 837.5,-1021.5 833.5,-1021.5 833.5,-1017.5 837.5,-1017.5 837.5,-1013.5 1210.5,-1013.5 1210.5,-1049.5\"/>\n",
|
|
909
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"837.5,-1045.5 841.5,-1045.5 841.5,-1041.5 837.5,-1041.5 \"/>\n",
|
|
910
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"837.5,-1021.5 841.5,-1021.5 841.5,-1017.5 837.5,-1017.5 \"/>\n",
|
|
911
|
+
"<text text-anchor=\"start\" x=\"840\" y=\"-1027.9\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
912
|
+
"<polygon fill=\"none\" stroke=\"#f000ff\" stroke-width=\"5\" points=\"980.5,-1020 980.5,-1042 1009.5,-1042 1009.5,-1020 980.5,-1020\"/>\n",
|
|
913
|
+
"<text text-anchor=\"start\" x=\"985\" y=\"-1027.9\" font-family=\"Arial\" font-size=\"12.00\">WV</text>\n",
|
|
914
|
+
"<polygon fill=\"none\" stroke=\"#3c00ff\" stroke-width=\"5\" points=\"1014.5,-1020 1014.5,-1042 1043.5,-1042 1043.5,-1020 1014.5,-1020\"/>\n",
|
|
915
|
+
"<text text-anchor=\"start\" x=\"1019\" y=\"-1027.9\" font-family=\"Arial\" font-size=\"12.00\">WK</text>\n",
|
|
916
|
+
"<polygon fill=\"none\" stroke=\"#9500ff\" stroke-width=\"5\" points=\"1048.5,-1020 1048.5,-1042 1078.5,-1042 1078.5,-1020 1048.5,-1020\"/>\n",
|
|
917
|
+
"<text text-anchor=\"start\" x=\"1053\" y=\"-1027.9\" font-family=\"Arial\" font-size=\"12.00\">WQ</text>\n",
|
|
918
|
+
"<polygon fill=\"none\" stroke=\"#ff00b4\" stroke-width=\"5\" points=\"1083.5,-1020 1083.5,-1042 1111.5,-1042 1111.5,-1020 1083.5,-1020\"/>\n",
|
|
919
|
+
"<text text-anchor=\"start\" x=\"1088\" y=\"-1027.9\" font-family=\"Arial\" font-size=\"12.00\">WZ</text>\n",
|
|
920
|
+
"<polygon fill=\"none\" stroke=\"#000080\" stroke-width=\"5\" points=\"1116.5,-1020 1116.5,-1042 1159.5,-1042 1159.5,-1020 1116.5,-1020\"/>\n",
|
|
921
|
+
"<text text-anchor=\"start\" x=\"1121\" y=\"-1027.9\" font-family=\"Arial\" font-size=\"12.00\">WFFA</text>\n",
|
|
922
|
+
"<polygon fill=\"none\" stroke=\"#808000\" stroke-width=\"5\" points=\"1164.5,-1020 1164.5,-1042 1208.5,-1042 1208.5,-1020 1164.5,-1020\"/>\n",
|
|
923
|
+
"<text text-anchor=\"start\" x=\"1169\" y=\"-1027.9\" font-family=\"Arial\" font-size=\"12.00\">WFFB</text>\n",
|
|
924
|
+
"</g>\n",
|
|
925
|
+
"<!-- Storage_139860231978784->Reservation_139860231978624 -->\n",
|
|
926
|
+
"<g id=\"edge1\" class=\"edge\">\n",
|
|
927
|
+
"<title>Storage_139860231978784->Reservation_139860231978624</title>\n",
|
|
928
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1024,-1063.26C1024,-1062.15 1024,-1061.02 1024,-1059.88\"/>\n",
|
|
929
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1027.5,-1059.66 1024,-1049.66 1020.5,-1059.66 1027.5,-1059.66\"/>\n",
|
|
930
|
+
"</g>\n",
|
|
931
|
+
"<!-- Sequential_139860227603136 -->\n",
|
|
932
|
+
"<g id=\"node3\" class=\"node\">\n",
|
|
933
|
+
"<title>Sequential_139860227603136</title>\n",
|
|
934
|
+
"<polygon fill=\"#ffffe0\" stroke=\"black\" points=\"1051,-981.5 1037.5,-999.5 1010.5,-999.5 997,-981.5 1010.5,-963.5 1037.5,-963.5 1051,-981.5\"/>\n",
|
|
935
|
+
"<text text-anchor=\"middle\" x=\"1024\" y=\"-978.4\" font-family=\"Arial\" font-size=\"12.00\">Split</text>\n",
|
|
936
|
+
"</g>\n",
|
|
937
|
+
"<!-- Reservation_139860231978624->Sequential_139860227603136 -->\n",
|
|
938
|
+
"<g id=\"edge2\" class=\"edge\">\n",
|
|
939
|
+
"<title>Reservation_139860231978624->Sequential_139860227603136</title>\n",
|
|
940
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1024,-1013.44C1024,-1012.17 1024,-1010.87 1024,-1009.55\"/>\n",
|
|
941
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1027.5,-1009.5 1024,-999.5 1020.5,-1009.5 1027.5,-1009.5\"/>\n",
|
|
942
|
+
"</g>\n",
|
|
943
|
+
"<!-- Storage_139860229664080 -->\n",
|
|
944
|
+
"<g id=\"node4\" class=\"node\">\n",
|
|
945
|
+
"<title>Storage_139860229664080</title>\n",
|
|
946
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M181.5,-946.18C181.5,-948.04 148.56,-949.56 108,-949.56 67.44,-949.56 34.5,-948.04 34.5,-946.18 34.5,-946.18 34.5,-915.7 34.5,-915.7 34.5,-913.83 67.44,-912.31 108,-912.31 148.56,-912.31 181.5,-913.83 181.5,-915.7 181.5,-915.7 181.5,-946.18 181.5,-946.18\"/>\n",
|
|
947
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M181.5,-946.18C181.5,-944.31 148.56,-942.79 108,-942.79 67.44,-942.79 34.5,-944.31 34.5,-946.18\"/>\n",
|
|
948
|
+
"<text text-anchor=\"start\" x=\"37\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reuses</text>\n",
|
|
949
|
+
"<polygon fill=\"none\" stroke=\"#ff00ff\" stroke-width=\"5\" points=\"150.5,-919.44 150.5,-941.44 179.5,-941.44 179.5,-919.44 150.5,-919.44\"/>\n",
|
|
950
|
+
"<text text-anchor=\"start\" x=\"155\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">I_in</text>\n",
|
|
951
|
+
"</g>\n",
|
|
952
|
+
"<!-- Sequential_139860227603136->Storage_139860229664080 -->\n",
|
|
953
|
+
"<g id=\"edge3\" class=\"edge\">\n",
|
|
954
|
+
"<title>Sequential_139860227603136->Storage_139860229664080</title>\n",
|
|
955
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M997.99,-980.09C875.69,-978.05 356.9,-968.44 196,-949.5 194.69,-949.35 193.38,-949.18 192.06,-949.01\"/>\n",
|
|
956
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"192.2,-945.5 181.81,-947.56 191.21,-952.43 192.2,-945.5\"/>\n",
|
|
957
|
+
"</g>\n",
|
|
958
|
+
"<!-- Reservation_139860231974544 -->\n",
|
|
959
|
+
"<g id=\"node9\" class=\"node\">\n",
|
|
960
|
+
"<title>Reservation_139860231974544</title>\n",
|
|
961
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"386.5,-948.94 205.5,-948.94 205.5,-944.94 201.5,-944.94 201.5,-940.94 205.5,-940.94 205.5,-920.94 201.5,-920.94 201.5,-916.94 205.5,-916.94 205.5,-912.94 386.5,-912.94 386.5,-948.94\"/>\n",
|
|
962
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"205.5,-944.94 209.5,-944.94 209.5,-940.94 205.5,-940.94 \"/>\n",
|
|
963
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"205.5,-920.94 209.5,-920.94 209.5,-916.94 205.5,-916.94 \"/>\n",
|
|
964
|
+
"<text text-anchor=\"start\" x=\"208\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
965
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"348.5,-919.44 348.5,-941.44 366.5,-941.44 366.5,-919.44 348.5,-919.44\"/>\n",
|
|
966
|
+
"<text text-anchor=\"start\" x=\"353\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
967
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"371.5,-919.44 371.5,-941.44 384.5,-941.44 384.5,-919.44 371.5,-919.44\"/>\n",
|
|
968
|
+
"<text text-anchor=\"start\" x=\"376\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
969
|
+
"</g>\n",
|
|
970
|
+
"<!-- Sequential_139860227603136->Reservation_139860231974544 -->\n",
|
|
971
|
+
"<g id=\"edge4\" class=\"edge\">\n",
|
|
972
|
+
"<title>Sequential_139860227603136->Reservation_139860231974544</title>\n",
|
|
973
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M997.94,-979.86C914.98,-977.65 649.68,-969.41 431,-949.5 419.9,-948.49 408.3,-947.25 396.77,-945.91\"/>\n",
|
|
974
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"397.01,-942.42 386.67,-944.71 396.18,-949.37 397.01,-942.42\"/>\n",
|
|
975
|
+
"</g>\n",
|
|
976
|
+
"<!-- Reservation_139860228687024 -->\n",
|
|
977
|
+
"<g id=\"node27\" class=\"node\">\n",
|
|
978
|
+
"<title>Reservation_139860228687024</title>\n",
|
|
979
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"600,-948.94 440,-948.94 440,-944.94 436,-944.94 436,-940.94 440,-940.94 440,-920.94 436,-920.94 436,-916.94 440,-916.94 440,-912.94 600,-912.94 600,-948.94\"/>\n",
|
|
980
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"440,-944.94 444,-944.94 444,-940.94 440,-940.94 \"/>\n",
|
|
981
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"440,-920.94 444,-920.94 444,-916.94 440,-916.94 \"/>\n",
|
|
982
|
+
"<text text-anchor=\"start\" x=\"442\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
983
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"579.5,-919.44 579.5,-941.44 597.5,-941.44 597.5,-919.44 579.5,-919.44\"/>\n",
|
|
984
|
+
"<text text-anchor=\"start\" x=\"584\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
985
|
+
"</g>\n",
|
|
986
|
+
"<!-- Sequential_139860227603136->Reservation_139860228687024 -->\n",
|
|
987
|
+
"<g id=\"edge5\" class=\"edge\">\n",
|
|
988
|
+
"<title>Sequential_139860227603136->Reservation_139860228687024</title>\n",
|
|
989
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M998.34,-979.58C933.41,-977.04 757.41,-968.79 612,-949.5 611.4,-949.42 610.79,-949.34 610.18,-949.26\"/>\n",
|
|
990
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"610.59,-945.78 600.19,-947.8 609.59,-952.71 610.59,-945.78\"/>\n",
|
|
991
|
+
"</g>\n",
|
|
992
|
+
"<!-- Reservation_139860229209568 -->\n",
|
|
993
|
+
"<g id=\"node46\" class=\"node\">\n",
|
|
994
|
+
"<title>Reservation_139860229209568</title>\n",
|
|
995
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"804.5,-948.94 621.5,-948.94 621.5,-944.94 617.5,-944.94 617.5,-940.94 621.5,-940.94 621.5,-920.94 617.5,-920.94 617.5,-916.94 621.5,-916.94 621.5,-912.94 804.5,-912.94 804.5,-948.94\"/>\n",
|
|
996
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"621.5,-944.94 625.5,-944.94 625.5,-940.94 621.5,-940.94 \"/>\n",
|
|
997
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"621.5,-920.94 625.5,-920.94 625.5,-916.94 621.5,-916.94 \"/>\n",
|
|
998
|
+
"<text text-anchor=\"start\" x=\"624\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
999
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"761.5,-919.44 761.5,-941.44 779.5,-941.44 779.5,-919.44 761.5,-919.44\"/>\n",
|
|
1000
|
+
"<text text-anchor=\"start\" x=\"766\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
1001
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"784.5,-919.44 784.5,-941.44 802.5,-941.44 802.5,-919.44 784.5,-919.44\"/>\n",
|
|
1002
|
+
"<text text-anchor=\"start\" x=\"789\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1003
|
+
"</g>\n",
|
|
1004
|
+
"<!-- Sequential_139860227603136->Reservation_139860229209568 -->\n",
|
|
1005
|
+
"<g id=\"edge6\" class=\"edge\">\n",
|
|
1006
|
+
"<title>Sequential_139860227603136->Reservation_139860229209568</title>\n",
|
|
1007
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1000.37,-976.81C961.2,-970.69 880.61,-958.11 814.72,-947.82\"/>\n",
|
|
1008
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"815.11,-944.34 804.69,-946.26 814.03,-951.26 815.11,-944.34\"/>\n",
|
|
1009
|
+
"</g>\n",
|
|
1010
|
+
"<!-- Reservation_139860233048848 -->\n",
|
|
1011
|
+
"<g id=\"node65\" class=\"node\">\n",
|
|
1012
|
+
"<title>Reservation_139860233048848</title>\n",
|
|
1013
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1015,-948.94 855,-948.94 855,-944.94 851,-944.94 851,-940.94 855,-940.94 855,-920.94 851,-920.94 851,-916.94 855,-916.94 855,-912.94 1015,-912.94 1015,-948.94\"/>\n",
|
|
1014
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"855,-944.94 859,-944.94 859,-940.94 855,-940.94 \"/>\n",
|
|
1015
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"855,-920.94 859,-920.94 859,-916.94 855,-916.94 \"/>\n",
|
|
1016
|
+
"<text text-anchor=\"start\" x=\"857\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1017
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"994.5,-919.44 994.5,-941.44 1012.5,-941.44 1012.5,-919.44 994.5,-919.44\"/>\n",
|
|
1018
|
+
"<text text-anchor=\"start\" x=\"999\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1019
|
+
"</g>\n",
|
|
1020
|
+
"<!-- Sequential_139860227603136->Reservation_139860233048848 -->\n",
|
|
1021
|
+
"<g id=\"edge7\" class=\"edge\">\n",
|
|
1022
|
+
"<title>Sequential_139860227603136->Reservation_139860233048848</title>\n",
|
|
1023
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1005.13,-970.2C996.44,-965.46 985.79,-959.65 975.43,-954\"/>\n",
|
|
1024
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"976.91,-950.82 966.46,-949.1 973.56,-956.96 976.91,-950.82\"/>\n",
|
|
1025
|
+
"</g>\n",
|
|
1026
|
+
"<!-- Reservation_139860233169616 -->\n",
|
|
1027
|
+
"<g id=\"node80\" class=\"node\">\n",
|
|
1028
|
+
"<title>Reservation_139860233169616</title>\n",
|
|
1029
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1193,-948.94 1033,-948.94 1033,-944.94 1029,-944.94 1029,-940.94 1033,-940.94 1033,-920.94 1029,-920.94 1029,-916.94 1033,-916.94 1033,-912.94 1193,-912.94 1193,-948.94\"/>\n",
|
|
1030
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1033,-944.94 1037,-944.94 1037,-940.94 1033,-940.94 \"/>\n",
|
|
1031
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1033,-920.94 1037,-920.94 1037,-916.94 1033,-916.94 \"/>\n",
|
|
1032
|
+
"<text text-anchor=\"start\" x=\"1035\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1033
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"1172.5,-919.44 1172.5,-941.44 1190.5,-941.44 1190.5,-919.44 1172.5,-919.44\"/>\n",
|
|
1034
|
+
"<text text-anchor=\"start\" x=\"1177\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1035
|
+
"</g>\n",
|
|
1036
|
+
"<!-- Sequential_139860227603136->Reservation_139860233169616 -->\n",
|
|
1037
|
+
"<g id=\"edge8\" class=\"edge\">\n",
|
|
1038
|
+
"<title>Sequential_139860227603136->Reservation_139860233169616</title>\n",
|
|
1039
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1042.87,-970.2C1051.56,-965.46 1062.21,-959.65 1072.57,-954\"/>\n",
|
|
1040
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1074.44,-956.96 1081.54,-949.1 1071.09,-950.82 1074.44,-956.96\"/>\n",
|
|
1041
|
+
"</g>\n",
|
|
1042
|
+
"<!-- Reservation_139860228688704 -->\n",
|
|
1043
|
+
"<g id=\"node88\" class=\"node\">\n",
|
|
1044
|
+
"<title>Reservation_139860228688704</title>\n",
|
|
1045
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1484.5,-948.94 1211.5,-948.94 1211.5,-944.94 1207.5,-944.94 1207.5,-940.94 1211.5,-940.94 1211.5,-920.94 1207.5,-920.94 1207.5,-916.94 1211.5,-916.94 1211.5,-912.94 1484.5,-912.94 1484.5,-948.94\"/>\n",
|
|
1046
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1211.5,-944.94 1215.5,-944.94 1215.5,-940.94 1211.5,-940.94 \"/>\n",
|
|
1047
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1211.5,-920.94 1215.5,-920.94 1215.5,-916.94 1211.5,-916.94 \"/>\n",
|
|
1048
|
+
"<text text-anchor=\"start\" x=\"1214\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
1049
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"1354.5,-919.44 1354.5,-941.44 1372.5,-941.44 1372.5,-919.44 1354.5,-919.44\"/>\n",
|
|
1050
|
+
"<text text-anchor=\"start\" x=\"1359\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1051
|
+
"<polygon fill=\"none\" stroke=\"#008000\" stroke-width=\"5\" points=\"1377.5,-919.44 1377.5,-941.44 1452.5,-941.44 1452.5,-919.44 1377.5,-919.44\"/>\n",
|
|
1052
|
+
"<text text-anchor=\"start\" x=\"1382\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
1053
|
+
"<polygon fill=\"none\" stroke=\"#ff0000\" stroke-width=\"5\" points=\"1457.5,-919.44 1457.5,-941.44 1482.5,-941.44 1482.5,-919.44 1457.5,-919.44\"/>\n",
|
|
1054
|
+
"<text text-anchor=\"start\" x=\"1462\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
1055
|
+
"</g>\n",
|
|
1056
|
+
"<!-- Sequential_139860227603136->Reservation_139860228688704 -->\n",
|
|
1057
|
+
"<g id=\"edge9\" class=\"edge\">\n",
|
|
1058
|
+
"<title>Sequential_139860227603136->Reservation_139860228688704</title>\n",
|
|
1059
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1047.82,-976.93C1084.94,-971.37 1159.09,-960.25 1224.4,-950.46\"/>\n",
|
|
1060
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1225.01,-953.91 1234.38,-948.97 1223.98,-946.99 1225.01,-953.91\"/>\n",
|
|
1061
|
+
"</g>\n",
|
|
1062
|
+
"<!-- Reservation_139860227589216 -->\n",
|
|
1063
|
+
"<g id=\"node106\" class=\"node\">\n",
|
|
1064
|
+
"<title>Reservation_139860227589216</title>\n",
|
|
1065
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1695,-948.94 1503,-948.94 1503,-944.94 1499,-944.94 1499,-940.94 1503,-940.94 1503,-920.94 1499,-920.94 1499,-916.94 1503,-916.94 1503,-912.94 1695,-912.94 1695,-948.94\"/>\n",
|
|
1066
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1503,-944.94 1507,-944.94 1507,-940.94 1503,-940.94 \"/>\n",
|
|
1067
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1503,-920.94 1507,-920.94 1507,-916.94 1503,-916.94 \"/>\n",
|
|
1068
|
+
"<text text-anchor=\"start\" x=\"1505\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
1069
|
+
"<polygon fill=\"none\" stroke=\"#ff005a\" stroke-width=\"5\" points=\"1645.5,-919.44 1645.5,-941.44 1662.5,-941.44 1662.5,-919.44 1645.5,-919.44\"/>\n",
|
|
1070
|
+
"<text text-anchor=\"start\" x=\"1650\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
1071
|
+
"<polygon fill=\"none\" stroke=\"#ff0000\" stroke-width=\"5\" points=\"1667.5,-919.44 1667.5,-941.44 1692.5,-941.44 1692.5,-919.44 1667.5,-919.44\"/>\n",
|
|
1072
|
+
"<text text-anchor=\"start\" x=\"1672\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
1073
|
+
"</g>\n",
|
|
1074
|
+
"<!-- Sequential_139860227603136->Reservation_139860227589216 -->\n",
|
|
1075
|
+
"<g id=\"edge10\" class=\"edge\">\n",
|
|
1076
|
+
"<title>Sequential_139860227603136->Reservation_139860227589216</title>\n",
|
|
1077
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1049.75,-979.69C1119.33,-977.3 1317.07,-969.27 1492.91,-949.43\"/>\n",
|
|
1078
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1493.32,-952.9 1502.86,-948.29 1492.53,-945.95 1493.32,-952.9\"/>\n",
|
|
1079
|
+
"</g>\n",
|
|
1080
|
+
"<!-- Reservation_139860228125024 -->\n",
|
|
1081
|
+
"<g id=\"node123\" class=\"node\">\n",
|
|
1082
|
+
"<title>Reservation_139860228125024</title>\n",
|
|
1083
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1912.5,-948.94 1713.5,-948.94 1713.5,-944.94 1709.5,-944.94 1709.5,-940.94 1713.5,-940.94 1713.5,-920.94 1709.5,-920.94 1709.5,-916.94 1713.5,-916.94 1713.5,-912.94 1912.5,-912.94 1912.5,-948.94\"/>\n",
|
|
1084
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1713.5,-944.94 1717.5,-944.94 1717.5,-940.94 1713.5,-940.94 \"/>\n",
|
|
1085
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1713.5,-920.94 1717.5,-920.94 1717.5,-916.94 1713.5,-916.94 \"/>\n",
|
|
1086
|
+
"<text text-anchor=\"start\" x=\"1716\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
1087
|
+
"<polygon fill=\"none\" stroke=\"#ff005a\" stroke-width=\"5\" points=\"1856.5,-919.44 1856.5,-941.44 1873.5,-941.44 1873.5,-919.44 1856.5,-919.44\"/>\n",
|
|
1088
|
+
"<text text-anchor=\"start\" x=\"1861\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
1089
|
+
"<polygon fill=\"none\" stroke=\"#00ff00\" stroke-width=\"5\" points=\"1878.5,-919.44 1878.5,-941.44 1910.5,-941.44 1910.5,-919.44 1878.5,-919.44\"/>\n",
|
|
1090
|
+
"<text text-anchor=\"start\" x=\"1883\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
1091
|
+
"</g>\n",
|
|
1092
|
+
"<!-- Sequential_139860227603136->Reservation_139860228125024 -->\n",
|
|
1093
|
+
"<g id=\"edge11\" class=\"edge\">\n",
|
|
1094
|
+
"<title>Sequential_139860227603136->Reservation_139860228125024</title>\n",
|
|
1095
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1050.33,-980.38C1140.11,-979.74 1442.56,-975.73 1703.23,-949.5\"/>\n",
|
|
1096
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1703.67,-952.97 1713.27,-948.47 1702.96,-946.01 1703.67,-952.97\"/>\n",
|
|
1097
|
+
"</g>\n",
|
|
1098
|
+
"<!-- Storage_139860227667472 -->\n",
|
|
1099
|
+
"<g id=\"node141\" class=\"node\">\n",
|
|
1100
|
+
"<title>Storage_139860227667472</title>\n",
|
|
1101
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M2082.5,-946.18C2082.5,-948.04 2048.66,-949.56 2007,-949.56 1965.34,-949.56 1931.5,-948.04 1931.5,-946.18 1931.5,-946.18 1931.5,-915.7 1931.5,-915.7 1931.5,-913.83 1965.34,-912.31 2007,-912.31 2048.66,-912.31 2082.5,-913.83 2082.5,-915.7 2082.5,-915.7 2082.5,-946.18 2082.5,-946.18\"/>\n",
|
|
1102
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2082.5,-946.18C2082.5,-944.31 2048.66,-942.79 2007,-942.79 1965.34,-942.79 1931.5,-944.31 1931.5,-946.18\"/>\n",
|
|
1103
|
+
"<text text-anchor=\"start\" x=\"1934\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reuses</text>\n",
|
|
1104
|
+
"<polygon fill=\"none\" stroke=\"#0000ff\" stroke-width=\"5\" points=\"2047.5,-919.44 2047.5,-941.44 2080.5,-941.44 2080.5,-919.44 2047.5,-919.44\"/>\n",
|
|
1105
|
+
"<text text-anchor=\"start\" x=\"2052\" y=\"-927.34\" font-family=\"Arial\" font-size=\"12.00\">FFB</text>\n",
|
|
1106
|
+
"</g>\n",
|
|
1107
|
+
"<!-- Sequential_139860227603136->Storage_139860227667472 -->\n",
|
|
1108
|
+
"<g id=\"edge12\" class=\"edge\">\n",
|
|
1109
|
+
"<title>Sequential_139860227603136->Storage_139860227667472</title>\n",
|
|
1110
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1050.43,-980.18C1179.68,-978.54 1745.95,-970.25 1921,-949.5 1921.22,-949.47 1921.44,-949.45 1921.65,-949.42\"/>\n",
|
|
1111
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1922.17,-952.88 1931.61,-948.07 1921.23,-945.95 1922.17,-952.88\"/>\n",
|
|
1112
|
+
"</g>\n",
|
|
1113
|
+
"<!-- Reservation_139860229656320 -->\n",
|
|
1114
|
+
"<g id=\"node5\" class=\"node\">\n",
|
|
1115
|
+
"<title>Reservation_139860229656320</title>\n",
|
|
1116
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"192,-898.38 0,-898.38 0,-894.38 -4,-894.38 -4,-890.38 0,-890.38 0,-870.38 -4,-870.38 -4,-866.38 0,-866.38 0,-862.38 192,-862.38 192,-898.38\"/>\n",
|
|
1117
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"0,-894.38 4,-894.38 4,-890.38 0,-890.38 \"/>\n",
|
|
1118
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"0,-870.38 4,-870.38 4,-866.38 0,-866.38 \"/>\n",
|
|
1119
|
+
"<text text-anchor=\"start\" x=\"2\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
1120
|
+
"<polygon fill=\"none\" stroke=\"#ff00ff\" stroke-width=\"5\" points=\"142.5,-868.88 142.5,-890.88 171.5,-890.88 171.5,-868.88 142.5,-868.88\"/>\n",
|
|
1121
|
+
"<text text-anchor=\"start\" x=\"147\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">I_in</text>\n",
|
|
1122
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"176.5,-868.88 176.5,-890.88 189.5,-890.88 189.5,-868.88 176.5,-868.88\"/>\n",
|
|
1123
|
+
"<text text-anchor=\"start\" x=\"181\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1124
|
+
"</g>\n",
|
|
1125
|
+
"<!-- Storage_139860229664080->Reservation_139860229656320 -->\n",
|
|
1126
|
+
"<g id=\"edge13\" class=\"edge\">\n",
|
|
1127
|
+
"<title>Storage_139860229664080->Reservation_139860229656320</title>\n",
|
|
1128
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M103.6,-912.13C103.29,-910.88 102.98,-909.61 102.66,-908.33\"/>\n",
|
|
1129
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"106.04,-907.4 100.24,-898.53 99.24,-909.08 106.04,-907.4\"/>\n",
|
|
1130
|
+
"</g>\n",
|
|
1131
|
+
"<!-- Temporal_139860231966464 -->\n",
|
|
1132
|
+
"<g id=\"node6\" class=\"node\">\n",
|
|
1133
|
+
"<title>Temporal_139860231966464</title>\n",
|
|
1134
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"162,-848.38 30,-848.38 30,-812.38 162,-812.38 162,-848.38\"/>\n",
|
|
1135
|
+
"<text text-anchor=\"middle\" x=\"96\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for d in [0..4096) stride=1</text>\n",
|
|
1136
|
+
"</g>\n",
|
|
1137
|
+
"<!-- Reservation_139860229656320->Temporal_139860231966464 -->\n",
|
|
1138
|
+
"<g id=\"edge14\" class=\"edge\">\n",
|
|
1139
|
+
"<title>Reservation_139860229656320->Temporal_139860231966464</title>\n",
|
|
1140
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M96,-862.32C96,-861.04 96,-859.74 96,-858.43\"/>\n",
|
|
1141
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"99.5,-858.38 96,-848.38 92.5,-858.38 99.5,-858.38\"/>\n",
|
|
1142
|
+
"</g>\n",
|
|
1143
|
+
"<!-- Temporal_139860231977264 -->\n",
|
|
1144
|
+
"<g id=\"node7\" class=\"node\">\n",
|
|
1145
|
+
"<title>Temporal_139860231977264</title>\n",
|
|
1146
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"167,-797.81 25,-797.81 25,-761.81 167,-761.81 167,-797.81\"/>\n",
|
|
1147
|
+
"<text text-anchor=\"middle\" x=\"96\" y=\"-776.71\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..16384) stride=1</text>\n",
|
|
1148
|
+
"</g>\n",
|
|
1149
|
+
"<!-- Temporal_139860231966464->Temporal_139860231977264 -->\n",
|
|
1150
|
+
"<g id=\"edge15\" class=\"edge\">\n",
|
|
1151
|
+
"<title>Temporal_139860231966464->Temporal_139860231977264</title>\n",
|
|
1152
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M96,-812.12C96,-810.83 96,-809.51 96,-808.18\"/>\n",
|
|
1153
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"99.5,-808.01 96,-798.01 92.5,-808.02 99.5,-808.01\"/>\n",
|
|
1154
|
+
"</g>\n",
|
|
1155
|
+
"<!-- Compute_139860231974384 -->\n",
|
|
1156
|
+
"<g id=\"node8\" class=\"node\">\n",
|
|
1157
|
+
"<title>Compute_139860231974384</title>\n",
|
|
1158
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"96\" cy=\"-728.69\" rx=\"47.37\" ry=\"18\"/>\n",
|
|
1159
|
+
"<text text-anchor=\"middle\" x=\"96\" y=\"-725.59\" font-family=\"Arial\" font-size=\"12.00\">MAC computes I</text>\n",
|
|
1160
|
+
"</g>\n",
|
|
1161
|
+
"<!-- Temporal_139860231977264->Compute_139860231974384 -->\n",
|
|
1162
|
+
"<g id=\"edge16\" class=\"edge\">\n",
|
|
1163
|
+
"<title>Temporal_139860231977264->Compute_139860231974384</title>\n",
|
|
1164
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M96,-761.63C96,-760.14 96,-758.62 96,-757.07\"/>\n",
|
|
1165
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"99.5,-756.94 96,-746.94 92.5,-756.94 99.5,-756.94\"/>\n",
|
|
1166
|
+
"</g>\n",
|
|
1167
|
+
"<!-- Temporal_139860231973824 -->\n",
|
|
1168
|
+
"<g id=\"node10\" class=\"node\">\n",
|
|
1169
|
+
"<title>Temporal_139860231973824</title>\n",
|
|
1170
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"328,-898.38 210,-898.38 210,-862.38 328,-862.38 328,-898.38\"/>\n",
|
|
1171
|
+
"<text text-anchor=\"middle\" x=\"269\" y=\"-877.27\" font-family=\"Arial\" font-size=\"12.00\">for e in [0..32) stride=4</text>\n",
|
|
1172
|
+
"</g>\n",
|
|
1173
|
+
"<!-- Reservation_139860231974544->Temporal_139860231973824 -->\n",
|
|
1174
|
+
"<g id=\"edge17\" class=\"edge\">\n",
|
|
1175
|
+
"<title>Reservation_139860231974544->Temporal_139860231973824</title>\n",
|
|
1176
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M286.4,-912.68C285.45,-910.96 284.47,-909.19 283.48,-907.41\"/>\n",
|
|
1177
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"286.48,-905.62 278.56,-898.58 280.36,-909.02 286.48,-905.62\"/>\n",
|
|
1178
|
+
"</g>\n",
|
|
1179
|
+
"<!-- Temporal_139860231975264 -->\n",
|
|
1180
|
+
"<g id=\"node11\" class=\"node\">\n",
|
|
1181
|
+
"<title>Temporal_139860231975264</title>\n",
|
|
1182
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"329.5,-848.38 194.5,-848.38 194.5,-812.38 329.5,-812.38 329.5,-848.38\"/>\n",
|
|
1183
|
+
"<text text-anchor=\"middle\" x=\"262\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..64) stride=256</text>\n",
|
|
1184
|
+
"</g>\n",
|
|
1185
|
+
"<!-- Temporal_139860231973824->Temporal_139860231975264 -->\n",
|
|
1186
|
+
"<g id=\"edge18\" class=\"edge\">\n",
|
|
1187
|
+
"<title>Temporal_139860231973824->Temporal_139860231975264</title>\n",
|
|
1188
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M266.51,-862.32C266.33,-861.04 266.14,-859.74 265.95,-858.43\"/>\n",
|
|
1189
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"269.39,-857.77 264.48,-848.38 262.46,-858.78 269.39,-857.77\"/>\n",
|
|
1190
|
+
"</g>\n",
|
|
1191
|
+
"<!-- Storage_139860231975504 -->\n",
|
|
1192
|
+
"<g id=\"node12\" class=\"node\">\n",
|
|
1193
|
+
"<title>Storage_139860231975504</title>\n",
|
|
1194
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M325.5,-795.05C325.5,-796.92 295.69,-798.44 259,-798.44 222.31,-798.44 192.5,-796.92 192.5,-795.05 192.5,-795.05 192.5,-764.57 192.5,-764.57 192.5,-762.71 222.31,-761.19 259,-761.19 295.69,-761.19 325.5,-762.71 325.5,-764.57 325.5,-764.57 325.5,-795.05 325.5,-795.05\"/>\n",
|
|
1195
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M325.5,-795.05C325.5,-793.18 295.69,-791.66 259,-791.66 222.31,-791.66 192.5,-793.18 192.5,-795.05\"/>\n",
|
|
1196
|
+
"<text text-anchor=\"start\" x=\"195\" y=\"-776.21\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1197
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"305.5,-768.31 305.5,-790.31 323.5,-790.31 323.5,-768.31 305.5,-768.31\"/>\n",
|
|
1198
|
+
"<text text-anchor=\"start\" x=\"310\" y=\"-776.21\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1199
|
+
"</g>\n",
|
|
1200
|
+
"<!-- Temporal_139860231975264->Storage_139860231975504 -->\n",
|
|
1201
|
+
"<g id=\"edge19\" class=\"edge\">\n",
|
|
1202
|
+
"<title>Temporal_139860231975264->Storage_139860231975504</title>\n",
|
|
1203
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M260.93,-812.12C260.87,-811.03 260.8,-809.92 260.73,-808.79\"/>\n",
|
|
1204
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"264.21,-808.44 260.1,-798.67 257.23,-808.87 264.21,-808.44\"/>\n",
|
|
1205
|
+
"</g>\n",
|
|
1206
|
+
"<!-- Reservation_139860231976384 -->\n",
|
|
1207
|
+
"<g id=\"node13\" class=\"node\">\n",
|
|
1208
|
+
"<title>Reservation_139860231976384</title>\n",
|
|
1209
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"335,-746.69 175,-746.69 175,-742.69 171,-742.69 171,-738.69 175,-738.69 175,-718.69 171,-718.69 171,-714.69 175,-714.69 175,-710.69 335,-710.69 335,-746.69\"/>\n",
|
|
1210
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"175,-742.69 179,-742.69 179,-738.69 175,-738.69 \"/>\n",
|
|
1211
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"175,-718.69 179,-718.69 179,-714.69 175,-714.69 \"/>\n",
|
|
1212
|
+
"<text text-anchor=\"start\" x=\"177\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1213
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"314.5,-717.19 314.5,-739.19 332.5,-739.19 332.5,-717.19 314.5,-717.19\"/>\n",
|
|
1214
|
+
"<text text-anchor=\"start\" x=\"319\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1215
|
+
"</g>\n",
|
|
1216
|
+
"<!-- Storage_139860231975504->Reservation_139860231976384 -->\n",
|
|
1217
|
+
"<g id=\"edge20\" class=\"edge\">\n",
|
|
1218
|
+
"<title>Storage_139860231975504->Reservation_139860231976384</title>\n",
|
|
1219
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M257.56,-761.08C257.45,-759.78 257.34,-758.45 257.23,-757.11\"/>\n",
|
|
1220
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"260.7,-756.59 256.4,-746.9 253.73,-757.15 260.7,-756.59\"/>\n",
|
|
1221
|
+
"</g>\n",
|
|
1222
|
+
"<!-- Temporal_139860231975744 -->\n",
|
|
1223
|
+
"<g id=\"node14\" class=\"node\">\n",
|
|
1224
|
+
"<title>Temporal_139860231975744</title>\n",
|
|
1225
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"306,-695.56 174,-695.56 174,-659.56 306,-659.56 306,-695.56\"/>\n",
|
|
1226
|
+
"<text text-anchor=\"middle\" x=\"240\" y=\"-674.46\" font-family=\"Arial\" font-size=\"12.00\">for d in [0..32) stride=128</text>\n",
|
|
1227
|
+
"</g>\n",
|
|
1228
|
+
"<!-- Reservation_139860231976384->Temporal_139860231975744 -->\n",
|
|
1229
|
+
"<g id=\"edge21\" class=\"edge\">\n",
|
|
1230
|
+
"<title>Reservation_139860231976384->Temporal_139860231975744</title>\n",
|
|
1231
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M249.75,-710.51C249.25,-708.87 248.74,-707.19 248.22,-705.49\"/>\n",
|
|
1232
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"251.54,-704.36 245.27,-695.82 244.84,-706.4 251.54,-704.36\"/>\n",
|
|
1233
|
+
"</g>\n",
|
|
1234
|
+
"<!-- Storage_139860231972624 -->\n",
|
|
1235
|
+
"<g id=\"node15\" class=\"node\">\n",
|
|
1236
|
+
"<title>Storage_139860231972624</title>\n",
|
|
1237
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M312,-641.68C312,-643.54 279.73,-645.06 240,-645.06 200.27,-645.06 168,-643.54 168,-641.68 168,-641.68 168,-611.2 168,-611.2 168,-609.33 200.27,-607.81 240,-607.81 279.73,-607.81 312,-609.33 312,-611.2 312,-611.2 312,-641.68 312,-641.68\"/>\n",
|
|
1238
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M312,-641.68C312,-639.81 279.73,-638.29 240,-638.29 200.27,-638.29 168,-639.81 168,-641.68\"/>\n",
|
|
1239
|
+
"<text text-anchor=\"start\" x=\"170\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1240
|
+
"<polygon fill=\"none\" stroke=\"#f000ff\" stroke-width=\"5\" points=\"280.5,-614.94 280.5,-636.94 309.5,-636.94 309.5,-614.94 280.5,-614.94\"/>\n",
|
|
1241
|
+
"<text text-anchor=\"start\" x=\"285\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">WV</text>\n",
|
|
1242
|
+
"</g>\n",
|
|
1243
|
+
"<!-- Temporal_139860231975744->Storage_139860231972624 -->\n",
|
|
1244
|
+
"<g id=\"edge22\" class=\"edge\">\n",
|
|
1245
|
+
"<title>Temporal_139860231975744->Storage_139860231972624</title>\n",
|
|
1246
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M240,-659.38C240,-658.07 240,-656.74 240,-655.38\"/>\n",
|
|
1247
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"243.5,-655.03 240,-645.03 236.5,-655.03 243.5,-655.03\"/>\n",
|
|
1248
|
+
"</g>\n",
|
|
1249
|
+
"<!-- Reservation_139860231971424 -->\n",
|
|
1250
|
+
"<g id=\"node16\" class=\"node\">\n",
|
|
1251
|
+
"<title>Reservation_139860231971424</title>\n",
|
|
1252
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"325.5,-593.31 154.5,-593.31 154.5,-589.31 150.5,-589.31 150.5,-585.31 154.5,-585.31 154.5,-565.31 150.5,-565.31 150.5,-561.31 154.5,-561.31 154.5,-557.31 325.5,-557.31 325.5,-593.31\"/>\n",
|
|
1253
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"154.5,-589.31 158.5,-589.31 158.5,-585.31 154.5,-585.31 \"/>\n",
|
|
1254
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"154.5,-565.31 158.5,-565.31 158.5,-561.31 154.5,-561.31 \"/>\n",
|
|
1255
|
+
"<text text-anchor=\"start\" x=\"157\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1256
|
+
"<polygon fill=\"none\" stroke=\"#f000ff\" stroke-width=\"5\" points=\"294.5,-563.81 294.5,-585.81 323.5,-585.81 323.5,-563.81 294.5,-563.81\"/>\n",
|
|
1257
|
+
"<text text-anchor=\"start\" x=\"299\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">WV</text>\n",
|
|
1258
|
+
"</g>\n",
|
|
1259
|
+
"<!-- Storage_139860231972624->Reservation_139860231971424 -->\n",
|
|
1260
|
+
"<g id=\"edge23\" class=\"edge\">\n",
|
|
1261
|
+
"<title>Storage_139860231972624->Reservation_139860231971424</title>\n",
|
|
1262
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M240,-607.7C240,-606.4 240,-605.08 240,-603.74\"/>\n",
|
|
1263
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"243.5,-603.53 240,-593.53 236.5,-603.53 243.5,-603.53\"/>\n",
|
|
1264
|
+
"</g>\n",
|
|
1265
|
+
"<!-- Temporal_139860231970544 -->\n",
|
|
1266
|
+
"<g id=\"node17\" class=\"node\">\n",
|
|
1267
|
+
"<title>Temporal_139860231970544</title>\n",
|
|
1268
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"304,-542.75 176,-542.75 176,-506.75 304,-506.75 304,-542.75\"/>\n",
|
|
1269
|
+
"<text text-anchor=\"middle\" x=\"240\" y=\"-521.65\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..2) stride=128</text>\n",
|
|
1270
|
+
"</g>\n",
|
|
1271
|
+
"<!-- Reservation_139860231971424->Temporal_139860231970544 -->\n",
|
|
1272
|
+
"<g id=\"edge24\" class=\"edge\">\n",
|
|
1273
|
+
"<title>Reservation_139860231971424->Temporal_139860231970544</title>\n",
|
|
1274
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M240,-557.05C240,-555.77 240,-554.45 240,-553.12\"/>\n",
|
|
1275
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"243.5,-552.95 240,-542.95 236.5,-552.95 243.5,-552.95\"/>\n",
|
|
1276
|
+
"</g>\n",
|
|
1277
|
+
"<!-- Storage_139860231970064 -->\n",
|
|
1278
|
+
"<g id=\"node18\" class=\"node\">\n",
|
|
1279
|
+
"<title>Storage_139860231970064</title>\n",
|
|
1280
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M304,-489.43C304,-491.29 275.31,-492.81 240,-492.81 204.69,-492.81 176,-491.29 176,-489.43 176,-489.43 176,-458.95 176,-458.95 176,-457.08 204.69,-455.56 240,-455.56 275.31,-455.56 304,-457.08 304,-458.95 304,-458.95 304,-489.43 304,-489.43\"/>\n",
|
|
1281
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M304,-489.43C304,-487.56 275.31,-486.04 240,-486.04 204.69,-486.04 176,-487.56 176,-489.43\"/>\n",
|
|
1282
|
+
"<text text-anchor=\"start\" x=\"178\" y=\"-470.59\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1283
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"288.5,-462.69 288.5,-484.69 301.5,-484.69 301.5,-462.69 288.5,-462.69\"/>\n",
|
|
1284
|
+
"<text text-anchor=\"start\" x=\"293\" y=\"-470.59\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1285
|
+
"</g>\n",
|
|
1286
|
+
"<!-- Temporal_139860231970544->Storage_139860231970064 -->\n",
|
|
1287
|
+
"<g id=\"edge25\" class=\"edge\">\n",
|
|
1288
|
+
"<title>Temporal_139860231970544->Storage_139860231970064</title>\n",
|
|
1289
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M240,-506.49C240,-505.4 240,-504.29 240,-503.17\"/>\n",
|
|
1290
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"243.5,-503.05 240,-493.05 236.5,-503.05 243.5,-503.05\"/>\n",
|
|
1291
|
+
"</g>\n",
|
|
1292
|
+
"<!-- Reservation_139860231969584 -->\n",
|
|
1293
|
+
"<g id=\"node19\" class=\"node\">\n",
|
|
1294
|
+
"<title>Reservation_139860231969584</title>\n",
|
|
1295
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"317.5,-441.06 162.5,-441.06 162.5,-437.06 158.5,-437.06 158.5,-433.06 162.5,-433.06 162.5,-413.06 158.5,-413.06 158.5,-409.06 162.5,-409.06 162.5,-405.06 317.5,-405.06 317.5,-441.06\"/>\n",
|
|
1296
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"162.5,-437.06 166.5,-437.06 166.5,-433.06 162.5,-433.06 \"/>\n",
|
|
1297
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"162.5,-413.06 166.5,-413.06 166.5,-409.06 162.5,-409.06 \"/>\n",
|
|
1298
|
+
"<text text-anchor=\"start\" x=\"165\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1299
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"302.5,-411.56 302.5,-433.56 315.5,-433.56 315.5,-411.56 302.5,-411.56\"/>\n",
|
|
1300
|
+
"<text text-anchor=\"start\" x=\"307\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1301
|
+
"</g>\n",
|
|
1302
|
+
"<!-- Storage_139860231970064->Reservation_139860231969584 -->\n",
|
|
1303
|
+
"<g id=\"edge26\" class=\"edge\">\n",
|
|
1304
|
+
"<title>Storage_139860231970064->Reservation_139860231969584</title>\n",
|
|
1305
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M240,-455.45C240,-454.15 240,-452.83 240,-451.49\"/>\n",
|
|
1306
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"243.5,-451.28 240,-441.28 236.5,-451.28 243.5,-451.28\"/>\n",
|
|
1307
|
+
"</g>\n",
|
|
1308
|
+
"<!-- Temporal_139860231969264 -->\n",
|
|
1309
|
+
"<g id=\"node20\" class=\"node\">\n",
|
|
1310
|
+
"<title>Temporal_139860231969264</title>\n",
|
|
1311
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"295,-389.94 183,-389.94 183,-353.94 295,-353.94 295,-389.94\"/>\n",
|
|
1312
|
+
"<text text-anchor=\"middle\" x=\"239\" y=\"-368.84\" font-family=\"Arial\" font-size=\"12.00\">for e in [0..4) stride=1</text>\n",
|
|
1313
|
+
"</g>\n",
|
|
1314
|
+
"<!-- Reservation_139860231969584->Temporal_139860231969264 -->\n",
|
|
1315
|
+
"<g id=\"edge27\" class=\"edge\">\n",
|
|
1316
|
+
"<title>Reservation_139860231969584->Temporal_139860231969264</title>\n",
|
|
1317
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M239.65,-404.88C239.62,-403.39 239.59,-401.87 239.56,-400.32\"/>\n",
|
|
1318
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"243.05,-400.12 239.35,-390.19 236.06,-400.26 243.05,-400.12\"/>\n",
|
|
1319
|
+
"</g>\n",
|
|
1320
|
+
"<!-- Spatial_139860231968864 -->\n",
|
|
1321
|
+
"<g id=\"node21\" class=\"node\">\n",
|
|
1322
|
+
"<title>Spatial_139860231968864</title>\n",
|
|
1323
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"342,-339.38 132,-339.38 132,-303.38 342,-303.38 342,-339.38\"/>\n",
|
|
1324
|
+
"<text text-anchor=\"middle\" x=\"237\" y=\"-318.27\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_output for d in [0..128) stride=1</text>\n",
|
|
1325
|
+
"</g>\n",
|
|
1326
|
+
"<!-- Temporal_139860231969264->Spatial_139860231968864 -->\n",
|
|
1327
|
+
"<g id=\"edge28\" class=\"edge\">\n",
|
|
1328
|
+
"<title>Temporal_139860231969264->Spatial_139860231968864</title>\n",
|
|
1329
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M238.29,-353.68C238.24,-352.39 238.18,-351.07 238.13,-349.74\"/>\n",
|
|
1330
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"241.62,-349.42 237.71,-339.58 234.62,-349.71 241.62,-349.42\"/>\n",
|
|
1331
|
+
"</g>\n",
|
|
1332
|
+
"<!-- Spatial_139860233174976 -->\n",
|
|
1333
|
+
"<g id=\"node22\" class=\"node\">\n",
|
|
1334
|
+
"<title>Spatial_139860233174976</title>\n",
|
|
1335
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"331,-288.81 135,-288.81 135,-252.81 331,-252.81 331,-288.81\"/>\n",
|
|
1336
|
+
"<text text-anchor=\"middle\" x=\"233\" y=\"-267.71\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_input for h in [0..32) stride=1</text>\n",
|
|
1337
|
+
"</g>\n",
|
|
1338
|
+
"<!-- Spatial_139860231968864->Spatial_139860233174976 -->\n",
|
|
1339
|
+
"<g id=\"edge29\" class=\"edge\">\n",
|
|
1340
|
+
"<title>Spatial_139860231968864->Spatial_139860233174976</title>\n",
|
|
1341
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M235.58,-303.12C235.47,-301.83 235.36,-300.51 235.25,-299.18\"/>\n",
|
|
1342
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"238.73,-298.69 234.42,-289.01 231.75,-299.27 238.73,-298.69\"/>\n",
|
|
1343
|
+
"</g>\n",
|
|
1344
|
+
"<!-- Storage_139860233159856 -->\n",
|
|
1345
|
+
"<g id=\"node23\" class=\"node\">\n",
|
|
1346
|
+
"<title>Storage_139860233159856</title>\n",
|
|
1347
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M294.5,-234.93C294.5,-236.79 266.93,-238.31 233,-238.31 199.07,-238.31 171.5,-236.79 171.5,-234.93 171.5,-234.93 171.5,-204.45 171.5,-204.45 171.5,-202.58 199.07,-201.06 233,-201.06 266.93,-201.06 294.5,-202.58 294.5,-204.45 294.5,-204.45 294.5,-234.93 294.5,-234.93\"/>\n",
|
|
1348
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M294.5,-234.93C294.5,-233.06 266.93,-231.54 233,-231.54 199.07,-231.54 171.5,-233.06 171.5,-234.93\"/>\n",
|
|
1349
|
+
"<text text-anchor=\"start\" x=\"174\" y=\"-216.09\" font-family=\"Arial\" font-size=\"12.00\">Register reuses</text>\n",
|
|
1350
|
+
"<polygon fill=\"none\" stroke=\"#f000ff\" stroke-width=\"5\" points=\"263.5,-208.19 263.5,-230.19 292.5,-230.19 292.5,-208.19 263.5,-208.19\"/>\n",
|
|
1351
|
+
"<text text-anchor=\"start\" x=\"268\" y=\"-216.09\" font-family=\"Arial\" font-size=\"12.00\">WV</text>\n",
|
|
1352
|
+
"</g>\n",
|
|
1353
|
+
"<!-- Spatial_139860233174976->Storage_139860233159856 -->\n",
|
|
1354
|
+
"<g id=\"edge30\" class=\"edge\">\n",
|
|
1355
|
+
"<title>Spatial_139860233174976->Storage_139860233159856</title>\n",
|
|
1356
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M233,-252.63C233,-251.32 233,-249.99 233,-248.63\"/>\n",
|
|
1357
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"236.5,-248.28 233,-238.28 229.5,-248.28 236.5,-248.28\"/>\n",
|
|
1358
|
+
"</g>\n",
|
|
1359
|
+
"<!-- Reservation_139860233165776 -->\n",
|
|
1360
|
+
"<g id=\"node24\" class=\"node\">\n",
|
|
1361
|
+
"<title>Reservation_139860233165776</title>\n",
|
|
1362
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"308,-186.56 158,-186.56 158,-182.56 154,-182.56 154,-178.56 158,-178.56 158,-158.56 154,-158.56 154,-154.56 158,-154.56 158,-150.56 308,-150.56 308,-186.56\"/>\n",
|
|
1363
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"158,-182.56 162,-182.56 162,-178.56 158,-178.56 \"/>\n",
|
|
1364
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"158,-158.56 162,-158.56 162,-154.56 158,-154.56 \"/>\n",
|
|
1365
|
+
"<text text-anchor=\"start\" x=\"160\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">Register reserved for</text>\n",
|
|
1366
|
+
"<polygon fill=\"none\" stroke=\"#f000ff\" stroke-width=\"5\" points=\"276.5,-157.06 276.5,-179.06 305.5,-179.06 305.5,-157.06 276.5,-157.06\"/>\n",
|
|
1367
|
+
"<text text-anchor=\"start\" x=\"281\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">WV</text>\n",
|
|
1368
|
+
"</g>\n",
|
|
1369
|
+
"<!-- Storage_139860233159856->Reservation_139860233165776 -->\n",
|
|
1370
|
+
"<g id=\"edge31\" class=\"edge\">\n",
|
|
1371
|
+
"<title>Storage_139860233159856->Reservation_139860233165776</title>\n",
|
|
1372
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M233,-200.95C233,-199.65 233,-198.33 233,-196.99\"/>\n",
|
|
1373
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"236.5,-196.78 233,-186.78 229.5,-196.78 236.5,-196.78\"/>\n",
|
|
1374
|
+
"</g>\n",
|
|
1375
|
+
"<!-- Temporal_139860233173616 -->\n",
|
|
1376
|
+
"<g id=\"node25\" class=\"node\">\n",
|
|
1377
|
+
"<title>Temporal_139860233173616</title>\n",
|
|
1378
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"297,-136 169,-136 169,-100 297,-100 297,-136\"/>\n",
|
|
1379
|
+
"<text text-anchor=\"middle\" x=\"233\" y=\"-114.9\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..128) stride=1</text>\n",
|
|
1380
|
+
"</g>\n",
|
|
1381
|
+
"<!-- Reservation_139860233165776->Temporal_139860233173616 -->\n",
|
|
1382
|
+
"<g id=\"edge32\" class=\"edge\">\n",
|
|
1383
|
+
"<title>Reservation_139860233165776->Temporal_139860233173616</title>\n",
|
|
1384
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M233,-150.3C233,-149.02 233,-147.7 233,-146.37\"/>\n",
|
|
1385
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"236.5,-146.2 233,-136.2 229.5,-146.2 236.5,-146.2\"/>\n",
|
|
1386
|
+
"</g>\n",
|
|
1387
|
+
"<!-- Compute_139860233172736 -->\n",
|
|
1388
|
+
"<g id=\"node26\" class=\"node\">\n",
|
|
1389
|
+
"<title>Compute_139860233172736</title>\n",
|
|
1390
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"233\" cy=\"-68\" rx=\"50.3\" ry=\"18\"/>\n",
|
|
1391
|
+
"<text text-anchor=\"middle\" x=\"233\" y=\"-64.9\" font-family=\"Arial\" font-size=\"12.00\">MAC computes V</text>\n",
|
|
1392
|
+
"</g>\n",
|
|
1393
|
+
"<!-- Temporal_139860233173616->Compute_139860233172736 -->\n",
|
|
1394
|
+
"<g id=\"edge33\" class=\"edge\">\n",
|
|
1395
|
+
"<title>Temporal_139860233173616->Compute_139860233172736</title>\n",
|
|
1396
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M233,-99.94C233,-98.67 233,-97.37 233,-96.05\"/>\n",
|
|
1397
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"236.5,-96 233,-86 229.5,-96 236.5,-96\"/>\n",
|
|
1398
|
+
"</g>\n",
|
|
1399
|
+
"<!-- Reservation_139860228699824 -->\n",
|
|
1400
|
+
"<g id=\"node28\" class=\"node\">\n",
|
|
1401
|
+
"<title>Reservation_139860228699824</title>\n",
|
|
1402
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"550,-898.38 346,-898.38 346,-894.38 342,-894.38 342,-890.38 346,-890.38 346,-870.38 342,-870.38 342,-866.38 346,-866.38 346,-862.38 550,-862.38 550,-898.38\"/>\n",
|
|
1403
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"346,-894.38 350,-894.38 350,-890.38 346,-890.38 \"/>\n",
|
|
1404
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"346,-870.38 350,-870.38 350,-866.38 346,-866.38 \"/>\n",
|
|
1405
|
+
"<text text-anchor=\"start\" x=\"348\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
1406
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"488.5,-868.88 488.5,-890.88 506.5,-890.88 506.5,-868.88 488.5,-868.88\"/>\n",
|
|
1407
|
+
"<text text-anchor=\"start\" x=\"493\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1408
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"511.5,-868.88 511.5,-890.88 529.5,-890.88 529.5,-868.88 511.5,-868.88\"/>\n",
|
|
1409
|
+
"<text text-anchor=\"start\" x=\"516\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
1410
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"534.5,-868.88 534.5,-890.88 547.5,-890.88 547.5,-868.88 534.5,-868.88\"/>\n",
|
|
1411
|
+
"<text text-anchor=\"start\" x=\"539\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1412
|
+
"</g>\n",
|
|
1413
|
+
"<!-- Reservation_139860228687024->Reservation_139860228699824 -->\n",
|
|
1414
|
+
"<g id=\"edge34\" class=\"edge\">\n",
|
|
1415
|
+
"<title>Reservation_139860228687024->Reservation_139860228699824</title>\n",
|
|
1416
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M494.41,-912.68C490.38,-909.96 486.16,-907.11 481.97,-904.29\"/>\n",
|
|
1417
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"483.75,-901.27 473.5,-898.58 479.84,-907.07 483.75,-901.27\"/>\n",
|
|
1418
|
+
"</g>\n",
|
|
1419
|
+
"<!-- Temporal_139860233169696 -->\n",
|
|
1420
|
+
"<g id=\"node29\" class=\"node\">\n",
|
|
1421
|
+
"<title>Temporal_139860233169696</title>\n",
|
|
1422
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"507,-848.38 389,-848.38 389,-812.38 507,-812.38 507,-848.38\"/>\n",
|
|
1423
|
+
"<text text-anchor=\"middle\" x=\"448\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for e in [0..32) stride=4</text>\n",
|
|
1424
|
+
"</g>\n",
|
|
1425
|
+
"<!-- Reservation_139860228699824->Temporal_139860233169696 -->\n",
|
|
1426
|
+
"<g id=\"edge35\" class=\"edge\">\n",
|
|
1427
|
+
"<title>Reservation_139860228699824->Temporal_139860233169696</title>\n",
|
|
1428
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M448,-862.32C448,-861.04 448,-859.74 448,-858.43\"/>\n",
|
|
1429
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"451.5,-858.38 448,-848.38 444.5,-858.38 451.5,-858.38\"/>\n",
|
|
1430
|
+
"</g>\n",
|
|
1431
|
+
"<!-- Temporal_139860233169536 -->\n",
|
|
1432
|
+
"<g id=\"node30\" class=\"node\">\n",
|
|
1433
|
+
"<title>Temporal_139860233169536</title>\n",
|
|
1434
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"515.5,-797.81 380.5,-797.81 380.5,-761.81 515.5,-761.81 515.5,-797.81\"/>\n",
|
|
1435
|
+
"<text text-anchor=\"middle\" x=\"448\" y=\"-776.71\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..64) stride=256</text>\n",
|
|
1436
|
+
"</g>\n",
|
|
1437
|
+
"<!-- Temporal_139860233169696->Temporal_139860233169536 -->\n",
|
|
1438
|
+
"<g id=\"edge36\" class=\"edge\">\n",
|
|
1439
|
+
"<title>Temporal_139860233169696->Temporal_139860233169536</title>\n",
|
|
1440
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M448,-812.12C448,-810.83 448,-809.51 448,-808.18\"/>\n",
|
|
1441
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"451.5,-808.01 448,-798.01 444.5,-808.02 451.5,-808.01\"/>\n",
|
|
1442
|
+
"</g>\n",
|
|
1443
|
+
"<!-- Storage_139860233169296 -->\n",
|
|
1444
|
+
"<g id=\"node31\" class=\"node\">\n",
|
|
1445
|
+
"<title>Storage_139860233169296</title>\n",
|
|
1446
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M514.5,-743.93C514.5,-745.79 484.69,-747.31 448,-747.31 411.31,-747.31 381.5,-745.79 381.5,-743.93 381.5,-743.93 381.5,-713.45 381.5,-713.45 381.5,-711.58 411.31,-710.06 448,-710.06 484.69,-710.06 514.5,-711.58 514.5,-713.45 514.5,-713.45 514.5,-743.93 514.5,-743.93\"/>\n",
|
|
1447
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M514.5,-743.93C514.5,-742.06 484.69,-740.54 448,-740.54 411.31,-740.54 381.5,-742.06 381.5,-743.93\"/>\n",
|
|
1448
|
+
"<text text-anchor=\"start\" x=\"384\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1449
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"494.5,-717.19 494.5,-739.19 512.5,-739.19 512.5,-717.19 494.5,-717.19\"/>\n",
|
|
1450
|
+
"<text text-anchor=\"start\" x=\"499\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
1451
|
+
"</g>\n",
|
|
1452
|
+
"<!-- Temporal_139860233169536->Storage_139860233169296 -->\n",
|
|
1453
|
+
"<g id=\"edge37\" class=\"edge\">\n",
|
|
1454
|
+
"<title>Temporal_139860233169536->Storage_139860233169296</title>\n",
|
|
1455
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M448,-761.63C448,-760.32 448,-758.99 448,-757.63\"/>\n",
|
|
1456
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"451.5,-757.28 448,-747.28 444.5,-757.28 451.5,-757.28\"/>\n",
|
|
1457
|
+
"</g>\n",
|
|
1458
|
+
"<!-- Reservation_139860233169136 -->\n",
|
|
1459
|
+
"<g id=\"node32\" class=\"node\">\n",
|
|
1460
|
+
"<title>Reservation_139860233169136</title>\n",
|
|
1461
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"528,-695.56 368,-695.56 368,-691.56 364,-691.56 364,-687.56 368,-687.56 368,-667.56 364,-667.56 364,-663.56 368,-663.56 368,-659.56 528,-659.56 528,-695.56\"/>\n",
|
|
1462
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"368,-691.56 372,-691.56 372,-687.56 368,-687.56 \"/>\n",
|
|
1463
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"368,-667.56 372,-667.56 372,-663.56 368,-663.56 \"/>\n",
|
|
1464
|
+
"<text text-anchor=\"start\" x=\"370\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1465
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"507.5,-666.06 507.5,-688.06 525.5,-688.06 525.5,-666.06 507.5,-666.06\"/>\n",
|
|
1466
|
+
"<text text-anchor=\"start\" x=\"512\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
1467
|
+
"</g>\n",
|
|
1468
|
+
"<!-- Storage_139860233169296->Reservation_139860233169136 -->\n",
|
|
1469
|
+
"<g id=\"edge38\" class=\"edge\">\n",
|
|
1470
|
+
"<title>Storage_139860233169296->Reservation_139860233169136</title>\n",
|
|
1471
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M448,-709.95C448,-708.65 448,-707.33 448,-705.99\"/>\n",
|
|
1472
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"451.5,-705.78 448,-695.78 444.5,-705.78 451.5,-705.78\"/>\n",
|
|
1473
|
+
"</g>\n",
|
|
1474
|
+
"<!-- Temporal_139860233168896 -->\n",
|
|
1475
|
+
"<g id=\"node33\" class=\"node\">\n",
|
|
1476
|
+
"<title>Temporal_139860233168896</title>\n",
|
|
1477
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"514,-644.44 382,-644.44 382,-608.44 514,-608.44 514,-644.44\"/>\n",
|
|
1478
|
+
"<text text-anchor=\"middle\" x=\"448\" y=\"-623.34\" font-family=\"Arial\" font-size=\"12.00\">for d in [0..32) stride=128</text>\n",
|
|
1479
|
+
"</g>\n",
|
|
1480
|
+
"<!-- Reservation_139860233169136->Temporal_139860233168896 -->\n",
|
|
1481
|
+
"<g id=\"edge39\" class=\"edge\">\n",
|
|
1482
|
+
"<title>Reservation_139860233169136->Temporal_139860233168896</title>\n",
|
|
1483
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M448,-659.38C448,-657.89 448,-656.37 448,-654.82\"/>\n",
|
|
1484
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"451.5,-654.69 448,-644.69 444.5,-654.69 451.5,-654.69\"/>\n",
|
|
1485
|
+
"</g>\n",
|
|
1486
|
+
"<!-- Storage_139860233168096 -->\n",
|
|
1487
|
+
"<g id=\"node34\" class=\"node\">\n",
|
|
1488
|
+
"<title>Storage_139860233168096</title>\n",
|
|
1489
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M521,-590.55C521,-592.42 488.73,-593.94 449,-593.94 409.27,-593.94 377,-592.42 377,-590.55 377,-590.55 377,-560.07 377,-560.07 377,-558.21 409.27,-556.69 449,-556.69 488.73,-556.69 521,-558.21 521,-560.07 521,-560.07 521,-590.55 521,-590.55\"/>\n",
|
|
1490
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M521,-590.55C521,-588.68 488.73,-587.16 449,-587.16 409.27,-587.16 377,-588.68 377,-590.55\"/>\n",
|
|
1491
|
+
"<text text-anchor=\"start\" x=\"379\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1492
|
+
"<polygon fill=\"none\" stroke=\"#3c00ff\" stroke-width=\"5\" points=\"489.5,-563.81 489.5,-585.81 518.5,-585.81 518.5,-563.81 489.5,-563.81\"/>\n",
|
|
1493
|
+
"<text text-anchor=\"start\" x=\"494\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">WK</text>\n",
|
|
1494
|
+
"</g>\n",
|
|
1495
|
+
"<!-- Temporal_139860233168896->Storage_139860233168096 -->\n",
|
|
1496
|
+
"<g id=\"edge40\" class=\"edge\">\n",
|
|
1497
|
+
"<title>Temporal_139860233168896->Storage_139860233168096</title>\n",
|
|
1498
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M448.35,-608.26C448.38,-606.95 448.4,-605.61 448.43,-604.26\"/>\n",
|
|
1499
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"451.94,-603.97 448.64,-593.9 444.94,-603.83 451.94,-603.97\"/>\n",
|
|
1500
|
+
"</g>\n",
|
|
1501
|
+
"<!-- Reservation_139860233167696 -->\n",
|
|
1502
|
+
"<g id=\"node35\" class=\"node\">\n",
|
|
1503
|
+
"<title>Reservation_139860233167696</title>\n",
|
|
1504
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"534.5,-542.75 363.5,-542.75 363.5,-538.75 359.5,-538.75 359.5,-534.75 363.5,-534.75 363.5,-514.75 359.5,-514.75 359.5,-510.75 363.5,-510.75 363.5,-506.75 534.5,-506.75 534.5,-542.75\"/>\n",
|
|
1505
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"363.5,-538.75 367.5,-538.75 367.5,-534.75 363.5,-534.75 \"/>\n",
|
|
1506
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"363.5,-514.75 367.5,-514.75 367.5,-510.75 363.5,-510.75 \"/>\n",
|
|
1507
|
+
"<text text-anchor=\"start\" x=\"366\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1508
|
+
"<polygon fill=\"none\" stroke=\"#3c00ff\" stroke-width=\"5\" points=\"503.5,-513.25 503.5,-535.25 532.5,-535.25 532.5,-513.25 503.5,-513.25\"/>\n",
|
|
1509
|
+
"<text text-anchor=\"start\" x=\"508\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">WK</text>\n",
|
|
1510
|
+
"</g>\n",
|
|
1511
|
+
"<!-- Storage_139860233168096->Reservation_139860233167696 -->\n",
|
|
1512
|
+
"<g id=\"edge41\" class=\"edge\">\n",
|
|
1513
|
+
"<title>Storage_139860233168096->Reservation_139860233167696</title>\n",
|
|
1514
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M449,-556.51C449,-555.4 449,-554.27 449,-553.13\"/>\n",
|
|
1515
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"452.5,-552.91 449,-542.91 445.5,-552.91 452.5,-552.91\"/>\n",
|
|
1516
|
+
"</g>\n",
|
|
1517
|
+
"<!-- Temporal_139860233167536 -->\n",
|
|
1518
|
+
"<g id=\"node36\" class=\"node\">\n",
|
|
1519
|
+
"<title>Temporal_139860233167536</title>\n",
|
|
1520
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"516,-492.19 388,-492.19 388,-456.19 516,-456.19 516,-492.19\"/>\n",
|
|
1521
|
+
"<text text-anchor=\"middle\" x=\"452\" y=\"-471.09\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..2) stride=128</text>\n",
|
|
1522
|
+
"</g>\n",
|
|
1523
|
+
"<!-- Reservation_139860233167696->Temporal_139860233167536 -->\n",
|
|
1524
|
+
"<g id=\"edge42\" class=\"edge\">\n",
|
|
1525
|
+
"<title>Reservation_139860233167696->Temporal_139860233167536</title>\n",
|
|
1526
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M450.07,-506.49C450.15,-505.2 450.23,-503.89 450.31,-502.56\"/>\n",
|
|
1527
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"453.81,-502.59 450.94,-492.39 446.83,-502.16 453.81,-502.59\"/>\n",
|
|
1528
|
+
"</g>\n",
|
|
1529
|
+
"<!-- Storage_139860233167376 -->\n",
|
|
1530
|
+
"<g id=\"node37\" class=\"node\">\n",
|
|
1531
|
+
"<title>Storage_139860233167376</title>\n",
|
|
1532
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M517,-438.3C517,-440.17 488.31,-441.69 453,-441.69 417.69,-441.69 389,-440.17 389,-438.3 389,-438.3 389,-407.82 389,-407.82 389,-405.96 417.69,-404.44 453,-404.44 488.31,-404.44 517,-405.96 517,-407.82 517,-407.82 517,-438.3 517,-438.3\"/>\n",
|
|
1533
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M517,-438.3C517,-436.43 488.31,-434.91 453,-434.91 417.69,-434.91 389,-436.43 389,-438.3\"/>\n",
|
|
1534
|
+
"<text text-anchor=\"start\" x=\"391\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1535
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"501.5,-411.56 501.5,-433.56 514.5,-433.56 514.5,-411.56 501.5,-411.56\"/>\n",
|
|
1536
|
+
"<text text-anchor=\"start\" x=\"506\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1537
|
+
"</g>\n",
|
|
1538
|
+
"<!-- Temporal_139860233167536->Storage_139860233167376 -->\n",
|
|
1539
|
+
"<g id=\"edge43\" class=\"edge\">\n",
|
|
1540
|
+
"<title>Temporal_139860233167536->Storage_139860233167376</title>\n",
|
|
1541
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M452.35,-456.01C452.38,-454.7 452.4,-453.36 452.43,-452.01\"/>\n",
|
|
1542
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"455.94,-451.72 452.64,-441.65 448.94,-451.58 455.94,-451.72\"/>\n",
|
|
1543
|
+
"</g>\n",
|
|
1544
|
+
"<!-- Reservation_139860233167136 -->\n",
|
|
1545
|
+
"<g id=\"node38\" class=\"node\">\n",
|
|
1546
|
+
"<title>Reservation_139860233167136</title>\n",
|
|
1547
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"530.5,-389.94 375.5,-389.94 375.5,-385.94 371.5,-385.94 371.5,-381.94 375.5,-381.94 375.5,-361.94 371.5,-361.94 371.5,-357.94 375.5,-357.94 375.5,-353.94 530.5,-353.94 530.5,-389.94\"/>\n",
|
|
1548
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"375.5,-385.94 379.5,-385.94 379.5,-381.94 375.5,-381.94 \"/>\n",
|
|
1549
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"375.5,-361.94 379.5,-361.94 379.5,-357.94 375.5,-357.94 \"/>\n",
|
|
1550
|
+
"<text text-anchor=\"start\" x=\"378\" y=\"-368.34\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1551
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"515.5,-360.44 515.5,-382.44 528.5,-382.44 528.5,-360.44 515.5,-360.44\"/>\n",
|
|
1552
|
+
"<text text-anchor=\"start\" x=\"520\" y=\"-368.34\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1553
|
+
"</g>\n",
|
|
1554
|
+
"<!-- Storage_139860233167376->Reservation_139860233167136 -->\n",
|
|
1555
|
+
"<g id=\"edge44\" class=\"edge\">\n",
|
|
1556
|
+
"<title>Storage_139860233167376->Reservation_139860233167136</title>\n",
|
|
1557
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M453,-404.33C453,-403.03 453,-401.7 453,-400.36\"/>\n",
|
|
1558
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"456.5,-400.15 453,-390.15 449.5,-400.15 456.5,-400.15\"/>\n",
|
|
1559
|
+
"</g>\n",
|
|
1560
|
+
"<!-- Temporal_139860233167056 -->\n",
|
|
1561
|
+
"<g id=\"node39\" class=\"node\">\n",
|
|
1562
|
+
"<title>Temporal_139860233167056</title>\n",
|
|
1563
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"509,-339.38 397,-339.38 397,-303.38 509,-303.38 509,-339.38\"/>\n",
|
|
1564
|
+
"<text text-anchor=\"middle\" x=\"453\" y=\"-318.27\" font-family=\"Arial\" font-size=\"12.00\">for e in [0..4) stride=1</text>\n",
|
|
1565
|
+
"</g>\n",
|
|
1566
|
+
"<!-- Reservation_139860233167136->Temporal_139860233167056 -->\n",
|
|
1567
|
+
"<g id=\"edge45\" class=\"edge\">\n",
|
|
1568
|
+
"<title>Reservation_139860233167136->Temporal_139860233167056</title>\n",
|
|
1569
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M453,-353.68C453,-352.39 453,-351.07 453,-349.74\"/>\n",
|
|
1570
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"456.5,-349.58 453,-339.58 449.5,-349.58 456.5,-349.58\"/>\n",
|
|
1571
|
+
"</g>\n",
|
|
1572
|
+
"<!-- Spatial_139860233166896 -->\n",
|
|
1573
|
+
"<g id=\"node40\" class=\"node\">\n",
|
|
1574
|
+
"<title>Spatial_139860233166896</title>\n",
|
|
1575
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"559,-288.81 349,-288.81 349,-252.81 559,-252.81 559,-288.81\"/>\n",
|
|
1576
|
+
"<text text-anchor=\"middle\" x=\"454\" y=\"-267.71\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_output for d in [0..128) stride=1</text>\n",
|
|
1577
|
+
"</g>\n",
|
|
1578
|
+
"<!-- Temporal_139860233167056->Spatial_139860233166896 -->\n",
|
|
1579
|
+
"<g id=\"edge46\" class=\"edge\">\n",
|
|
1580
|
+
"<title>Temporal_139860233167056->Spatial_139860233166896</title>\n",
|
|
1581
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M453.36,-303.12C453.38,-301.83 453.41,-300.51 453.44,-299.18\"/>\n",
|
|
1582
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"456.94,-299.08 453.65,-289.01 449.94,-298.94 456.94,-299.08\"/>\n",
|
|
1583
|
+
"</g>\n",
|
|
1584
|
+
"<!-- Spatial_139860233166656 -->\n",
|
|
1585
|
+
"<g id=\"node41\" class=\"node\">\n",
|
|
1586
|
+
"<title>Spatial_139860233166656</title>\n",
|
|
1587
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"552,-237.69 356,-237.69 356,-201.69 552,-201.69 552,-237.69\"/>\n",
|
|
1588
|
+
"<text text-anchor=\"middle\" x=\"454\" y=\"-216.59\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_input for h in [0..32) stride=1</text>\n",
|
|
1589
|
+
"</g>\n",
|
|
1590
|
+
"<!-- Spatial_139860233166896->Spatial_139860233166656 -->\n",
|
|
1591
|
+
"<g id=\"edge47\" class=\"edge\">\n",
|
|
1592
|
+
"<title>Spatial_139860233166896->Spatial_139860233166656</title>\n",
|
|
1593
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M454,-252.63C454,-251.14 454,-249.62 454,-248.07\"/>\n",
|
|
1594
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"457.5,-247.94 454,-237.94 450.5,-247.94 457.5,-247.94\"/>\n",
|
|
1595
|
+
"</g>\n",
|
|
1596
|
+
"<!-- Storage_139860233166416 -->\n",
|
|
1597
|
+
"<g id=\"node42\" class=\"node\">\n",
|
|
1598
|
+
"<title>Storage_139860233166416</title>\n",
|
|
1599
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M515.5,-183.8C515.5,-185.67 487.93,-187.19 454,-187.19 420.07,-187.19 392.5,-185.67 392.5,-183.8 392.5,-183.8 392.5,-153.32 392.5,-153.32 392.5,-151.46 420.07,-149.94 454,-149.94 487.93,-149.94 515.5,-151.46 515.5,-153.32 515.5,-153.32 515.5,-183.8 515.5,-183.8\"/>\n",
|
|
1600
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M515.5,-183.8C515.5,-181.93 487.93,-180.41 454,-180.41 420.07,-180.41 392.5,-181.93 392.5,-183.8\"/>\n",
|
|
1601
|
+
"<text text-anchor=\"start\" x=\"395\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">Register reuses</text>\n",
|
|
1602
|
+
"<polygon fill=\"none\" stroke=\"#3c00ff\" stroke-width=\"5\" points=\"484.5,-157.06 484.5,-179.06 513.5,-179.06 513.5,-157.06 484.5,-157.06\"/>\n",
|
|
1603
|
+
"<text text-anchor=\"start\" x=\"489\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">WK</text>\n",
|
|
1604
|
+
"</g>\n",
|
|
1605
|
+
"<!-- Spatial_139860233166656->Storage_139860233166416 -->\n",
|
|
1606
|
+
"<g id=\"edge48\" class=\"edge\">\n",
|
|
1607
|
+
"<title>Spatial_139860233166656->Storage_139860233166416</title>\n",
|
|
1608
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M454,-201.51C454,-200.2 454,-198.86 454,-197.51\"/>\n",
|
|
1609
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"457.5,-197.15 454,-187.15 450.5,-197.15 457.5,-197.15\"/>\n",
|
|
1610
|
+
"</g>\n",
|
|
1611
|
+
"<!-- Reservation_139860233174096 -->\n",
|
|
1612
|
+
"<g id=\"node43\" class=\"node\">\n",
|
|
1613
|
+
"<title>Reservation_139860233174096</title>\n",
|
|
1614
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"529,-136 379,-136 379,-132 375,-132 375,-128 379,-128 379,-108 375,-108 375,-104 379,-104 379,-100 529,-100 529,-136\"/>\n",
|
|
1615
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"379,-132 383,-132 383,-128 379,-128 \"/>\n",
|
|
1616
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"379,-108 383,-108 383,-104 379,-104 \"/>\n",
|
|
1617
|
+
"<text text-anchor=\"start\" x=\"381\" y=\"-114.4\" font-family=\"Arial\" font-size=\"12.00\">Register reserved for</text>\n",
|
|
1618
|
+
"<polygon fill=\"none\" stroke=\"#3c00ff\" stroke-width=\"5\" points=\"497.5,-106.5 497.5,-128.5 526.5,-128.5 526.5,-106.5 497.5,-106.5\"/>\n",
|
|
1619
|
+
"<text text-anchor=\"start\" x=\"502\" y=\"-114.4\" font-family=\"Arial\" font-size=\"12.00\">WK</text>\n",
|
|
1620
|
+
"</g>\n",
|
|
1621
|
+
"<!-- Storage_139860233166416->Reservation_139860233174096 -->\n",
|
|
1622
|
+
"<g id=\"edge49\" class=\"edge\">\n",
|
|
1623
|
+
"<title>Storage_139860233166416->Reservation_139860233174096</title>\n",
|
|
1624
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M454,-149.76C454,-148.65 454,-147.52 454,-146.38\"/>\n",
|
|
1625
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"457.5,-146.16 454,-136.16 450.5,-146.16 457.5,-146.16\"/>\n",
|
|
1626
|
+
"</g>\n",
|
|
1627
|
+
"<!-- Temporal_139860233165216 -->\n",
|
|
1628
|
+
"<g id=\"node44\" class=\"node\">\n",
|
|
1629
|
+
"<title>Temporal_139860233165216</title>\n",
|
|
1630
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"518,-86 390,-86 390,-50 518,-50 518,-86\"/>\n",
|
|
1631
|
+
"<text text-anchor=\"middle\" x=\"454\" y=\"-64.9\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..128) stride=1</text>\n",
|
|
1632
|
+
"</g>\n",
|
|
1633
|
+
"<!-- Reservation_139860233174096->Temporal_139860233165216 -->\n",
|
|
1634
|
+
"<g id=\"edge50\" class=\"edge\">\n",
|
|
1635
|
+
"<title>Reservation_139860233174096->Temporal_139860233165216</title>\n",
|
|
1636
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M454,-99.94C454,-98.67 454,-97.37 454,-96.05\"/>\n",
|
|
1637
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"457.5,-96 454,-86 450.5,-96 457.5,-96\"/>\n",
|
|
1638
|
+
"</g>\n",
|
|
1639
|
+
"<!-- Compute_139860233163056 -->\n",
|
|
1640
|
+
"<g id=\"node45\" class=\"node\">\n",
|
|
1641
|
+
"<title>Compute_139860233163056</title>\n",
|
|
1642
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"454\" cy=\"-18\" rx=\"50.3\" ry=\"18\"/>\n",
|
|
1643
|
+
"<text text-anchor=\"middle\" x=\"454\" y=\"-14.9\" font-family=\"Arial\" font-size=\"12.00\">MAC computes K</text>\n",
|
|
1644
|
+
"</g>\n",
|
|
1645
|
+
"<!-- Temporal_139860233165216->Compute_139860233163056 -->\n",
|
|
1646
|
+
"<g id=\"edge51\" class=\"edge\">\n",
|
|
1647
|
+
"<title>Temporal_139860233165216->Compute_139860233163056</title>\n",
|
|
1648
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M454,-49.94C454,-48.67 454,-47.37 454,-46.05\"/>\n",
|
|
1649
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"457.5,-46 454,-36 450.5,-46 457.5,-46\"/>\n",
|
|
1650
|
+
"</g>\n",
|
|
1651
|
+
"<!-- Reservation_139860229207728 -->\n",
|
|
1652
|
+
"<g id=\"node47\" class=\"node\">\n",
|
|
1653
|
+
"<title>Reservation_139860229207728</title>\n",
|
|
1654
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"796,-898.38 568,-898.38 568,-894.38 564,-894.38 564,-890.38 568,-890.38 568,-870.38 564,-870.38 564,-866.38 568,-866.38 568,-862.38 796,-862.38 796,-898.38\"/>\n",
|
|
1655
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"568,-894.38 572,-894.38 572,-890.38 568,-890.38 \"/>\n",
|
|
1656
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"568,-870.38 572,-870.38 572,-866.38 568,-866.38 \"/>\n",
|
|
1657
|
+
"<text text-anchor=\"start\" x=\"570\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
1658
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"710.5,-868.88 710.5,-890.88 728.5,-890.88 728.5,-868.88 710.5,-868.88\"/>\n",
|
|
1659
|
+
"<text text-anchor=\"start\" x=\"715\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
1660
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"733.5,-868.88 733.5,-890.88 751.5,-890.88 751.5,-868.88 733.5,-868.88\"/>\n",
|
|
1661
|
+
"<text text-anchor=\"start\" x=\"738\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1662
|
+
"<polygon fill=\"none\" stroke=\"#ff8000\" stroke-width=\"5\" points=\"756.5,-868.88 756.5,-890.88 775.5,-890.88 775.5,-868.88 756.5,-868.88\"/>\n",
|
|
1663
|
+
"<text text-anchor=\"start\" x=\"761\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
1664
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"780.5,-868.88 780.5,-890.88 793.5,-890.88 793.5,-868.88 780.5,-868.88\"/>\n",
|
|
1665
|
+
"<text text-anchor=\"start\" x=\"785\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1666
|
+
"</g>\n",
|
|
1667
|
+
"<!-- Reservation_139860229209568->Reservation_139860229207728 -->\n",
|
|
1668
|
+
"<g id=\"edge52\" class=\"edge\">\n",
|
|
1669
|
+
"<title>Reservation_139860229209568->Reservation_139860229207728</title>\n",
|
|
1670
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M701.98,-912.68C700.89,-910.96 699.76,-909.19 698.62,-907.41\"/>\n",
|
|
1671
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"701.31,-905.12 692.98,-898.58 695.41,-908.89 701.31,-905.12\"/>\n",
|
|
1672
|
+
"</g>\n",
|
|
1673
|
+
"<!-- Temporal_139860233046368 -->\n",
|
|
1674
|
+
"<g id=\"node48\" class=\"node\">\n",
|
|
1675
|
+
"<title>Temporal_139860233046368</title>\n",
|
|
1676
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"741,-848.38 623,-848.38 623,-812.38 741,-812.38 741,-848.38\"/>\n",
|
|
1677
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for e in [0..32) stride=4</text>\n",
|
|
1678
|
+
"</g>\n",
|
|
1679
|
+
"<!-- Reservation_139860229207728->Temporal_139860233046368 -->\n",
|
|
1680
|
+
"<g id=\"edge53\" class=\"edge\">\n",
|
|
1681
|
+
"<title>Reservation_139860229207728->Temporal_139860233046368</title>\n",
|
|
1682
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-862.32C682,-861.04 682,-859.74 682,-858.43\"/>\n",
|
|
1683
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-858.38 682,-848.38 678.5,-858.38 685.5,-858.38\"/>\n",
|
|
1684
|
+
"</g>\n",
|
|
1685
|
+
"<!-- Temporal_139860233045648 -->\n",
|
|
1686
|
+
"<g id=\"node49\" class=\"node\">\n",
|
|
1687
|
+
"<title>Temporal_139860233045648</title>\n",
|
|
1688
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"749.5,-797.81 614.5,-797.81 614.5,-761.81 749.5,-761.81 749.5,-797.81\"/>\n",
|
|
1689
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-776.71\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..64) stride=256</text>\n",
|
|
1690
|
+
"</g>\n",
|
|
1691
|
+
"<!-- Temporal_139860233046368->Temporal_139860233045648 -->\n",
|
|
1692
|
+
"<g id=\"edge54\" class=\"edge\">\n",
|
|
1693
|
+
"<title>Temporal_139860233046368->Temporal_139860233045648</title>\n",
|
|
1694
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-812.12C682,-810.83 682,-809.51 682,-808.18\"/>\n",
|
|
1695
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-808.01 682,-798.01 678.5,-808.02 685.5,-808.01\"/>\n",
|
|
1696
|
+
"</g>\n",
|
|
1697
|
+
"<!-- Storage_139860233054688 -->\n",
|
|
1698
|
+
"<g id=\"node50\" class=\"node\">\n",
|
|
1699
|
+
"<title>Storage_139860233054688</title>\n",
|
|
1700
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M749,-743.93C749,-745.79 718.97,-747.31 682,-747.31 645.03,-747.31 615,-745.79 615,-743.93 615,-743.93 615,-713.45 615,-713.45 615,-711.58 645.03,-710.06 682,-710.06 718.97,-710.06 749,-711.58 749,-713.45 749,-713.45 749,-743.93 749,-743.93\"/>\n",
|
|
1701
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M749,-743.93C749,-742.06 718.97,-740.54 682,-740.54 645.03,-740.54 615,-742.06 615,-743.93\"/>\n",
|
|
1702
|
+
"<text text-anchor=\"start\" x=\"617\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1703
|
+
"<polygon fill=\"none\" stroke=\"#ff8000\" stroke-width=\"5\" points=\"727.5,-717.19 727.5,-739.19 746.5,-739.19 746.5,-717.19 727.5,-717.19\"/>\n",
|
|
1704
|
+
"<text text-anchor=\"start\" x=\"732\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
1705
|
+
"</g>\n",
|
|
1706
|
+
"<!-- Temporal_139860233045648->Storage_139860233054688 -->\n",
|
|
1707
|
+
"<g id=\"edge55\" class=\"edge\">\n",
|
|
1708
|
+
"<title>Temporal_139860233045648->Storage_139860233054688</title>\n",
|
|
1709
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-761.63C682,-760.32 682,-758.99 682,-757.63\"/>\n",
|
|
1710
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-757.28 682,-747.28 678.5,-757.28 685.5,-757.28\"/>\n",
|
|
1711
|
+
"</g>\n",
|
|
1712
|
+
"<!-- Reservation_139860233047568 -->\n",
|
|
1713
|
+
"<g id=\"node51\" class=\"node\">\n",
|
|
1714
|
+
"<title>Reservation_139860233047568</title>\n",
|
|
1715
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"762.5,-695.56 601.5,-695.56 601.5,-691.56 597.5,-691.56 597.5,-687.56 601.5,-687.56 601.5,-667.56 597.5,-667.56 597.5,-663.56 601.5,-663.56 601.5,-659.56 762.5,-659.56 762.5,-695.56\"/>\n",
|
|
1716
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"601.5,-691.56 605.5,-691.56 605.5,-687.56 601.5,-687.56 \"/>\n",
|
|
1717
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"601.5,-667.56 605.5,-667.56 605.5,-663.56 601.5,-663.56 \"/>\n",
|
|
1718
|
+
"<text text-anchor=\"start\" x=\"604\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1719
|
+
"<polygon fill=\"none\" stroke=\"#ff8000\" stroke-width=\"5\" points=\"741.5,-666.06 741.5,-688.06 760.5,-688.06 760.5,-666.06 741.5,-666.06\"/>\n",
|
|
1720
|
+
"<text text-anchor=\"start\" x=\"746\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
1721
|
+
"</g>\n",
|
|
1722
|
+
"<!-- Storage_139860233054688->Reservation_139860233047568 -->\n",
|
|
1723
|
+
"<g id=\"edge56\" class=\"edge\">\n",
|
|
1724
|
+
"<title>Storage_139860233054688->Reservation_139860233047568</title>\n",
|
|
1725
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-709.95C682,-708.65 682,-707.33 682,-705.99\"/>\n",
|
|
1726
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-705.78 682,-695.78 678.5,-705.78 685.5,-705.78\"/>\n",
|
|
1727
|
+
"</g>\n",
|
|
1728
|
+
"<!-- Temporal_139860233049008 -->\n",
|
|
1729
|
+
"<g id=\"node52\" class=\"node\">\n",
|
|
1730
|
+
"<title>Temporal_139860233049008</title>\n",
|
|
1731
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"748,-644.44 616,-644.44 616,-608.44 748,-608.44 748,-644.44\"/>\n",
|
|
1732
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-623.34\" font-family=\"Arial\" font-size=\"12.00\">for d in [0..32) stride=128</text>\n",
|
|
1733
|
+
"</g>\n",
|
|
1734
|
+
"<!-- Reservation_139860233047568->Temporal_139860233049008 -->\n",
|
|
1735
|
+
"<g id=\"edge57\" class=\"edge\">\n",
|
|
1736
|
+
"<title>Reservation_139860233047568->Temporal_139860233049008</title>\n",
|
|
1737
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-659.38C682,-657.89 682,-656.37 682,-654.82\"/>\n",
|
|
1738
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-654.69 682,-644.69 678.5,-654.69 685.5,-654.69\"/>\n",
|
|
1739
|
+
"</g>\n",
|
|
1740
|
+
"<!-- Storage_139860233060048 -->\n",
|
|
1741
|
+
"<g id=\"node53\" class=\"node\">\n",
|
|
1742
|
+
"<title>Storage_139860233060048</title>\n",
|
|
1743
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M754.5,-590.55C754.5,-592.42 722,-593.94 682,-593.94 642,-593.94 609.5,-592.42 609.5,-590.55 609.5,-590.55 609.5,-560.07 609.5,-560.07 609.5,-558.21 642,-556.69 682,-556.69 722,-556.69 754.5,-558.21 754.5,-560.07 754.5,-560.07 754.5,-590.55 754.5,-590.55\"/>\n",
|
|
1744
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M754.5,-590.55C754.5,-588.68 722,-587.16 682,-587.16 642,-587.16 609.5,-588.68 609.5,-590.55\"/>\n",
|
|
1745
|
+
"<text text-anchor=\"start\" x=\"612\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1746
|
+
"<polygon fill=\"none\" stroke=\"#9500ff\" stroke-width=\"5\" points=\"722.5,-563.81 722.5,-585.81 752.5,-585.81 752.5,-563.81 722.5,-563.81\"/>\n",
|
|
1747
|
+
"<text text-anchor=\"start\" x=\"727\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">WQ</text>\n",
|
|
1748
|
+
"</g>\n",
|
|
1749
|
+
"<!-- Temporal_139860233049008->Storage_139860233060048 -->\n",
|
|
1750
|
+
"<g id=\"edge58\" class=\"edge\">\n",
|
|
1751
|
+
"<title>Temporal_139860233049008->Storage_139860233060048</title>\n",
|
|
1752
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-608.26C682,-606.95 682,-605.61 682,-604.26\"/>\n",
|
|
1753
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-603.9 682,-593.9 678.5,-603.9 685.5,-603.9\"/>\n",
|
|
1754
|
+
"</g>\n",
|
|
1755
|
+
"<!-- Reservation_139860233059248 -->\n",
|
|
1756
|
+
"<g id=\"node54\" class=\"node\">\n",
|
|
1757
|
+
"<title>Reservation_139860233059248</title>\n",
|
|
1758
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"768,-542.75 596,-542.75 596,-538.75 592,-538.75 592,-534.75 596,-534.75 596,-514.75 592,-514.75 592,-510.75 596,-510.75 596,-506.75 768,-506.75 768,-542.75\"/>\n",
|
|
1759
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"596,-538.75 600,-538.75 600,-534.75 596,-534.75 \"/>\n",
|
|
1760
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"596,-514.75 600,-514.75 600,-510.75 596,-510.75 \"/>\n",
|
|
1761
|
+
"<text text-anchor=\"start\" x=\"598\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1762
|
+
"<polygon fill=\"none\" stroke=\"#9500ff\" stroke-width=\"5\" points=\"735.5,-513.25 735.5,-535.25 765.5,-535.25 765.5,-513.25 735.5,-513.25\"/>\n",
|
|
1763
|
+
"<text text-anchor=\"start\" x=\"740\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">WQ</text>\n",
|
|
1764
|
+
"</g>\n",
|
|
1765
|
+
"<!-- Storage_139860233060048->Reservation_139860233059248 -->\n",
|
|
1766
|
+
"<g id=\"edge59\" class=\"edge\">\n",
|
|
1767
|
+
"<title>Storage_139860233060048->Reservation_139860233059248</title>\n",
|
|
1768
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-556.51C682,-555.4 682,-554.27 682,-553.13\"/>\n",
|
|
1769
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-552.91 682,-542.91 678.5,-552.91 685.5,-552.91\"/>\n",
|
|
1770
|
+
"</g>\n",
|
|
1771
|
+
"<!-- Temporal_139860233059408 -->\n",
|
|
1772
|
+
"<g id=\"node55\" class=\"node\">\n",
|
|
1773
|
+
"<title>Temporal_139860233059408</title>\n",
|
|
1774
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"746,-492.19 618,-492.19 618,-456.19 746,-456.19 746,-492.19\"/>\n",
|
|
1775
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-471.09\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..2) stride=128</text>\n",
|
|
1776
|
+
"</g>\n",
|
|
1777
|
+
"<!-- Reservation_139860233059248->Temporal_139860233059408 -->\n",
|
|
1778
|
+
"<g id=\"edge60\" class=\"edge\">\n",
|
|
1779
|
+
"<title>Reservation_139860233059248->Temporal_139860233059408</title>\n",
|
|
1780
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-506.49C682,-505.2 682,-503.89 682,-502.56\"/>\n",
|
|
1781
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-502.39 682,-492.39 678.5,-502.39 685.5,-502.39\"/>\n",
|
|
1782
|
+
"</g>\n",
|
|
1783
|
+
"<!-- Storage_139860233059088 -->\n",
|
|
1784
|
+
"<g id=\"node56\" class=\"node\">\n",
|
|
1785
|
+
"<title>Storage_139860233059088</title>\n",
|
|
1786
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M746,-438.3C746,-440.17 717.31,-441.69 682,-441.69 646.69,-441.69 618,-440.17 618,-438.3 618,-438.3 618,-407.82 618,-407.82 618,-405.96 646.69,-404.44 682,-404.44 717.31,-404.44 746,-405.96 746,-407.82 746,-407.82 746,-438.3 746,-438.3\"/>\n",
|
|
1787
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M746,-438.3C746,-436.43 717.31,-434.91 682,-434.91 646.69,-434.91 618,-436.43 618,-438.3\"/>\n",
|
|
1788
|
+
"<text text-anchor=\"start\" x=\"620\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1789
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"730.5,-411.56 730.5,-433.56 743.5,-433.56 743.5,-411.56 730.5,-411.56\"/>\n",
|
|
1790
|
+
"<text text-anchor=\"start\" x=\"735\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1791
|
+
"</g>\n",
|
|
1792
|
+
"<!-- Temporal_139860233059408->Storage_139860233059088 -->\n",
|
|
1793
|
+
"<g id=\"edge61\" class=\"edge\">\n",
|
|
1794
|
+
"<title>Temporal_139860233059408->Storage_139860233059088</title>\n",
|
|
1795
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-456.01C682,-454.7 682,-453.36 682,-452.01\"/>\n",
|
|
1796
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-451.65 682,-441.65 678.5,-451.65 685.5,-451.65\"/>\n",
|
|
1797
|
+
"</g>\n",
|
|
1798
|
+
"<!-- Reservation_139860233060208 -->\n",
|
|
1799
|
+
"<g id=\"node57\" class=\"node\">\n",
|
|
1800
|
+
"<title>Reservation_139860233060208</title>\n",
|
|
1801
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"759.5,-389.94 604.5,-389.94 604.5,-385.94 600.5,-385.94 600.5,-381.94 604.5,-381.94 604.5,-361.94 600.5,-361.94 600.5,-357.94 604.5,-357.94 604.5,-353.94 759.5,-353.94 759.5,-389.94\"/>\n",
|
|
1802
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"604.5,-385.94 608.5,-385.94 608.5,-381.94 604.5,-381.94 \"/>\n",
|
|
1803
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"604.5,-361.94 608.5,-361.94 608.5,-357.94 604.5,-357.94 \"/>\n",
|
|
1804
|
+
"<text text-anchor=\"start\" x=\"607\" y=\"-368.34\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1805
|
+
"<polygon fill=\"none\" stroke=\"#ffff00\" stroke-width=\"5\" points=\"744.5,-360.44 744.5,-382.44 757.5,-382.44 757.5,-360.44 744.5,-360.44\"/>\n",
|
|
1806
|
+
"<text text-anchor=\"start\" x=\"749\" y=\"-368.34\" font-family=\"Arial\" font-size=\"12.00\">I</text>\n",
|
|
1807
|
+
"</g>\n",
|
|
1808
|
+
"<!-- Storage_139860233059088->Reservation_139860233060208 -->\n",
|
|
1809
|
+
"<g id=\"edge62\" class=\"edge\">\n",
|
|
1810
|
+
"<title>Storage_139860233059088->Reservation_139860233060208</title>\n",
|
|
1811
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-404.33C682,-403.03 682,-401.7 682,-400.36\"/>\n",
|
|
1812
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-400.15 682,-390.15 678.5,-400.15 685.5,-400.15\"/>\n",
|
|
1813
|
+
"</g>\n",
|
|
1814
|
+
"<!-- Temporal_139860233058848 -->\n",
|
|
1815
|
+
"<g id=\"node58\" class=\"node\">\n",
|
|
1816
|
+
"<title>Temporal_139860233058848</title>\n",
|
|
1817
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"738,-339.38 626,-339.38 626,-303.38 738,-303.38 738,-339.38\"/>\n",
|
|
1818
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-318.27\" font-family=\"Arial\" font-size=\"12.00\">for e in [0..4) stride=1</text>\n",
|
|
1819
|
+
"</g>\n",
|
|
1820
|
+
"<!-- Reservation_139860233060208->Temporal_139860233058848 -->\n",
|
|
1821
|
+
"<g id=\"edge63\" class=\"edge\">\n",
|
|
1822
|
+
"<title>Reservation_139860233060208->Temporal_139860233058848</title>\n",
|
|
1823
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-353.68C682,-352.39 682,-351.07 682,-349.74\"/>\n",
|
|
1824
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-349.58 682,-339.58 678.5,-349.58 685.5,-349.58\"/>\n",
|
|
1825
|
+
"</g>\n",
|
|
1826
|
+
"<!-- Spatial_139860233056848 -->\n",
|
|
1827
|
+
"<g id=\"node59\" class=\"node\">\n",
|
|
1828
|
+
"<title>Spatial_139860233056848</title>\n",
|
|
1829
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"787,-288.81 577,-288.81 577,-252.81 787,-252.81 787,-288.81\"/>\n",
|
|
1830
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-267.71\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_output for d in [0..128) stride=1</text>\n",
|
|
1831
|
+
"</g>\n",
|
|
1832
|
+
"<!-- Temporal_139860233058848->Spatial_139860233056848 -->\n",
|
|
1833
|
+
"<g id=\"edge64\" class=\"edge\">\n",
|
|
1834
|
+
"<title>Temporal_139860233058848->Spatial_139860233056848</title>\n",
|
|
1835
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-303.12C682,-301.83 682,-300.51 682,-299.18\"/>\n",
|
|
1836
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-299.01 682,-289.01 678.5,-299.02 685.5,-299.01\"/>\n",
|
|
1837
|
+
"</g>\n",
|
|
1838
|
+
"<!-- Spatial_139860233057168 -->\n",
|
|
1839
|
+
"<g id=\"node60\" class=\"node\">\n",
|
|
1840
|
+
"<title>Spatial_139860233057168</title>\n",
|
|
1841
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"780,-237.69 584,-237.69 584,-201.69 780,-201.69 780,-237.69\"/>\n",
|
|
1842
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-216.59\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_input for h in [0..32) stride=1</text>\n",
|
|
1843
|
+
"</g>\n",
|
|
1844
|
+
"<!-- Spatial_139860233056848->Spatial_139860233057168 -->\n",
|
|
1845
|
+
"<g id=\"edge65\" class=\"edge\">\n",
|
|
1846
|
+
"<title>Spatial_139860233056848->Spatial_139860233057168</title>\n",
|
|
1847
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-252.63C682,-251.14 682,-249.62 682,-248.07\"/>\n",
|
|
1848
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-247.94 682,-237.94 678.5,-247.94 685.5,-247.94\"/>\n",
|
|
1849
|
+
"</g>\n",
|
|
1850
|
+
"<!-- Storage_139860233045568 -->\n",
|
|
1851
|
+
"<g id=\"node61\" class=\"node\">\n",
|
|
1852
|
+
"<title>Storage_139860233045568</title>\n",
|
|
1853
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M744,-183.8C744,-185.67 716.21,-187.19 682,-187.19 647.79,-187.19 620,-185.67 620,-183.8 620,-183.8 620,-153.32 620,-153.32 620,-151.46 647.79,-149.94 682,-149.94 716.21,-149.94 744,-151.46 744,-153.32 744,-153.32 744,-183.8 744,-183.8\"/>\n",
|
|
1854
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M744,-183.8C744,-181.93 716.21,-180.41 682,-180.41 647.79,-180.41 620,-181.93 620,-183.8\"/>\n",
|
|
1855
|
+
"<text text-anchor=\"start\" x=\"622\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">Register reuses</text>\n",
|
|
1856
|
+
"<polygon fill=\"none\" stroke=\"#9500ff\" stroke-width=\"5\" points=\"711.5,-157.06 711.5,-179.06 741.5,-179.06 741.5,-157.06 711.5,-157.06\"/>\n",
|
|
1857
|
+
"<text text-anchor=\"start\" x=\"716\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">WQ</text>\n",
|
|
1858
|
+
"</g>\n",
|
|
1859
|
+
"<!-- Spatial_139860233057168->Storage_139860233045568 -->\n",
|
|
1860
|
+
"<g id=\"edge66\" class=\"edge\">\n",
|
|
1861
|
+
"<title>Spatial_139860233057168->Storage_139860233045568</title>\n",
|
|
1862
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-201.51C682,-200.2 682,-198.86 682,-197.51\"/>\n",
|
|
1863
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-197.15 682,-187.15 678.5,-197.15 685.5,-197.15\"/>\n",
|
|
1864
|
+
"</g>\n",
|
|
1865
|
+
"<!-- Reservation_139860228408176 -->\n",
|
|
1866
|
+
"<g id=\"node62\" class=\"node\">\n",
|
|
1867
|
+
"<title>Reservation_139860228408176</title>\n",
|
|
1868
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"757.5,-136 606.5,-136 606.5,-132 602.5,-132 602.5,-128 606.5,-128 606.5,-108 602.5,-108 602.5,-104 606.5,-104 606.5,-100 757.5,-100 757.5,-136\"/>\n",
|
|
1869
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"606.5,-132 610.5,-132 610.5,-128 606.5,-128 \"/>\n",
|
|
1870
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"606.5,-108 610.5,-108 610.5,-104 606.5,-104 \"/>\n",
|
|
1871
|
+
"<text text-anchor=\"start\" x=\"609\" y=\"-114.4\" font-family=\"Arial\" font-size=\"12.00\">Register reserved for</text>\n",
|
|
1872
|
+
"<polygon fill=\"none\" stroke=\"#9500ff\" stroke-width=\"5\" points=\"725.5,-106.5 725.5,-128.5 755.5,-128.5 755.5,-106.5 725.5,-106.5\"/>\n",
|
|
1873
|
+
"<text text-anchor=\"start\" x=\"730\" y=\"-114.4\" font-family=\"Arial\" font-size=\"12.00\">WQ</text>\n",
|
|
1874
|
+
"</g>\n",
|
|
1875
|
+
"<!-- Storage_139860233045568->Reservation_139860228408176 -->\n",
|
|
1876
|
+
"<g id=\"edge67\" class=\"edge\">\n",
|
|
1877
|
+
"<title>Storage_139860233045568->Reservation_139860228408176</title>\n",
|
|
1878
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-149.76C682,-148.65 682,-147.52 682,-146.38\"/>\n",
|
|
1879
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-146.16 682,-136.16 678.5,-146.16 685.5,-146.16\"/>\n",
|
|
1880
|
+
"</g>\n",
|
|
1881
|
+
"<!-- Temporal_139860228412176 -->\n",
|
|
1882
|
+
"<g id=\"node63\" class=\"node\">\n",
|
|
1883
|
+
"<title>Temporal_139860228412176</title>\n",
|
|
1884
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"746,-86 618,-86 618,-50 746,-50 746,-86\"/>\n",
|
|
1885
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-64.9\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..128) stride=1</text>\n",
|
|
1886
|
+
"</g>\n",
|
|
1887
|
+
"<!-- Reservation_139860228408176->Temporal_139860228412176 -->\n",
|
|
1888
|
+
"<g id=\"edge68\" class=\"edge\">\n",
|
|
1889
|
+
"<title>Reservation_139860228408176->Temporal_139860228412176</title>\n",
|
|
1890
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-99.94C682,-98.67 682,-97.37 682,-96.05\"/>\n",
|
|
1891
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-96 682,-86 678.5,-96 685.5,-96\"/>\n",
|
|
1892
|
+
"</g>\n",
|
|
1893
|
+
"<!-- Compute_139860228414016 -->\n",
|
|
1894
|
+
"<g id=\"node64\" class=\"node\">\n",
|
|
1895
|
+
"<title>Compute_139860228414016</title>\n",
|
|
1896
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"682\" cy=\"-18\" rx=\"50.3\" ry=\"18\"/>\n",
|
|
1897
|
+
"<text text-anchor=\"middle\" x=\"682\" y=\"-14.9\" font-family=\"Arial\" font-size=\"12.00\">MAC computes Q</text>\n",
|
|
1898
|
+
"</g>\n",
|
|
1899
|
+
"<!-- Temporal_139860228412176->Compute_139860228414016 -->\n",
|
|
1900
|
+
"<g id=\"edge69\" class=\"edge\">\n",
|
|
1901
|
+
"<title>Temporal_139860228412176->Compute_139860228414016</title>\n",
|
|
1902
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M682,-49.94C682,-48.67 682,-47.37 682,-46.05\"/>\n",
|
|
1903
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"685.5,-46 682,-36 678.5,-46 685.5,-46\"/>\n",
|
|
1904
|
+
"</g>\n",
|
|
1905
|
+
"<!-- Reservation_139860228421856 -->\n",
|
|
1906
|
+
"<g id=\"node66\" class=\"node\">\n",
|
|
1907
|
+
"<title>Reservation_139860228421856</title>\n",
|
|
1908
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1056,-898.38 814,-898.38 814,-894.38 810,-894.38 810,-890.38 814,-890.38 814,-870.38 810,-870.38 810,-866.38 814,-866.38 814,-862.38 1056,-862.38 1056,-898.38\"/>\n",
|
|
1909
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"814,-894.38 818,-894.38 818,-890.38 814,-890.38 \"/>\n",
|
|
1910
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"814,-870.38 818,-870.38 818,-866.38 814,-866.38 \"/>\n",
|
|
1911
|
+
"<text text-anchor=\"start\" x=\"816\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
1912
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"956.5,-868.88 956.5,-890.88 974.5,-890.88 974.5,-868.88 956.5,-868.88\"/>\n",
|
|
1913
|
+
"<text text-anchor=\"start\" x=\"961\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
1914
|
+
"<polygon fill=\"none\" stroke=\"#8000ff\" stroke-width=\"5\" points=\"979.5,-868.88 979.5,-890.88 1006.5,-890.88 1006.5,-868.88 979.5,-868.88\"/>\n",
|
|
1915
|
+
"<text text-anchor=\"start\" x=\"984\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
1916
|
+
"<polygon fill=\"none\" stroke=\"#ff8000\" stroke-width=\"5\" points=\"1011.5,-868.88 1011.5,-890.88 1030.5,-890.88 1030.5,-868.88 1011.5,-868.88\"/>\n",
|
|
1917
|
+
"<text text-anchor=\"start\" x=\"1016\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
1918
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"1035.5,-868.88 1035.5,-890.88 1053.5,-890.88 1053.5,-868.88 1035.5,-868.88\"/>\n",
|
|
1919
|
+
"<text text-anchor=\"start\" x=\"1040\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
1920
|
+
"</g>\n",
|
|
1921
|
+
"<!-- Reservation_139860233048848->Reservation_139860228421856 -->\n",
|
|
1922
|
+
"<g id=\"edge70\" class=\"edge\">\n",
|
|
1923
|
+
"<title>Reservation_139860233048848->Reservation_139860228421856</title>\n",
|
|
1924
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-912.68C935,-911.39 935,-910.07 935,-908.74\"/>\n",
|
|
1925
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-908.58 935,-898.58 931.5,-908.58 938.5,-908.58\"/>\n",
|
|
1926
|
+
"</g>\n",
|
|
1927
|
+
"<!-- Temporal_139860228419616 -->\n",
|
|
1928
|
+
"<g id=\"node67\" class=\"node\">\n",
|
|
1929
|
+
"<title>Temporal_139860228419616</title>\n",
|
|
1930
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"994,-848.38 876,-848.38 876,-812.38 994,-812.38 994,-848.38\"/>\n",
|
|
1931
|
+
"<text text-anchor=\"middle\" x=\"935\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for h in [0..32) stride=1</text>\n",
|
|
1932
|
+
"</g>\n",
|
|
1933
|
+
"<!-- Reservation_139860228421856->Temporal_139860228419616 -->\n",
|
|
1934
|
+
"<g id=\"edge71\" class=\"edge\">\n",
|
|
1935
|
+
"<title>Reservation_139860228421856->Temporal_139860228419616</title>\n",
|
|
1936
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-862.32C935,-861.04 935,-859.74 935,-858.43\"/>\n",
|
|
1937
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-858.38 935,-848.38 931.5,-858.38 938.5,-858.38\"/>\n",
|
|
1938
|
+
"</g>\n",
|
|
1939
|
+
"<!-- Temporal_139860228418176 -->\n",
|
|
1940
|
+
"<g id=\"node68\" class=\"node\">\n",
|
|
1941
|
+
"<title>Temporal_139860228418176</title>\n",
|
|
1942
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1002.5,-797.81 867.5,-797.81 867.5,-761.81 1002.5,-761.81 1002.5,-797.81\"/>\n",
|
|
1943
|
+
"<text text-anchor=\"middle\" x=\"935\" y=\"-776.71\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..64) stride=256</text>\n",
|
|
1944
|
+
"</g>\n",
|
|
1945
|
+
"<!-- Temporal_139860228419616->Temporal_139860228418176 -->\n",
|
|
1946
|
+
"<g id=\"edge72\" class=\"edge\">\n",
|
|
1947
|
+
"<title>Temporal_139860228419616->Temporal_139860228418176</title>\n",
|
|
1948
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-812.12C935,-810.83 935,-809.51 935,-808.18\"/>\n",
|
|
1949
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-808.01 935,-798.01 931.5,-808.02 938.5,-808.01\"/>\n",
|
|
1950
|
+
"</g>\n",
|
|
1951
|
+
"<!-- Storage_139860228417936 -->\n",
|
|
1952
|
+
"<g id=\"node69\" class=\"node\">\n",
|
|
1953
|
+
"<title>Storage_139860228417936</title>\n",
|
|
1954
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1002,-743.93C1002,-745.79 971.97,-747.31 935,-747.31 898.03,-747.31 868,-745.79 868,-743.93 868,-743.93 868,-713.45 868,-713.45 868,-711.58 898.03,-710.06 935,-710.06 971.97,-710.06 1002,-711.58 1002,-713.45 1002,-713.45 1002,-743.93 1002,-743.93\"/>\n",
|
|
1955
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1002,-743.93C1002,-742.06 971.97,-740.54 935,-740.54 898.03,-740.54 868,-742.06 868,-743.93\"/>\n",
|
|
1956
|
+
"<text text-anchor=\"start\" x=\"870\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
1957
|
+
"<polygon fill=\"none\" stroke=\"#ff8000\" stroke-width=\"5\" points=\"980.5,-717.19 980.5,-739.19 999.5,-739.19 999.5,-717.19 980.5,-717.19\"/>\n",
|
|
1958
|
+
"<text text-anchor=\"start\" x=\"985\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
1959
|
+
"</g>\n",
|
|
1960
|
+
"<!-- Temporal_139860228418176->Storage_139860228417936 -->\n",
|
|
1961
|
+
"<g id=\"edge73\" class=\"edge\">\n",
|
|
1962
|
+
"<title>Temporal_139860228418176->Storage_139860228417936</title>\n",
|
|
1963
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-761.63C935,-760.32 935,-758.99 935,-757.63\"/>\n",
|
|
1964
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-757.28 935,-747.28 931.5,-757.28 938.5,-757.28\"/>\n",
|
|
1965
|
+
"</g>\n",
|
|
1966
|
+
"<!-- Reservation_139860228417296 -->\n",
|
|
1967
|
+
"<g id=\"node70\" class=\"node\">\n",
|
|
1968
|
+
"<title>Reservation_139860228417296</title>\n",
|
|
1969
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1015.5,-695.56 854.5,-695.56 854.5,-691.56 850.5,-691.56 850.5,-687.56 854.5,-687.56 854.5,-667.56 850.5,-667.56 850.5,-663.56 854.5,-663.56 854.5,-659.56 1015.5,-659.56 1015.5,-695.56\"/>\n",
|
|
1970
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"854.5,-691.56 858.5,-691.56 858.5,-687.56 854.5,-687.56 \"/>\n",
|
|
1971
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"854.5,-667.56 858.5,-667.56 858.5,-663.56 854.5,-663.56 \"/>\n",
|
|
1972
|
+
"<text text-anchor=\"start\" x=\"857\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
1973
|
+
"<polygon fill=\"none\" stroke=\"#ff8000\" stroke-width=\"5\" points=\"994.5,-666.06 994.5,-688.06 1013.5,-688.06 1013.5,-666.06 994.5,-666.06\"/>\n",
|
|
1974
|
+
"<text text-anchor=\"start\" x=\"999\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">Q</text>\n",
|
|
1975
|
+
"</g>\n",
|
|
1976
|
+
"<!-- Storage_139860228417936->Reservation_139860228417296 -->\n",
|
|
1977
|
+
"<g id=\"edge74\" class=\"edge\">\n",
|
|
1978
|
+
"<title>Storage_139860228417936->Reservation_139860228417296</title>\n",
|
|
1979
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-709.95C935,-708.65 935,-707.33 935,-705.99\"/>\n",
|
|
1980
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-705.78 935,-695.78 931.5,-705.78 938.5,-705.78\"/>\n",
|
|
1981
|
+
"</g>\n",
|
|
1982
|
+
"<!-- Temporal_139860228415936 -->\n",
|
|
1983
|
+
"<g id=\"node71\" class=\"node\">\n",
|
|
1984
|
+
"<title>Temporal_139860228415936</title>\n",
|
|
1985
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1001,-644.44 869,-644.44 869,-608.44 1001,-608.44 1001,-644.44\"/>\n",
|
|
1986
|
+
"<text text-anchor=\"middle\" x=\"935\" y=\"-623.34\" font-family=\"Arial\" font-size=\"12.00\">for p in [0..512) stride=32</text>\n",
|
|
1987
|
+
"</g>\n",
|
|
1988
|
+
"<!-- Reservation_139860228417296->Temporal_139860228415936 -->\n",
|
|
1989
|
+
"<g id=\"edge75\" class=\"edge\">\n",
|
|
1990
|
+
"<title>Reservation_139860228417296->Temporal_139860228415936</title>\n",
|
|
1991
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-659.38C935,-657.89 935,-656.37 935,-654.82\"/>\n",
|
|
1992
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-654.69 935,-644.69 931.5,-654.69 938.5,-654.69\"/>\n",
|
|
1993
|
+
"</g>\n",
|
|
1994
|
+
"<!-- Storage_139860228416576 -->\n",
|
|
1995
|
+
"<g id=\"node72\" class=\"node\">\n",
|
|
1996
|
+
"<title>Storage_139860228416576</title>\n",
|
|
1997
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1017.5,-590.55C1017.5,-592.42 980.52,-593.94 935,-593.94 889.48,-593.94 852.5,-592.42 852.5,-590.55 852.5,-590.55 852.5,-560.07 852.5,-560.07 852.5,-558.21 889.48,-556.69 935,-556.69 980.52,-556.69 1017.5,-558.21 1017.5,-560.07 1017.5,-560.07 1017.5,-590.55 1017.5,-590.55\"/>\n",
|
|
1998
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1017.5,-590.55C1017.5,-588.68 980.52,-587.16 935,-587.16 889.48,-587.16 852.5,-588.68 852.5,-590.55\"/>\n",
|
|
1999
|
+
"<text text-anchor=\"start\" x=\"855\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2000
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"965.5,-563.81 965.5,-585.81 983.5,-585.81 983.5,-563.81 965.5,-563.81\"/>\n",
|
|
2001
|
+
"<text text-anchor=\"start\" x=\"970\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
2002
|
+
"<polygon fill=\"none\" stroke=\"#8000ff\" stroke-width=\"5\" points=\"988.5,-563.81 988.5,-585.81 1015.5,-585.81 1015.5,-563.81 988.5,-563.81\"/>\n",
|
|
2003
|
+
"<text text-anchor=\"start\" x=\"993\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
2004
|
+
"</g>\n",
|
|
2005
|
+
"<!-- Temporal_139860228415936->Storage_139860228416576 -->\n",
|
|
2006
|
+
"<g id=\"edge76\" class=\"edge\">\n",
|
|
2007
|
+
"<title>Temporal_139860228415936->Storage_139860228416576</title>\n",
|
|
2008
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-608.26C935,-606.95 935,-605.61 935,-604.26\"/>\n",
|
|
2009
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-603.9 935,-593.9 931.5,-603.9 938.5,-603.9\"/>\n",
|
|
2010
|
+
"</g>\n",
|
|
2011
|
+
"<!-- Reservation_139860228414576 -->\n",
|
|
2012
|
+
"<g id=\"node73\" class=\"node\">\n",
|
|
2013
|
+
"<title>Reservation_139860228414576</title>\n",
|
|
2014
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1031,-542.75 839,-542.75 839,-538.75 835,-538.75 835,-534.75 839,-534.75 839,-514.75 835,-514.75 835,-510.75 839,-510.75 839,-506.75 1031,-506.75 1031,-542.75\"/>\n",
|
|
2015
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"839,-538.75 843,-538.75 843,-534.75 839,-534.75 \"/>\n",
|
|
2016
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"839,-514.75 843,-514.75 843,-510.75 839,-510.75 \"/>\n",
|
|
2017
|
+
"<text text-anchor=\"start\" x=\"841\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2018
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"978.5,-513.25 978.5,-535.25 996.5,-535.25 996.5,-513.25 978.5,-513.25\"/>\n",
|
|
2019
|
+
"<text text-anchor=\"start\" x=\"983\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
2020
|
+
"<polygon fill=\"none\" stroke=\"#8000ff\" stroke-width=\"5\" points=\"1001.5,-513.25 1001.5,-535.25 1028.5,-535.25 1028.5,-513.25 1001.5,-513.25\"/>\n",
|
|
2021
|
+
"<text text-anchor=\"start\" x=\"1006\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
2022
|
+
"</g>\n",
|
|
2023
|
+
"<!-- Storage_139860228416576->Reservation_139860228414576 -->\n",
|
|
2024
|
+
"<g id=\"edge77\" class=\"edge\">\n",
|
|
2025
|
+
"<title>Storage_139860228416576->Reservation_139860228414576</title>\n",
|
|
2026
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-556.51C935,-555.4 935,-554.27 935,-553.13\"/>\n",
|
|
2027
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-552.91 935,-542.91 931.5,-552.91 938.5,-552.91\"/>\n",
|
|
2028
|
+
"</g>\n",
|
|
2029
|
+
"<!-- Spatial_139860228412016 -->\n",
|
|
2030
|
+
"<g id=\"node74\" class=\"node\">\n",
|
|
2031
|
+
"<title>Spatial_139860228412016</title>\n",
|
|
2032
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1040,-492.19 830,-492.19 830,-456.19 1040,-456.19 1040,-492.19\"/>\n",
|
|
2033
|
+
"<text text-anchor=\"middle\" x=\"935\" y=\"-471.09\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_output for e in [0..128) stride=1</text>\n",
|
|
2034
|
+
"</g>\n",
|
|
2035
|
+
"<!-- Reservation_139860228414576->Spatial_139860228412016 -->\n",
|
|
2036
|
+
"<g id=\"edge78\" class=\"edge\">\n",
|
|
2037
|
+
"<title>Reservation_139860228414576->Spatial_139860228412016</title>\n",
|
|
2038
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-506.49C935,-505.2 935,-503.89 935,-502.56\"/>\n",
|
|
2039
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-502.39 935,-492.39 931.5,-502.39 938.5,-502.39\"/>\n",
|
|
2040
|
+
"</g>\n",
|
|
2041
|
+
"<!-- Spatial_139860228413536 -->\n",
|
|
2042
|
+
"<g id=\"node75\" class=\"node\">\n",
|
|
2043
|
+
"<title>Spatial_139860228413536</title>\n",
|
|
2044
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1033,-441.06 837,-441.06 837,-405.06 1033,-405.06 1033,-441.06\"/>\n",
|
|
2045
|
+
"<text text-anchor=\"middle\" x=\"935\" y=\"-419.96\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_input for p in [0..32) stride=1</text>\n",
|
|
2046
|
+
"</g>\n",
|
|
2047
|
+
"<!-- Spatial_139860228412016->Spatial_139860228413536 -->\n",
|
|
2048
|
+
"<g id=\"edge79\" class=\"edge\">\n",
|
|
2049
|
+
"<title>Spatial_139860228412016->Spatial_139860228413536</title>\n",
|
|
2050
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-456.01C935,-454.52 935,-452.99 935,-451.45\"/>\n",
|
|
2051
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-451.32 935,-441.32 931.5,-451.32 938.5,-451.32\"/>\n",
|
|
2052
|
+
"</g>\n",
|
|
2053
|
+
"<!-- Storage_139860228410176 -->\n",
|
|
2054
|
+
"<g id=\"node76\" class=\"node\">\n",
|
|
2055
|
+
"<title>Storage_139860228410176</title>\n",
|
|
2056
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M991,-387.18C991,-389.04 965.9,-390.56 935,-390.56 904.1,-390.56 879,-389.04 879,-387.18 879,-387.18 879,-356.7 879,-356.7 879,-354.83 904.1,-353.31 935,-353.31 965.9,-353.31 991,-354.83 991,-356.7 991,-356.7 991,-387.18 991,-387.18\"/>\n",
|
|
2057
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M991,-387.18C991,-385.31 965.9,-383.79 935,-383.79 904.1,-383.79 879,-385.31 879,-387.18\"/>\n",
|
|
2058
|
+
"<text text-anchor=\"start\" x=\"881\" y=\"-368.34\" font-family=\"Arial\" font-size=\"12.00\">Register reuses</text>\n",
|
|
2059
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"970.5,-360.44 970.5,-382.44 988.5,-382.44 988.5,-360.44 970.5,-360.44\"/>\n",
|
|
2060
|
+
"<text text-anchor=\"start\" x=\"975\" y=\"-368.34\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
2061
|
+
"</g>\n",
|
|
2062
|
+
"<!-- Spatial_139860228413536->Storage_139860228410176 -->\n",
|
|
2063
|
+
"<g id=\"edge80\" class=\"edge\">\n",
|
|
2064
|
+
"<title>Spatial_139860228413536->Storage_139860228410176</title>\n",
|
|
2065
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-404.88C935,-403.57 935,-402.24 935,-400.88\"/>\n",
|
|
2066
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-400.53 935,-390.53 931.5,-400.53 938.5,-400.53\"/>\n",
|
|
2067
|
+
"</g>\n",
|
|
2068
|
+
"<!-- Reservation_139860228409776 -->\n",
|
|
2069
|
+
"<g id=\"node77\" class=\"node\">\n",
|
|
2070
|
+
"<title>Reservation_139860228409776</title>\n",
|
|
2071
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1004.5,-339.38 865.5,-339.38 865.5,-335.38 861.5,-335.38 861.5,-331.38 865.5,-331.38 865.5,-311.38 861.5,-311.38 861.5,-307.38 865.5,-307.38 865.5,-303.38 1004.5,-303.38 1004.5,-339.38\"/>\n",
|
|
2072
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"865.5,-335.38 869.5,-335.38 869.5,-331.38 865.5,-331.38 \"/>\n",
|
|
2073
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"865.5,-311.38 869.5,-311.38 869.5,-307.38 865.5,-307.38 \"/>\n",
|
|
2074
|
+
"<text text-anchor=\"start\" x=\"868\" y=\"-317.77\" font-family=\"Arial\" font-size=\"12.00\">Register reserved for</text>\n",
|
|
2075
|
+
"<polygon fill=\"none\" stroke=\"#00ffff\" stroke-width=\"5\" points=\"984.5,-309.88 984.5,-331.88 1002.5,-331.88 1002.5,-309.88 984.5,-309.88\"/>\n",
|
|
2076
|
+
"<text text-anchor=\"start\" x=\"989\" y=\"-317.77\" font-family=\"Arial\" font-size=\"12.00\">K</text>\n",
|
|
2077
|
+
"</g>\n",
|
|
2078
|
+
"<!-- Storage_139860228410176->Reservation_139860228409776 -->\n",
|
|
2079
|
+
"<g id=\"edge81\" class=\"edge\">\n",
|
|
2080
|
+
"<title>Storage_139860228410176->Reservation_139860228409776</title>\n",
|
|
2081
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-353.13C935,-352.02 935,-350.89 935,-349.75\"/>\n",
|
|
2082
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-349.53 935,-339.53 931.5,-349.53 938.5,-349.53\"/>\n",
|
|
2083
|
+
"</g>\n",
|
|
2084
|
+
"<!-- Temporal_139860228407616 -->\n",
|
|
2085
|
+
"<g id=\"node78\" class=\"node\">\n",
|
|
2086
|
+
"<title>Temporal_139860228407616</title>\n",
|
|
2087
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"999,-288.81 871,-288.81 871,-252.81 999,-252.81 999,-288.81\"/>\n",
|
|
2088
|
+
"<text text-anchor=\"middle\" x=\"935\" y=\"-267.71\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..256) stride=1</text>\n",
|
|
2089
|
+
"</g>\n",
|
|
2090
|
+
"<!-- Reservation_139860228409776->Temporal_139860228407616 -->\n",
|
|
2091
|
+
"<g id=\"edge82\" class=\"edge\">\n",
|
|
2092
|
+
"<title>Reservation_139860228409776->Temporal_139860228407616</title>\n",
|
|
2093
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-303.12C935,-301.83 935,-300.51 935,-299.18\"/>\n",
|
|
2094
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-299.01 935,-289.01 931.5,-299.02 938.5,-299.01\"/>\n",
|
|
2095
|
+
"</g>\n",
|
|
2096
|
+
"<!-- Compute_139860228413856 -->\n",
|
|
2097
|
+
"<g id=\"node79\" class=\"node\">\n",
|
|
2098
|
+
"<title>Compute_139860228413856</title>\n",
|
|
2099
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"935\" cy=\"-219.69\" rx=\"55.45\" ry=\"18\"/>\n",
|
|
2100
|
+
"<text text-anchor=\"middle\" x=\"935\" y=\"-216.59\" font-family=\"Arial\" font-size=\"12.00\">MAC computes QK</text>\n",
|
|
2101
|
+
"</g>\n",
|
|
2102
|
+
"<!-- Temporal_139860228407616->Compute_139860228413856 -->\n",
|
|
2103
|
+
"<g id=\"edge83\" class=\"edge\">\n",
|
|
2104
|
+
"<title>Temporal_139860228407616->Compute_139860228413856</title>\n",
|
|
2105
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M935,-252.63C935,-251.14 935,-249.62 935,-248.07\"/>\n",
|
|
2106
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"938.5,-247.94 935,-237.94 931.5,-247.94 938.5,-247.94\"/>\n",
|
|
2107
|
+
"</g>\n",
|
|
2108
|
+
"<!-- Reservation_139860228419056 -->\n",
|
|
2109
|
+
"<g id=\"node81\" class=\"node\">\n",
|
|
2110
|
+
"<title>Reservation_139860228419056</title>\n",
|
|
2111
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1349.5,-898.38 1074.5,-898.38 1074.5,-894.38 1070.5,-894.38 1070.5,-890.38 1074.5,-890.38 1074.5,-870.38 1070.5,-870.38 1070.5,-866.38 1074.5,-866.38 1074.5,-862.38 1349.5,-862.38 1349.5,-898.38\"/>\n",
|
|
2112
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1074.5,-894.38 1078.5,-894.38 1078.5,-890.38 1074.5,-890.38 \"/>\n",
|
|
2113
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1074.5,-870.38 1078.5,-870.38 1078.5,-866.38 1074.5,-866.38 \"/>\n",
|
|
2114
|
+
"<text text-anchor=\"start\" x=\"1077\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
2115
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"1217.5,-868.88 1217.5,-890.88 1235.5,-890.88 1235.5,-868.88 1217.5,-868.88\"/>\n",
|
|
2116
|
+
"<text text-anchor=\"start\" x=\"1222\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
2117
|
+
"<polygon fill=\"none\" stroke=\"#008000\" stroke-width=\"5\" points=\"1240.5,-868.88 1240.5,-890.88 1315.5,-890.88 1315.5,-868.88 1240.5,-868.88\"/>\n",
|
|
2118
|
+
"<text text-anchor=\"start\" x=\"1245\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
2119
|
+
"<polygon fill=\"none\" stroke=\"#8000ff\" stroke-width=\"5\" points=\"1320.5,-868.88 1320.5,-890.88 1347.5,-890.88 1347.5,-868.88 1320.5,-868.88\"/>\n",
|
|
2120
|
+
"<text text-anchor=\"start\" x=\"1325\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
2121
|
+
"</g>\n",
|
|
2122
|
+
"<!-- Reservation_139860233169616->Reservation_139860228419056 -->\n",
|
|
2123
|
+
"<g id=\"edge84\" class=\"edge\">\n",
|
|
2124
|
+
"<title>Reservation_139860233169616->Reservation_139860228419056</title>\n",
|
|
2125
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1147.9,-912.82C1154.41,-909.62 1161.29,-906.25 1168.02,-902.95\"/>\n",
|
|
2126
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1169.64,-906.05 1177.08,-898.51 1166.56,-899.77 1169.64,-906.05\"/>\n",
|
|
2127
|
+
"</g>\n",
|
|
2128
|
+
"<!-- Temporal_139860228701424 -->\n",
|
|
2129
|
+
"<g id=\"node82\" class=\"node\">\n",
|
|
2130
|
+
"<title>Temporal_139860228701424</title>\n",
|
|
2131
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1270,-848.38 1152,-848.38 1152,-812.38 1270,-812.38 1270,-848.38\"/>\n",
|
|
2132
|
+
"<text text-anchor=\"middle\" x=\"1211\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for h in [0..32) stride=1</text>\n",
|
|
2133
|
+
"</g>\n",
|
|
2134
|
+
"<!-- Reservation_139860228419056->Temporal_139860228701424 -->\n",
|
|
2135
|
+
"<g id=\"edge85\" class=\"edge\">\n",
|
|
2136
|
+
"<title>Reservation_139860228419056->Temporal_139860228701424</title>\n",
|
|
2137
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1211.64,-862.32C1211.62,-861.04 1211.59,-859.74 1211.56,-858.43\"/>\n",
|
|
2138
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1215.06,-858.3 1211.35,-848.38 1208.06,-858.45 1215.06,-858.3\"/>\n",
|
|
2139
|
+
"</g>\n",
|
|
2140
|
+
"<!-- Temporal_139860228690704 -->\n",
|
|
2141
|
+
"<g id=\"node83\" class=\"node\">\n",
|
|
2142
|
+
"<title>Temporal_139860228690704</title>\n",
|
|
2143
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1282,-797.81 1140,-797.81 1140,-761.81 1282,-761.81 1282,-797.81\"/>\n",
|
|
2144
|
+
"<text text-anchor=\"middle\" x=\"1211\" y=\"-776.71\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..16384) stride=1</text>\n",
|
|
2145
|
+
"</g>\n",
|
|
2146
|
+
"<!-- Temporal_139860228701424->Temporal_139860228690704 -->\n",
|
|
2147
|
+
"<g id=\"edge86\" class=\"edge\">\n",
|
|
2148
|
+
"<title>Temporal_139860228701424->Temporal_139860228690704</title>\n",
|
|
2149
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1211,-812.12C1211,-810.83 1211,-809.51 1211,-808.18\"/>\n",
|
|
2150
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1214.5,-808.01 1211,-798.01 1207.5,-808.02 1214.5,-808.01\"/>\n",
|
|
2151
|
+
"</g>\n",
|
|
2152
|
+
"<!-- Temporal_139860228690544 -->\n",
|
|
2153
|
+
"<g id=\"node84\" class=\"node\">\n",
|
|
2154
|
+
"<title>Temporal_139860228690544</title>\n",
|
|
2155
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1279.5,-746.69 1140.5,-746.69 1140.5,-710.69 1279.5,-710.69 1279.5,-746.69\"/>\n",
|
|
2156
|
+
"<text text-anchor=\"middle\" x=\"1210\" y=\"-725.59\" font-family=\"Arial\" font-size=\"12.00\">for p in [0..16384) stride=1</text>\n",
|
|
2157
|
+
"</g>\n",
|
|
2158
|
+
"<!-- Temporal_139860228690704->Temporal_139860228690544 -->\n",
|
|
2159
|
+
"<g id=\"edge87\" class=\"edge\">\n",
|
|
2160
|
+
"<title>Temporal_139860228690704->Temporal_139860228690544</title>\n",
|
|
2161
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1210.65,-761.63C1210.62,-760.14 1210.59,-758.62 1210.56,-757.07\"/>\n",
|
|
2162
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1214.05,-756.87 1210.35,-746.94 1207.06,-757.01 1214.05,-756.87\"/>\n",
|
|
2163
|
+
"</g>\n",
|
|
2164
|
+
"<!-- Storage_139860228699904 -->\n",
|
|
2165
|
+
"<g id=\"node85\" class=\"node\">\n",
|
|
2166
|
+
"<title>Storage_139860228699904</title>\n",
|
|
2167
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1321,-692.8C1321,-694.67 1271.25,-696.19 1210,-696.19 1148.75,-696.19 1099,-694.67 1099,-692.8 1099,-692.8 1099,-662.32 1099,-662.32 1099,-660.46 1148.75,-658.94 1210,-658.94 1271.25,-658.94 1321,-660.46 1321,-662.32 1321,-662.32 1321,-692.8 1321,-692.8\"/>\n",
|
|
2168
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1321,-692.8C1321,-690.93 1271.25,-689.41 1210,-689.41 1148.75,-689.41 1099,-690.93 1099,-692.8\"/>\n",
|
|
2169
|
+
"<text text-anchor=\"start\" x=\"1101\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2170
|
+
"<polygon fill=\"none\" stroke=\"#008000\" stroke-width=\"5\" points=\"1211.5,-666.06 1211.5,-688.06 1286.5,-688.06 1286.5,-666.06 1211.5,-666.06\"/>\n",
|
|
2171
|
+
"<text text-anchor=\"start\" x=\"1216\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
2172
|
+
"<polygon fill=\"none\" stroke=\"#8000ff\" stroke-width=\"5\" points=\"1291.5,-666.06 1291.5,-688.06 1318.5,-688.06 1318.5,-666.06 1291.5,-666.06\"/>\n",
|
|
2173
|
+
"<text text-anchor=\"start\" x=\"1296\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
2174
|
+
"</g>\n",
|
|
2175
|
+
"<!-- Temporal_139860228690544->Storage_139860228699904 -->\n",
|
|
2176
|
+
"<g id=\"edge88\" class=\"edge\">\n",
|
|
2177
|
+
"<title>Temporal_139860228690544->Storage_139860228699904</title>\n",
|
|
2178
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1210,-710.51C1210,-709.2 1210,-707.86 1210,-706.51\"/>\n",
|
|
2179
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1213.5,-706.15 1210,-696.15 1206.5,-706.15 1213.5,-706.15\"/>\n",
|
|
2180
|
+
"</g>\n",
|
|
2181
|
+
"<!-- Reservation_139860228695984 -->\n",
|
|
2182
|
+
"<g id=\"node86\" class=\"node\">\n",
|
|
2183
|
+
"<title>Reservation_139860228695984</title>\n",
|
|
2184
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1333.5,-644.44 1084.5,-644.44 1084.5,-640.44 1080.5,-640.44 1080.5,-636.44 1084.5,-636.44 1084.5,-616.44 1080.5,-616.44 1080.5,-612.44 1084.5,-612.44 1084.5,-608.44 1333.5,-608.44 1333.5,-644.44\"/>\n",
|
|
2185
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1084.5,-640.44 1088.5,-640.44 1088.5,-636.44 1084.5,-636.44 \"/>\n",
|
|
2186
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1084.5,-616.44 1088.5,-616.44 1088.5,-612.44 1084.5,-612.44 \"/>\n",
|
|
2187
|
+
"<text text-anchor=\"start\" x=\"1087\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2188
|
+
"<polygon fill=\"none\" stroke=\"#008000\" stroke-width=\"5\" points=\"1224.5,-614.94 1224.5,-636.94 1299.5,-636.94 1299.5,-614.94 1224.5,-614.94\"/>\n",
|
|
2189
|
+
"<text text-anchor=\"start\" x=\"1229\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
2190
|
+
"<polygon fill=\"none\" stroke=\"#8000ff\" stroke-width=\"5\" points=\"1304.5,-614.94 1304.5,-636.94 1331.5,-636.94 1331.5,-614.94 1304.5,-614.94\"/>\n",
|
|
2191
|
+
"<text text-anchor=\"start\" x=\"1309\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">QK</text>\n",
|
|
2192
|
+
"</g>\n",
|
|
2193
|
+
"<!-- Storage_139860228699904->Reservation_139860228695984 -->\n",
|
|
2194
|
+
"<g id=\"edge89\" class=\"edge\">\n",
|
|
2195
|
+
"<title>Storage_139860228699904->Reservation_139860228695984</title>\n",
|
|
2196
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1209.64,-658.83C1209.61,-657.53 1209.59,-656.2 1209.56,-654.86\"/>\n",
|
|
2197
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1213.05,-654.58 1209.35,-644.65 1206.05,-654.72 1213.05,-654.58\"/>\n",
|
|
2198
|
+
"</g>\n",
|
|
2199
|
+
"<!-- Compute_139860228691744 -->\n",
|
|
2200
|
+
"<g id=\"node87\" class=\"node\">\n",
|
|
2201
|
+
"<title>Compute_139860228691744</title>\n",
|
|
2202
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"1209\" cy=\"-575.31\" rx=\"80.93\" ry=\"18\"/>\n",
|
|
2203
|
+
"<text text-anchor=\"middle\" x=\"1209\" y=\"-572.21\" font-family=\"Arial\" font-size=\"12.00\">MAC computes QK_softmax</text>\n",
|
|
2204
|
+
"</g>\n",
|
|
2205
|
+
"<!-- Reservation_139860228695984->Compute_139860228691744 -->\n",
|
|
2206
|
+
"<g id=\"edge90\" class=\"edge\">\n",
|
|
2207
|
+
"<title>Reservation_139860228695984->Compute_139860228691744</title>\n",
|
|
2208
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1209,-608.26C1209,-606.77 1209,-605.24 1209,-603.7\"/>\n",
|
|
2209
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1212.5,-603.57 1209,-593.57 1205.5,-603.57 1212.5,-603.57\"/>\n",
|
|
2210
|
+
"</g>\n",
|
|
2211
|
+
"<!-- Temporal_139860228697584 -->\n",
|
|
2212
|
+
"<g id=\"node89\" class=\"node\">\n",
|
|
2213
|
+
"<title>Temporal_139860228697584</title>\n",
|
|
2214
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1486,-898.38 1368,-898.38 1368,-862.38 1486,-862.38 1486,-898.38\"/>\n",
|
|
2215
|
+
"<text text-anchor=\"middle\" x=\"1427\" y=\"-877.27\" font-family=\"Arial\" font-size=\"12.00\">for h in [0..32) stride=1</text>\n",
|
|
2216
|
+
"</g>\n",
|
|
2217
|
+
"<!-- Reservation_139860228688704->Temporal_139860228697584 -->\n",
|
|
2218
|
+
"<g id=\"edge91\" class=\"edge\">\n",
|
|
2219
|
+
"<title>Reservation_139860228688704->Temporal_139860228697584</title>\n",
|
|
2220
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1376.07,-912.68C1380.79,-909.78 1385.74,-906.74 1390.62,-903.74\"/>\n",
|
|
2221
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1392.59,-906.63 1399.28,-898.41 1388.93,-900.67 1392.59,-906.63\"/>\n",
|
|
2222
|
+
"</g>\n",
|
|
2223
|
+
"<!-- Temporal_139860228690944 -->\n",
|
|
2224
|
+
"<g id=\"node90\" class=\"node\">\n",
|
|
2225
|
+
"<title>Temporal_139860228690944</title>\n",
|
|
2226
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1491.5,-848.38 1356.5,-848.38 1356.5,-812.38 1491.5,-812.38 1491.5,-848.38\"/>\n",
|
|
2227
|
+
"<text text-anchor=\"middle\" x=\"1424\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..64) stride=256</text>\n",
|
|
2228
|
+
"</g>\n",
|
|
2229
|
+
"<!-- Temporal_139860228697584->Temporal_139860228690944 -->\n",
|
|
2230
|
+
"<g id=\"edge92\" class=\"edge\">\n",
|
|
2231
|
+
"<title>Temporal_139860228697584->Temporal_139860228690944</title>\n",
|
|
2232
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1425.93,-862.32C1425.85,-861.04 1425.77,-859.74 1425.69,-858.43\"/>\n",
|
|
2233
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1429.18,-858.14 1425.06,-848.38 1422.19,-858.58 1429.18,-858.14\"/>\n",
|
|
2234
|
+
"</g>\n",
|
|
2235
|
+
"<!-- Storage_139860237321232 -->\n",
|
|
2236
|
+
"<g id=\"node91\" class=\"node\">\n",
|
|
2237
|
+
"<title>Storage_139860237321232</title>\n",
|
|
2238
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1490,-795.05C1490,-796.92 1458.62,-798.44 1420,-798.44 1381.38,-798.44 1350,-796.92 1350,-795.05 1350,-795.05 1350,-764.57 1350,-764.57 1350,-762.71 1381.38,-761.19 1420,-761.19 1458.62,-761.19 1490,-762.71 1490,-764.57 1490,-764.57 1490,-795.05 1490,-795.05\"/>\n",
|
|
2239
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1490,-795.05C1490,-793.18 1458.62,-791.66 1420,-791.66 1381.38,-791.66 1350,-793.18 1350,-795.05\"/>\n",
|
|
2240
|
+
"<text text-anchor=\"start\" x=\"1352\" y=\"-776.21\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2241
|
+
"<polygon fill=\"none\" stroke=\"#ff0000\" stroke-width=\"5\" points=\"1462.5,-768.31 1462.5,-790.31 1487.5,-790.31 1487.5,-768.31 1462.5,-768.31\"/>\n",
|
|
2242
|
+
"<text text-anchor=\"start\" x=\"1467\" y=\"-776.21\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
2243
|
+
"</g>\n",
|
|
2244
|
+
"<!-- Temporal_139860228690944->Storage_139860237321232 -->\n",
|
|
2245
|
+
"<g id=\"edge93\" class=\"edge\">\n",
|
|
2246
|
+
"<title>Temporal_139860228690944->Storage_139860237321232</title>\n",
|
|
2247
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1422.58,-812.12C1422.49,-811.03 1422.4,-809.92 1422.3,-808.79\"/>\n",
|
|
2248
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1425.78,-808.35 1421.47,-798.67 1418.8,-808.92 1425.78,-808.35\"/>\n",
|
|
2249
|
+
"</g>\n",
|
|
2250
|
+
"<!-- Reservation_139860237321152 -->\n",
|
|
2251
|
+
"<g id=\"node92\" class=\"node\">\n",
|
|
2252
|
+
"<title>Reservation_139860237321152</title>\n",
|
|
2253
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1501.5,-746.69 1334.5,-746.69 1334.5,-742.69 1330.5,-742.69 1330.5,-738.69 1334.5,-738.69 1334.5,-718.69 1330.5,-718.69 1330.5,-714.69 1334.5,-714.69 1334.5,-710.69 1501.5,-710.69 1501.5,-746.69\"/>\n",
|
|
2254
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1334.5,-742.69 1338.5,-742.69 1338.5,-738.69 1334.5,-738.69 \"/>\n",
|
|
2255
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1334.5,-718.69 1338.5,-718.69 1338.5,-714.69 1334.5,-714.69 \"/>\n",
|
|
2256
|
+
"<text text-anchor=\"start\" x=\"1337\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2257
|
+
"<polygon fill=\"none\" stroke=\"#ff0000\" stroke-width=\"5\" points=\"1474.5,-717.19 1474.5,-739.19 1499.5,-739.19 1499.5,-717.19 1474.5,-717.19\"/>\n",
|
|
2258
|
+
"<text text-anchor=\"start\" x=\"1479\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
2259
|
+
"</g>\n",
|
|
2260
|
+
"<!-- Storage_139860237321232->Reservation_139860237321152 -->\n",
|
|
2261
|
+
"<g id=\"edge94\" class=\"edge\">\n",
|
|
2262
|
+
"<title>Storage_139860237321232->Reservation_139860237321152</title>\n",
|
|
2263
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1419.28,-761.08C1419.23,-759.78 1419.17,-758.45 1419.12,-757.11\"/>\n",
|
|
2264
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1422.6,-756.75 1418.7,-746.9 1415.61,-757.04 1422.6,-756.75\"/>\n",
|
|
2265
|
+
"</g>\n",
|
|
2266
|
+
"<!-- Temporal_139860227591296 -->\n",
|
|
2267
|
+
"<g id=\"node93\" class=\"node\">\n",
|
|
2268
|
+
"<title>Temporal_139860227591296</title>\n",
|
|
2269
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1487.5,-695.56 1348.5,-695.56 1348.5,-659.56 1487.5,-659.56 1487.5,-695.56\"/>\n",
|
|
2270
|
+
"<text text-anchor=\"middle\" x=\"1418\" y=\"-674.46\" font-family=\"Arial\" font-size=\"12.00\">for p in [0..128) stride=128</text>\n",
|
|
2271
|
+
"</g>\n",
|
|
2272
|
+
"<!-- Reservation_139860237321152->Temporal_139860227591296 -->\n",
|
|
2273
|
+
"<g id=\"edge95\" class=\"edge\">\n",
|
|
2274
|
+
"<title>Reservation_139860237321152->Temporal_139860227591296</title>\n",
|
|
2275
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1418,-710.51C1418,-709.02 1418,-707.49 1418,-705.95\"/>\n",
|
|
2276
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1421.5,-705.82 1418,-695.82 1414.5,-705.82 1421.5,-705.82\"/>\n",
|
|
2277
|
+
"</g>\n",
|
|
2278
|
+
"<!-- Storage_139860227602256 -->\n",
|
|
2279
|
+
"<g id=\"node94\" class=\"node\">\n",
|
|
2280
|
+
"<title>Storage_139860227602256</title>\n",
|
|
2281
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1484.5,-641.68C1484.5,-643.54 1454.69,-645.06 1418,-645.06 1381.31,-645.06 1351.5,-643.54 1351.5,-641.68 1351.5,-641.68 1351.5,-611.2 1351.5,-611.2 1351.5,-609.33 1381.31,-607.81 1418,-607.81 1454.69,-607.81 1484.5,-609.33 1484.5,-611.2 1484.5,-611.2 1484.5,-641.68 1484.5,-641.68\"/>\n",
|
|
2282
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1484.5,-641.68C1484.5,-639.81 1454.69,-638.29 1418,-638.29 1381.31,-638.29 1351.5,-639.81 1351.5,-641.68\"/>\n",
|
|
2283
|
+
"<text text-anchor=\"start\" x=\"1354\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2284
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"1464.5,-614.94 1464.5,-636.94 1482.5,-636.94 1482.5,-614.94 1464.5,-614.94\"/>\n",
|
|
2285
|
+
"<text text-anchor=\"start\" x=\"1469\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
2286
|
+
"</g>\n",
|
|
2287
|
+
"<!-- Temporal_139860227591296->Storage_139860227602256 -->\n",
|
|
2288
|
+
"<g id=\"edge96\" class=\"edge\">\n",
|
|
2289
|
+
"<title>Temporal_139860227591296->Storage_139860227602256</title>\n",
|
|
2290
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1418,-659.38C1418,-658.07 1418,-656.74 1418,-655.38\"/>\n",
|
|
2291
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1421.5,-655.03 1418,-645.03 1414.5,-655.03 1421.5,-655.03\"/>\n",
|
|
2292
|
+
"</g>\n",
|
|
2293
|
+
"<!-- Reservation_139860227593376 -->\n",
|
|
2294
|
+
"<g id=\"node95\" class=\"node\">\n",
|
|
2295
|
+
"<title>Reservation_139860227593376</title>\n",
|
|
2296
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1482,-593.31 1322,-593.31 1322,-589.31 1318,-589.31 1318,-585.31 1322,-585.31 1322,-565.31 1318,-565.31 1318,-561.31 1322,-561.31 1322,-557.31 1482,-557.31 1482,-593.31\"/>\n",
|
|
2297
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1322,-589.31 1326,-589.31 1326,-585.31 1322,-585.31 \"/>\n",
|
|
2298
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1322,-565.31 1326,-565.31 1326,-561.31 1322,-561.31 \"/>\n",
|
|
2299
|
+
"<text text-anchor=\"start\" x=\"1324\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2300
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"1461.5,-563.81 1461.5,-585.81 1479.5,-585.81 1479.5,-563.81 1461.5,-563.81\"/>\n",
|
|
2301
|
+
"<text text-anchor=\"start\" x=\"1466\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
2302
|
+
"</g>\n",
|
|
2303
|
+
"<!-- Storage_139860227602256->Reservation_139860227593376 -->\n",
|
|
2304
|
+
"<g id=\"edge97\" class=\"edge\">\n",
|
|
2305
|
+
"<title>Storage_139860227602256->Reservation_139860227593376</title>\n",
|
|
2306
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1412.22,-607.7C1411.75,-606.26 1411.27,-604.78 1410.79,-603.29\"/>\n",
|
|
2307
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1414.03,-601.95 1407.61,-593.53 1407.38,-604.12 1414.03,-601.95\"/>\n",
|
|
2308
|
+
"</g>\n",
|
|
2309
|
+
"<!-- Temporal_139860227589136 -->\n",
|
|
2310
|
+
"<g id=\"node96\" class=\"node\">\n",
|
|
2311
|
+
"<title>Temporal_139860227589136</title>\n",
|
|
2312
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1456,-542.75 1328,-542.75 1328,-506.75 1456,-506.75 1456,-542.75\"/>\n",
|
|
2313
|
+
"<text text-anchor=\"middle\" x=\"1392\" y=\"-521.65\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..2) stride=128</text>\n",
|
|
2314
|
+
"</g>\n",
|
|
2315
|
+
"<!-- Reservation_139860227593376->Temporal_139860227589136 -->\n",
|
|
2316
|
+
"<g id=\"edge98\" class=\"edge\">\n",
|
|
2317
|
+
"<title>Reservation_139860227593376->Temporal_139860227589136</title>\n",
|
|
2318
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1398.45,-557.05C1398.18,-555.77 1397.91,-554.45 1397.64,-553.12\"/>\n",
|
|
2319
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1400.99,-552.04 1395.54,-542.95 1394.13,-553.45 1400.99,-552.04\"/>\n",
|
|
2320
|
+
"</g>\n",
|
|
2321
|
+
"<!-- Storage_139860227591536 -->\n",
|
|
2322
|
+
"<g id=\"node97\" class=\"node\">\n",
|
|
2323
|
+
"<title>Storage_139860227591536</title>\n",
|
|
2324
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1483,-489.43C1483,-491.29 1440.42,-492.81 1388,-492.81 1335.58,-492.81 1293,-491.29 1293,-489.43 1293,-489.43 1293,-458.95 1293,-458.95 1293,-457.08 1335.58,-455.56 1388,-455.56 1440.42,-455.56 1483,-457.08 1483,-458.95 1483,-458.95 1483,-489.43 1483,-489.43\"/>\n",
|
|
2325
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1483,-489.43C1483,-487.56 1440.42,-486.04 1388,-486.04 1335.58,-486.04 1293,-487.56 1293,-489.43\"/>\n",
|
|
2326
|
+
"<text text-anchor=\"start\" x=\"1295\" y=\"-470.59\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2327
|
+
"<polygon fill=\"none\" stroke=\"#008000\" stroke-width=\"5\" points=\"1405.5,-462.69 1405.5,-484.69 1480.5,-484.69 1480.5,-462.69 1405.5,-462.69\"/>\n",
|
|
2328
|
+
"<text text-anchor=\"start\" x=\"1410\" y=\"-470.59\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
2329
|
+
"</g>\n",
|
|
2330
|
+
"<!-- Temporal_139860227589136->Storage_139860227591536 -->\n",
|
|
2331
|
+
"<g id=\"edge99\" class=\"edge\">\n",
|
|
2332
|
+
"<title>Temporal_139860227589136->Storage_139860227591536</title>\n",
|
|
2333
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1390.58,-506.49C1390.49,-505.4 1390.4,-504.29 1390.3,-503.17\"/>\n",
|
|
2334
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1393.78,-502.73 1389.47,-493.05 1386.8,-503.3 1393.78,-502.73\"/>\n",
|
|
2335
|
+
"</g>\n",
|
|
2336
|
+
"<!-- Reservation_139860227591056 -->\n",
|
|
2337
|
+
"<g id=\"node98\" class=\"node\">\n",
|
|
2338
|
+
"<title>Reservation_139860227591056</title>\n",
|
|
2339
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1490.5,-441.06 1273.5,-441.06 1273.5,-437.06 1269.5,-437.06 1269.5,-433.06 1273.5,-433.06 1273.5,-413.06 1269.5,-413.06 1269.5,-409.06 1273.5,-409.06 1273.5,-405.06 1490.5,-405.06 1490.5,-441.06\"/>\n",
|
|
2340
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1273.5,-437.06 1277.5,-437.06 1277.5,-433.06 1273.5,-433.06 \"/>\n",
|
|
2341
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1273.5,-413.06 1277.5,-413.06 1277.5,-409.06 1273.5,-409.06 \"/>\n",
|
|
2342
|
+
"<text text-anchor=\"start\" x=\"1276\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2343
|
+
"<polygon fill=\"none\" stroke=\"#008000\" stroke-width=\"5\" points=\"1413.5,-411.56 1413.5,-433.56 1488.5,-433.56 1488.5,-411.56 1413.5,-411.56\"/>\n",
|
|
2344
|
+
"<text text-anchor=\"start\" x=\"1418\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">QK_softmax</text>\n",
|
|
2345
|
+
"</g>\n",
|
|
2346
|
+
"<!-- Storage_139860227591536->Reservation_139860227591056 -->\n",
|
|
2347
|
+
"<g id=\"edge100\" class=\"edge\">\n",
|
|
2348
|
+
"<title>Storage_139860227591536->Reservation_139860227591056</title>\n",
|
|
2349
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1385.83,-455.45C1385.68,-454.15 1385.51,-452.83 1385.35,-451.49\"/>\n",
|
|
2350
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1388.79,-450.78 1384.1,-441.28 1381.84,-451.63 1388.79,-450.78\"/>\n",
|
|
2351
|
+
"</g>\n",
|
|
2352
|
+
"<!-- Temporal_139860227601536 -->\n",
|
|
2353
|
+
"<g id=\"node99\" class=\"node\">\n",
|
|
2354
|
+
"<title>Temporal_139860227601536</title>\n",
|
|
2355
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1435.5,-389.94 1320.5,-389.94 1320.5,-353.94 1435.5,-353.94 1435.5,-389.94\"/>\n",
|
|
2356
|
+
"<text text-anchor=\"middle\" x=\"1378\" y=\"-368.84\" font-family=\"Arial\" font-size=\"12.00\">for f in [0..4) stride=32</text>\n",
|
|
2357
|
+
"</g>\n",
|
|
2358
|
+
"<!-- Reservation_139860227591056->Temporal_139860227601536 -->\n",
|
|
2359
|
+
"<g id=\"edge101\" class=\"edge\">\n",
|
|
2360
|
+
"<title>Reservation_139860227591056->Temporal_139860227601536</title>\n",
|
|
2361
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1380.6,-404.88C1380.48,-403.39 1380.36,-401.87 1380.23,-400.32\"/>\n",
|
|
2362
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1383.71,-399.88 1379.4,-390.19 1376.73,-400.44 1383.71,-399.88\"/>\n",
|
|
2363
|
+
"</g>\n",
|
|
2364
|
+
"<!-- Spatial_139860227602496 -->\n",
|
|
2365
|
+
"<g id=\"node100\" class=\"node\">\n",
|
|
2366
|
+
"<title>Spatial_139860227602496</title>\n",
|
|
2367
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1481,-339.38 1271,-339.38 1271,-303.38 1481,-303.38 1481,-339.38\"/>\n",
|
|
2368
|
+
"<text text-anchor=\"middle\" x=\"1376\" y=\"-318.27\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_output for p in [0..128) stride=1</text>\n",
|
|
2369
|
+
"</g>\n",
|
|
2370
|
+
"<!-- Temporal_139860227601536->Spatial_139860227602496 -->\n",
|
|
2371
|
+
"<g id=\"edge102\" class=\"edge\">\n",
|
|
2372
|
+
"<title>Temporal_139860227601536->Spatial_139860227602496</title>\n",
|
|
2373
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1377.29,-353.68C1377.24,-352.39 1377.18,-351.07 1377.13,-349.74\"/>\n",
|
|
2374
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1380.62,-349.42 1376.71,-339.58 1373.62,-349.71 1380.62,-349.42\"/>\n",
|
|
2375
|
+
"</g>\n",
|
|
2376
|
+
"<!-- Spatial_139860227603936 -->\n",
|
|
2377
|
+
"<g id=\"node101\" class=\"node\">\n",
|
|
2378
|
+
"<title>Spatial_139860227603936</title>\n",
|
|
2379
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1472.5,-288.81 1279.5,-288.81 1279.5,-252.81 1472.5,-252.81 1472.5,-288.81\"/>\n",
|
|
2380
|
+
"<text text-anchor=\"middle\" x=\"1376\" y=\"-267.71\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_input for f in [0..32) stride=1</text>\n",
|
|
2381
|
+
"</g>\n",
|
|
2382
|
+
"<!-- Spatial_139860227602496->Spatial_139860227603936 -->\n",
|
|
2383
|
+
"<g id=\"edge103\" class=\"edge\">\n",
|
|
2384
|
+
"<title>Spatial_139860227602496->Spatial_139860227603936</title>\n",
|
|
2385
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1376,-303.12C1376,-301.83 1376,-300.51 1376,-299.18\"/>\n",
|
|
2386
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1379.5,-299.01 1376,-289.01 1372.5,-299.02 1379.5,-299.01\"/>\n",
|
|
2387
|
+
"</g>\n",
|
|
2388
|
+
"<!-- Storage_139860227598976 -->\n",
|
|
2389
|
+
"<g id=\"node102\" class=\"node\">\n",
|
|
2390
|
+
"<title>Storage_139860227598976</title>\n",
|
|
2391
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1432,-234.93C1432,-236.79 1406.9,-238.31 1376,-238.31 1345.1,-238.31 1320,-236.79 1320,-234.93 1320,-234.93 1320,-204.45 1320,-204.45 1320,-202.58 1345.1,-201.06 1376,-201.06 1406.9,-201.06 1432,-202.58 1432,-204.45 1432,-204.45 1432,-234.93 1432,-234.93\"/>\n",
|
|
2392
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1432,-234.93C1432,-233.06 1406.9,-231.54 1376,-231.54 1345.1,-231.54 1320,-233.06 1320,-234.93\"/>\n",
|
|
2393
|
+
"<text text-anchor=\"start\" x=\"1322\" y=\"-216.09\" font-family=\"Arial\" font-size=\"12.00\">Register reuses</text>\n",
|
|
2394
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"1411.5,-208.19 1411.5,-230.19 1429.5,-230.19 1429.5,-208.19 1411.5,-208.19\"/>\n",
|
|
2395
|
+
"<text text-anchor=\"start\" x=\"1416\" y=\"-216.09\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
2396
|
+
"</g>\n",
|
|
2397
|
+
"<!-- Spatial_139860227603936->Storage_139860227598976 -->\n",
|
|
2398
|
+
"<g id=\"edge104\" class=\"edge\">\n",
|
|
2399
|
+
"<title>Spatial_139860227603936->Storage_139860227598976</title>\n",
|
|
2400
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1376,-252.63C1376,-251.32 1376,-249.99 1376,-248.63\"/>\n",
|
|
2401
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1379.5,-248.28 1376,-238.28 1372.5,-248.28 1379.5,-248.28\"/>\n",
|
|
2402
|
+
"</g>\n",
|
|
2403
|
+
"<!-- Reservation_139860227595856 -->\n",
|
|
2404
|
+
"<g id=\"node103\" class=\"node\">\n",
|
|
2405
|
+
"<title>Reservation_139860227595856</title>\n",
|
|
2406
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1445.5,-186.56 1306.5,-186.56 1306.5,-182.56 1302.5,-182.56 1302.5,-178.56 1306.5,-178.56 1306.5,-158.56 1302.5,-158.56 1302.5,-154.56 1306.5,-154.56 1306.5,-150.56 1445.5,-150.56 1445.5,-186.56\"/>\n",
|
|
2407
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1306.5,-182.56 1310.5,-182.56 1310.5,-178.56 1306.5,-178.56 \"/>\n",
|
|
2408
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1306.5,-158.56 1310.5,-158.56 1310.5,-154.56 1306.5,-154.56 \"/>\n",
|
|
2409
|
+
"<text text-anchor=\"start\" x=\"1309\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">Register reserved for</text>\n",
|
|
2410
|
+
"<polygon fill=\"none\" stroke=\"#800000\" stroke-width=\"5\" points=\"1425.5,-157.06 1425.5,-179.06 1443.5,-179.06 1443.5,-157.06 1425.5,-157.06\"/>\n",
|
|
2411
|
+
"<text text-anchor=\"start\" x=\"1430\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">V</text>\n",
|
|
2412
|
+
"</g>\n",
|
|
2413
|
+
"<!-- Storage_139860227598976->Reservation_139860227595856 -->\n",
|
|
2414
|
+
"<g id=\"edge105\" class=\"edge\">\n",
|
|
2415
|
+
"<title>Storage_139860227598976->Reservation_139860227595856</title>\n",
|
|
2416
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1376,-200.95C1376,-199.65 1376,-198.33 1376,-196.99\"/>\n",
|
|
2417
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1379.5,-196.78 1376,-186.78 1372.5,-196.78 1379.5,-196.78\"/>\n",
|
|
2418
|
+
"</g>\n",
|
|
2419
|
+
"<!-- Temporal_139860227591616 -->\n",
|
|
2420
|
+
"<g id=\"node104\" class=\"node\">\n",
|
|
2421
|
+
"<title>Temporal_139860227591616</title>\n",
|
|
2422
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1440,-136 1312,-136 1312,-100 1440,-100 1440,-136\"/>\n",
|
|
2423
|
+
"<text text-anchor=\"middle\" x=\"1376\" y=\"-114.9\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..128) stride=1</text>\n",
|
|
2424
|
+
"</g>\n",
|
|
2425
|
+
"<!-- Reservation_139860227595856->Temporal_139860227591616 -->\n",
|
|
2426
|
+
"<g id=\"edge106\" class=\"edge\">\n",
|
|
2427
|
+
"<title>Reservation_139860227595856->Temporal_139860227591616</title>\n",
|
|
2428
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1376,-150.3C1376,-149.02 1376,-147.7 1376,-146.37\"/>\n",
|
|
2429
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1379.5,-146.2 1376,-136.2 1372.5,-146.2 1379.5,-146.2\"/>\n",
|
|
2430
|
+
"</g>\n",
|
|
2431
|
+
"<!-- Compute_139860227588416 -->\n",
|
|
2432
|
+
"<g id=\"node105\" class=\"node\">\n",
|
|
2433
|
+
"<title>Compute_139860227588416</title>\n",
|
|
2434
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"1376\" cy=\"-68\" rx=\"53.74\" ry=\"18\"/>\n",
|
|
2435
|
+
"<text text-anchor=\"middle\" x=\"1376\" y=\"-64.9\" font-family=\"Arial\" font-size=\"12.00\">MAC computes AV</text>\n",
|
|
2436
|
+
"</g>\n",
|
|
2437
|
+
"<!-- Temporal_139860227591616->Compute_139860227588416 -->\n",
|
|
2438
|
+
"<g id=\"edge107\" class=\"edge\">\n",
|
|
2439
|
+
"<title>Temporal_139860227591616->Compute_139860227588416</title>\n",
|
|
2440
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1376,-99.94C1376,-98.67 1376,-97.37 1376,-96.05\"/>\n",
|
|
2441
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1379.5,-96 1376,-86 1372.5,-96 1379.5,-96\"/>\n",
|
|
2442
|
+
"</g>\n",
|
|
2443
|
+
"<!-- Temporal_139860227599616 -->\n",
|
|
2444
|
+
"<g id=\"node107\" class=\"node\">\n",
|
|
2445
|
+
"<title>Temporal_139860227599616</title>\n",
|
|
2446
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1665,-898.38 1533,-898.38 1533,-862.38 1665,-862.38 1665,-898.38\"/>\n",
|
|
2447
|
+
"<text text-anchor=\"middle\" x=\"1599\" y=\"-877.27\" font-family=\"Arial\" font-size=\"12.00\">for g in [0..16) stride=256</text>\n",
|
|
2448
|
+
"</g>\n",
|
|
2449
|
+
"<!-- Reservation_139860227589216->Temporal_139860227599616 -->\n",
|
|
2450
|
+
"<g id=\"edge108\" class=\"edge\">\n",
|
|
2451
|
+
"<title>Reservation_139860227589216->Temporal_139860227599616</title>\n",
|
|
2452
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1599,-912.68C1599,-911.39 1599,-910.07 1599,-908.74\"/>\n",
|
|
2453
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1602.5,-908.58 1599,-898.58 1595.5,-908.58 1602.5,-908.58\"/>\n",
|
|
2454
|
+
"</g>\n",
|
|
2455
|
+
"<!-- Temporal_139860227592416 -->\n",
|
|
2456
|
+
"<g id=\"node108\" class=\"node\">\n",
|
|
2457
|
+
"<title>Temporal_139860227592416</title>\n",
|
|
2458
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1670,-848.38 1528,-848.38 1528,-812.38 1670,-812.38 1670,-848.38\"/>\n",
|
|
2459
|
+
"<text text-anchor=\"middle\" x=\"1599\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..128) stride=128</text>\n",
|
|
2460
|
+
"</g>\n",
|
|
2461
|
+
"<!-- Temporal_139860227599616->Temporal_139860227592416 -->\n",
|
|
2462
|
+
"<g id=\"edge109\" class=\"edge\">\n",
|
|
2463
|
+
"<title>Temporal_139860227599616->Temporal_139860227592416</title>\n",
|
|
2464
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1599,-862.32C1599,-861.04 1599,-859.74 1599,-858.43\"/>\n",
|
|
2465
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1602.5,-858.38 1599,-848.38 1595.5,-858.38 1602.5,-858.38\"/>\n",
|
|
2466
|
+
"</g>\n",
|
|
2467
|
+
"<!-- Storage_139860227590816 -->\n",
|
|
2468
|
+
"<g id=\"node109\" class=\"node\">\n",
|
|
2469
|
+
"<title>Storage_139860227590816</title>\n",
|
|
2470
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1665,-795.05C1665,-796.92 1635.42,-798.44 1599,-798.44 1562.58,-798.44 1533,-796.92 1533,-795.05 1533,-795.05 1533,-764.57 1533,-764.57 1533,-762.71 1562.58,-761.19 1599,-761.19 1635.42,-761.19 1665,-762.71 1665,-764.57 1665,-764.57 1665,-795.05 1665,-795.05\"/>\n",
|
|
2471
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1665,-795.05C1665,-793.18 1635.42,-791.66 1599,-791.66 1562.58,-791.66 1533,-793.18 1533,-795.05\"/>\n",
|
|
2472
|
+
"<text text-anchor=\"start\" x=\"1535\" y=\"-776.21\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2473
|
+
"<polygon fill=\"none\" stroke=\"#ff005a\" stroke-width=\"5\" points=\"1645.5,-768.31 1645.5,-790.31 1662.5,-790.31 1662.5,-768.31 1645.5,-768.31\"/>\n",
|
|
2474
|
+
"<text text-anchor=\"start\" x=\"1650\" y=\"-776.21\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
2475
|
+
"</g>\n",
|
|
2476
|
+
"<!-- Temporal_139860227592416->Storage_139860227590816 -->\n",
|
|
2477
|
+
"<g id=\"edge110\" class=\"edge\">\n",
|
|
2478
|
+
"<title>Temporal_139860227592416->Storage_139860227590816</title>\n",
|
|
2479
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1599,-812.12C1599,-811.03 1599,-809.92 1599,-808.79\"/>\n",
|
|
2480
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1602.5,-808.67 1599,-798.67 1595.5,-808.67 1602.5,-808.67\"/>\n",
|
|
2481
|
+
"</g>\n",
|
|
2482
|
+
"<!-- Reservation_139860227592976 -->\n",
|
|
2483
|
+
"<g id=\"node110\" class=\"node\">\n",
|
|
2484
|
+
"<title>Reservation_139860227592976</title>\n",
|
|
2485
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1678.5,-746.69 1519.5,-746.69 1519.5,-742.69 1515.5,-742.69 1515.5,-738.69 1519.5,-738.69 1519.5,-718.69 1515.5,-718.69 1515.5,-714.69 1519.5,-714.69 1519.5,-710.69 1678.5,-710.69 1678.5,-746.69\"/>\n",
|
|
2486
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1519.5,-742.69 1523.5,-742.69 1523.5,-738.69 1519.5,-738.69 \"/>\n",
|
|
2487
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1519.5,-718.69 1523.5,-718.69 1523.5,-714.69 1519.5,-714.69 \"/>\n",
|
|
2488
|
+
"<text text-anchor=\"start\" x=\"1522\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2489
|
+
"<polygon fill=\"none\" stroke=\"#ff005a\" stroke-width=\"5\" points=\"1659.5,-717.19 1659.5,-739.19 1676.5,-739.19 1676.5,-717.19 1659.5,-717.19\"/>\n",
|
|
2490
|
+
"<text text-anchor=\"start\" x=\"1664\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
2491
|
+
"</g>\n",
|
|
2492
|
+
"<!-- Storage_139860227590816->Reservation_139860227592976 -->\n",
|
|
2493
|
+
"<g id=\"edge111\" class=\"edge\">\n",
|
|
2494
|
+
"<title>Storage_139860227590816->Reservation_139860227592976</title>\n",
|
|
2495
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1599,-761.08C1599,-759.78 1599,-758.45 1599,-757.11\"/>\n",
|
|
2496
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1602.5,-756.9 1599,-746.9 1595.5,-756.9 1602.5,-756.9\"/>\n",
|
|
2497
|
+
"</g>\n",
|
|
2498
|
+
"<!-- Temporal_139860227593136 -->\n",
|
|
2499
|
+
"<g id=\"node111\" class=\"node\">\n",
|
|
2500
|
+
"<title>Temporal_139860227593136</title>\n",
|
|
2501
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1658,-695.56 1540,-695.56 1540,-659.56 1658,-659.56 1658,-695.56\"/>\n",
|
|
2502
|
+
"<text text-anchor=\"middle\" x=\"1599\" y=\"-674.46\" font-family=\"Arial\" font-size=\"12.00\">for h in [0..32) stride=1</text>\n",
|
|
2503
|
+
"</g>\n",
|
|
2504
|
+
"<!-- Reservation_139860227592976->Temporal_139860227593136 -->\n",
|
|
2505
|
+
"<g id=\"edge112\" class=\"edge\">\n",
|
|
2506
|
+
"<title>Reservation_139860227592976->Temporal_139860227593136</title>\n",
|
|
2507
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1599,-710.51C1599,-709.02 1599,-707.49 1599,-705.95\"/>\n",
|
|
2508
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1602.5,-705.82 1599,-695.82 1595.5,-705.82 1602.5,-705.82\"/>\n",
|
|
2509
|
+
"</g>\n",
|
|
2510
|
+
"<!-- Storage_139860227600496 -->\n",
|
|
2511
|
+
"<g id=\"node112\" class=\"node\">\n",
|
|
2512
|
+
"<title>Storage_139860227600496</title>\n",
|
|
2513
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1668,-641.68C1668,-643.54 1636.62,-645.06 1598,-645.06 1559.38,-645.06 1528,-643.54 1528,-641.68 1528,-641.68 1528,-611.2 1528,-611.2 1528,-609.33 1559.38,-607.81 1598,-607.81 1636.62,-607.81 1668,-609.33 1668,-611.2 1668,-611.2 1668,-641.68 1668,-641.68\"/>\n",
|
|
2514
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1668,-641.68C1668,-639.81 1636.62,-638.29 1598,-638.29 1559.38,-638.29 1528,-639.81 1528,-641.68\"/>\n",
|
|
2515
|
+
"<text text-anchor=\"start\" x=\"1530\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2516
|
+
"<polygon fill=\"none\" stroke=\"#ff0000\" stroke-width=\"5\" points=\"1640.5,-614.94 1640.5,-636.94 1665.5,-636.94 1665.5,-614.94 1640.5,-614.94\"/>\n",
|
|
2517
|
+
"<text text-anchor=\"start\" x=\"1645\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
2518
|
+
"</g>\n",
|
|
2519
|
+
"<!-- Temporal_139860227593136->Storage_139860227600496 -->\n",
|
|
2520
|
+
"<g id=\"edge113\" class=\"edge\">\n",
|
|
2521
|
+
"<title>Temporal_139860227593136->Storage_139860227600496</title>\n",
|
|
2522
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1598.65,-659.38C1598.62,-658.07 1598.6,-656.74 1598.57,-655.38\"/>\n",
|
|
2523
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1602.06,-654.95 1598.36,-645.03 1595.06,-655.09 1602.06,-654.95\"/>\n",
|
|
2524
|
+
"</g>\n",
|
|
2525
|
+
"<!-- Reservation_139860227603616 -->\n",
|
|
2526
|
+
"<g id=\"node113\" class=\"node\">\n",
|
|
2527
|
+
"<title>Reservation_139860227603616</title>\n",
|
|
2528
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1681.5,-593.31 1514.5,-593.31 1514.5,-589.31 1510.5,-589.31 1510.5,-585.31 1514.5,-585.31 1514.5,-565.31 1510.5,-565.31 1510.5,-561.31 1514.5,-561.31 1514.5,-557.31 1681.5,-557.31 1681.5,-593.31\"/>\n",
|
|
2529
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1514.5,-589.31 1518.5,-589.31 1518.5,-585.31 1514.5,-585.31 \"/>\n",
|
|
2530
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1514.5,-565.31 1518.5,-565.31 1518.5,-561.31 1514.5,-561.31 \"/>\n",
|
|
2531
|
+
"<text text-anchor=\"start\" x=\"1517\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2532
|
+
"<polygon fill=\"none\" stroke=\"#ff0000\" stroke-width=\"5\" points=\"1654.5,-563.81 1654.5,-585.81 1679.5,-585.81 1679.5,-563.81 1654.5,-563.81\"/>\n",
|
|
2533
|
+
"<text text-anchor=\"start\" x=\"1659\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">AV</text>\n",
|
|
2534
|
+
"</g>\n",
|
|
2535
|
+
"<!-- Storage_139860227600496->Reservation_139860227603616 -->\n",
|
|
2536
|
+
"<g id=\"edge114\" class=\"edge\">\n",
|
|
2537
|
+
"<title>Storage_139860227600496->Reservation_139860227603616</title>\n",
|
|
2538
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1598,-607.7C1598,-606.4 1598,-605.08 1598,-603.74\"/>\n",
|
|
2539
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1601.5,-603.53 1598,-593.53 1594.5,-603.53 1601.5,-603.53\"/>\n",
|
|
2540
|
+
"</g>\n",
|
|
2541
|
+
"<!-- Temporal_139860227602016 -->\n",
|
|
2542
|
+
"<g id=\"node114\" class=\"node\">\n",
|
|
2543
|
+
"<title>Temporal_139860227602016</title>\n",
|
|
2544
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1656,-542.75 1538,-542.75 1538,-506.75 1656,-506.75 1656,-542.75\"/>\n",
|
|
2545
|
+
"<text text-anchor=\"middle\" x=\"1597\" y=\"-521.65\" font-family=\"Arial\" font-size=\"12.00\">for g in [0..8) stride=32</text>\n",
|
|
2546
|
+
"</g>\n",
|
|
2547
|
+
"<!-- Reservation_139860227603616->Temporal_139860227602016 -->\n",
|
|
2548
|
+
"<g id=\"edge115\" class=\"edge\">\n",
|
|
2549
|
+
"<title>Reservation_139860227603616->Temporal_139860227602016</title>\n",
|
|
2550
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597.64,-557.05C1597.62,-555.77 1597.59,-554.45 1597.56,-553.12\"/>\n",
|
|
2551
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1601.06,-552.88 1597.35,-542.95 1594.06,-553.02 1601.06,-552.88\"/>\n",
|
|
2552
|
+
"</g>\n",
|
|
2553
|
+
"<!-- Storage_139860228127264 -->\n",
|
|
2554
|
+
"<g id=\"node115\" class=\"node\">\n",
|
|
2555
|
+
"<title>Storage_139860228127264</title>\n",
|
|
2556
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1668.5,-489.43C1668.5,-491.29 1636.45,-492.81 1597,-492.81 1557.55,-492.81 1525.5,-491.29 1525.5,-489.43 1525.5,-489.43 1525.5,-458.95 1525.5,-458.95 1525.5,-457.08 1557.55,-455.56 1597,-455.56 1636.45,-455.56 1668.5,-457.08 1668.5,-458.95 1668.5,-458.95 1668.5,-489.43 1668.5,-489.43\"/>\n",
|
|
2557
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1668.5,-489.43C1668.5,-487.56 1636.45,-486.04 1597,-486.04 1557.55,-486.04 1525.5,-487.56 1525.5,-489.43\"/>\n",
|
|
2558
|
+
"<text text-anchor=\"start\" x=\"1528\" y=\"-470.59\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2559
|
+
"<polygon fill=\"none\" stroke=\"#ff00b4\" stroke-width=\"5\" points=\"1638.5,-462.69 1638.5,-484.69 1666.5,-484.69 1666.5,-462.69 1638.5,-462.69\"/>\n",
|
|
2560
|
+
"<text text-anchor=\"start\" x=\"1643\" y=\"-470.59\" font-family=\"Arial\" font-size=\"12.00\">WZ</text>\n",
|
|
2561
|
+
"</g>\n",
|
|
2562
|
+
"<!-- Temporal_139860227602016->Storage_139860228127264 -->\n",
|
|
2563
|
+
"<g id=\"edge116\" class=\"edge\">\n",
|
|
2564
|
+
"<title>Temporal_139860227602016->Storage_139860228127264</title>\n",
|
|
2565
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597,-506.49C1597,-505.4 1597,-504.29 1597,-503.17\"/>\n",
|
|
2566
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1600.5,-503.05 1597,-493.05 1593.5,-503.05 1600.5,-503.05\"/>\n",
|
|
2567
|
+
"</g>\n",
|
|
2568
|
+
"<!-- Reservation_139860228125824 -->\n",
|
|
2569
|
+
"<g id=\"node116\" class=\"node\">\n",
|
|
2570
|
+
"<title>Reservation_139860228125824</title>\n",
|
|
2571
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1682,-441.06 1512,-441.06 1512,-437.06 1508,-437.06 1508,-433.06 1512,-433.06 1512,-413.06 1508,-413.06 1508,-409.06 1512,-409.06 1512,-405.06 1682,-405.06 1682,-441.06\"/>\n",
|
|
2572
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1512,-437.06 1516,-437.06 1516,-433.06 1512,-433.06 \"/>\n",
|
|
2573
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1512,-413.06 1516,-413.06 1516,-409.06 1512,-409.06 \"/>\n",
|
|
2574
|
+
"<text text-anchor=\"start\" x=\"1514\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2575
|
+
"<polygon fill=\"none\" stroke=\"#ff00b4\" stroke-width=\"5\" points=\"1651.5,-411.56 1651.5,-433.56 1679.5,-433.56 1679.5,-411.56 1651.5,-411.56\"/>\n",
|
|
2576
|
+
"<text text-anchor=\"start\" x=\"1656\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">WZ</text>\n",
|
|
2577
|
+
"</g>\n",
|
|
2578
|
+
"<!-- Storage_139860228127264->Reservation_139860228125824 -->\n",
|
|
2579
|
+
"<g id=\"edge117\" class=\"edge\">\n",
|
|
2580
|
+
"<title>Storage_139860228127264->Reservation_139860228125824</title>\n",
|
|
2581
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597,-455.45C1597,-454.15 1597,-452.83 1597,-451.49\"/>\n",
|
|
2582
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1600.5,-451.28 1597,-441.28 1593.5,-451.28 1600.5,-451.28\"/>\n",
|
|
2583
|
+
"</g>\n",
|
|
2584
|
+
"<!-- Spatial_139860228127184 -->\n",
|
|
2585
|
+
"<g id=\"node117\" class=\"node\">\n",
|
|
2586
|
+
"<title>Spatial_139860228127184</title>\n",
|
|
2587
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1700,-389.94 1494,-389.94 1494,-353.94 1700,-353.94 1700,-389.94\"/>\n",
|
|
2588
|
+
"<text text-anchor=\"middle\" x=\"1597\" y=\"-368.84\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_output for f in [0..128) stride=1</text>\n",
|
|
2589
|
+
"</g>\n",
|
|
2590
|
+
"<!-- Reservation_139860228125824->Spatial_139860228127184 -->\n",
|
|
2591
|
+
"<g id=\"edge118\" class=\"edge\">\n",
|
|
2592
|
+
"<title>Reservation_139860228125824->Spatial_139860228127184</title>\n",
|
|
2593
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597,-404.88C1597,-403.39 1597,-401.87 1597,-400.32\"/>\n",
|
|
2594
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1600.5,-400.19 1597,-390.19 1593.5,-400.19 1600.5,-400.19\"/>\n",
|
|
2595
|
+
"</g>\n",
|
|
2596
|
+
"<!-- Spatial_139860228123344 -->\n",
|
|
2597
|
+
"<g id=\"node118\" class=\"node\">\n",
|
|
2598
|
+
"<title>Spatial_139860228123344</title>\n",
|
|
2599
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1695,-339.38 1499,-339.38 1499,-303.38 1695,-303.38 1695,-339.38\"/>\n",
|
|
2600
|
+
"<text text-anchor=\"middle\" x=\"1597\" y=\"-318.27\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_input for g in [0..32) stride=1</text>\n",
|
|
2601
|
+
"</g>\n",
|
|
2602
|
+
"<!-- Spatial_139860228127184->Spatial_139860228123344 -->\n",
|
|
2603
|
+
"<g id=\"edge119\" class=\"edge\">\n",
|
|
2604
|
+
"<title>Spatial_139860228127184->Spatial_139860228123344</title>\n",
|
|
2605
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597,-353.68C1597,-352.39 1597,-351.07 1597,-349.74\"/>\n",
|
|
2606
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1600.5,-349.58 1597,-339.58 1593.5,-349.58 1600.5,-349.58\"/>\n",
|
|
2607
|
+
"</g>\n",
|
|
2608
|
+
"<!-- Storage_139860228123184 -->\n",
|
|
2609
|
+
"<g id=\"node119\" class=\"node\">\n",
|
|
2610
|
+
"<title>Storage_139860228123184</title>\n",
|
|
2611
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1658,-286.05C1658,-287.92 1630.66,-289.44 1597,-289.44 1563.34,-289.44 1536,-287.92 1536,-286.05 1536,-286.05 1536,-255.57 1536,-255.57 1536,-253.71 1563.34,-252.19 1597,-252.19 1630.66,-252.19 1658,-253.71 1658,-255.57 1658,-255.57 1658,-286.05 1658,-286.05\"/>\n",
|
|
2612
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1658,-286.05C1658,-284.18 1630.66,-282.66 1597,-282.66 1563.34,-282.66 1536,-284.18 1536,-286.05\"/>\n",
|
|
2613
|
+
"<text text-anchor=\"start\" x=\"1538\" y=\"-267.21\" font-family=\"Arial\" font-size=\"12.00\">Register reuses</text>\n",
|
|
2614
|
+
"<polygon fill=\"none\" stroke=\"#ff00b4\" stroke-width=\"5\" points=\"1627.5,-259.31 1627.5,-281.31 1655.5,-281.31 1655.5,-259.31 1627.5,-259.31\"/>\n",
|
|
2615
|
+
"<text text-anchor=\"start\" x=\"1632\" y=\"-267.21\" font-family=\"Arial\" font-size=\"12.00\">WZ</text>\n",
|
|
2616
|
+
"</g>\n",
|
|
2617
|
+
"<!-- Spatial_139860228123344->Storage_139860228123184 -->\n",
|
|
2618
|
+
"<g id=\"edge120\" class=\"edge\">\n",
|
|
2619
|
+
"<title>Spatial_139860228123344->Storage_139860228123184</title>\n",
|
|
2620
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597,-303.12C1597,-302.03 1597,-300.92 1597,-299.79\"/>\n",
|
|
2621
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1600.5,-299.67 1597,-289.67 1593.5,-299.67 1600.5,-299.67\"/>\n",
|
|
2622
|
+
"</g>\n",
|
|
2623
|
+
"<!-- Reservation_139860228123024 -->\n",
|
|
2624
|
+
"<g id=\"node120\" class=\"node\">\n",
|
|
2625
|
+
"<title>Reservation_139860228123024</title>\n",
|
|
2626
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1671.5,-237.69 1522.5,-237.69 1522.5,-233.69 1518.5,-233.69 1518.5,-229.69 1522.5,-229.69 1522.5,-209.69 1518.5,-209.69 1518.5,-205.69 1522.5,-205.69 1522.5,-201.69 1671.5,-201.69 1671.5,-237.69\"/>\n",
|
|
2627
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1522.5,-233.69 1526.5,-233.69 1526.5,-229.69 1522.5,-229.69 \"/>\n",
|
|
2628
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1522.5,-209.69 1526.5,-209.69 1526.5,-205.69 1522.5,-205.69 \"/>\n",
|
|
2629
|
+
"<text text-anchor=\"start\" x=\"1525\" y=\"-216.09\" font-family=\"Arial\" font-size=\"12.00\">Register reserved for</text>\n",
|
|
2630
|
+
"<polygon fill=\"none\" stroke=\"#ff00b4\" stroke-width=\"5\" points=\"1641.5,-208.19 1641.5,-230.19 1669.5,-230.19 1669.5,-208.19 1641.5,-208.19\"/>\n",
|
|
2631
|
+
"<text text-anchor=\"start\" x=\"1646\" y=\"-216.09\" font-family=\"Arial\" font-size=\"12.00\">WZ</text>\n",
|
|
2632
|
+
"</g>\n",
|
|
2633
|
+
"<!-- Storage_139860228123184->Reservation_139860228123024 -->\n",
|
|
2634
|
+
"<g id=\"edge121\" class=\"edge\">\n",
|
|
2635
|
+
"<title>Storage_139860228123184->Reservation_139860228123024</title>\n",
|
|
2636
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597,-252.08C1597,-250.78 1597,-249.45 1597,-248.11\"/>\n",
|
|
2637
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1600.5,-247.9 1597,-237.9 1593.5,-247.9 1600.5,-247.9\"/>\n",
|
|
2638
|
+
"</g>\n",
|
|
2639
|
+
"<!-- Temporal_139860228123984 -->\n",
|
|
2640
|
+
"<g id=\"node121\" class=\"node\">\n",
|
|
2641
|
+
"<title>Temporal_139860228123984</title>\n",
|
|
2642
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1661,-186.56 1533,-186.56 1533,-150.56 1661,-150.56 1661,-186.56\"/>\n",
|
|
2643
|
+
"<text text-anchor=\"middle\" x=\"1597\" y=\"-165.46\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..128) stride=1</text>\n",
|
|
2644
|
+
"</g>\n",
|
|
2645
|
+
"<!-- Reservation_139860228123024->Temporal_139860228123984 -->\n",
|
|
2646
|
+
"<g id=\"edge122\" class=\"edge\">\n",
|
|
2647
|
+
"<title>Reservation_139860228123024->Temporal_139860228123984</title>\n",
|
|
2648
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597,-201.51C1597,-200.02 1597,-198.49 1597,-196.95\"/>\n",
|
|
2649
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1600.5,-196.82 1597,-186.82 1593.5,-196.82 1600.5,-196.82\"/>\n",
|
|
2650
|
+
"</g>\n",
|
|
2651
|
+
"<!-- Compute_139860228128064 -->\n",
|
|
2652
|
+
"<g id=\"node122\" class=\"node\">\n",
|
|
2653
|
+
"<title>Compute_139860228128064</title>\n",
|
|
2654
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"1597\" cy=\"-118\" rx=\"49.73\" ry=\"18\"/>\n",
|
|
2655
|
+
"<text text-anchor=\"middle\" x=\"1597\" y=\"-114.9\" font-family=\"Arial\" font-size=\"12.00\">MAC computes Z</text>\n",
|
|
2656
|
+
"</g>\n",
|
|
2657
|
+
"<!-- Temporal_139860228123984->Compute_139860228128064 -->\n",
|
|
2658
|
+
"<g id=\"edge123\" class=\"edge\">\n",
|
|
2659
|
+
"<title>Temporal_139860228123984->Compute_139860228128064</title>\n",
|
|
2660
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1597,-150.3C1597,-149.02 1597,-147.7 1597,-146.37\"/>\n",
|
|
2661
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1600.5,-146.2 1597,-136.2 1593.5,-146.2 1600.5,-146.2\"/>\n",
|
|
2662
|
+
"</g>\n",
|
|
2663
|
+
"<!-- Temporal_139860228119904 -->\n",
|
|
2664
|
+
"<g id=\"node124\" class=\"node\">\n",
|
|
2665
|
+
"<title>Temporal_139860228119904</title>\n",
|
|
2666
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1882,-898.38 1744,-898.38 1744,-862.38 1882,-862.38 1882,-898.38\"/>\n",
|
|
2667
|
+
"<text text-anchor=\"middle\" x=\"1813\" y=\"-877.27\" font-family=\"Arial\" font-size=\"12.00\">for c in [0..128) stride=128</text>\n",
|
|
2668
|
+
"</g>\n",
|
|
2669
|
+
"<!-- Reservation_139860228125024->Temporal_139860228119904 -->\n",
|
|
2670
|
+
"<g id=\"edge124\" class=\"edge\">\n",
|
|
2671
|
+
"<title>Reservation_139860228125024->Temporal_139860228119904</title>\n",
|
|
2672
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1813,-912.68C1813,-911.39 1813,-910.07 1813,-908.74\"/>\n",
|
|
2673
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1816.5,-908.58 1813,-898.58 1809.5,-908.58 1816.5,-908.58\"/>\n",
|
|
2674
|
+
"</g>\n",
|
|
2675
|
+
"<!-- Temporal_139860228117344 -->\n",
|
|
2676
|
+
"<g id=\"node125\" class=\"node\">\n",
|
|
2677
|
+
"<title>Temporal_139860228117344</title>\n",
|
|
2678
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1880.5,-848.38 1745.5,-848.38 1745.5,-812.38 1880.5,-812.38 1880.5,-848.38\"/>\n",
|
|
2679
|
+
"<text text-anchor=\"middle\" x=\"1813\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..64) stride=256</text>\n",
|
|
2680
|
+
"</g>\n",
|
|
2681
|
+
"<!-- Temporal_139860228119904->Temporal_139860228117344 -->\n",
|
|
2682
|
+
"<g id=\"edge125\" class=\"edge\">\n",
|
|
2683
|
+
"<title>Temporal_139860228119904->Temporal_139860228117344</title>\n",
|
|
2684
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1813,-862.32C1813,-861.04 1813,-859.74 1813,-858.43\"/>\n",
|
|
2685
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1816.5,-858.38 1813,-848.38 1809.5,-858.38 1816.5,-858.38\"/>\n",
|
|
2686
|
+
"</g>\n",
|
|
2687
|
+
"<!-- Storage_139860228121984 -->\n",
|
|
2688
|
+
"<g id=\"node126\" class=\"node\">\n",
|
|
2689
|
+
"<title>Storage_139860228121984</title>\n",
|
|
2690
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1887.5,-795.05C1887.5,-796.92 1854.56,-798.44 1814,-798.44 1773.44,-798.44 1740.5,-796.92 1740.5,-795.05 1740.5,-795.05 1740.5,-764.57 1740.5,-764.57 1740.5,-762.71 1773.44,-761.19 1814,-761.19 1854.56,-761.19 1887.5,-762.71 1887.5,-764.57 1887.5,-764.57 1887.5,-795.05 1887.5,-795.05\"/>\n",
|
|
2691
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1887.5,-795.05C1887.5,-793.18 1854.56,-791.66 1814,-791.66 1773.44,-791.66 1740.5,-793.18 1740.5,-795.05\"/>\n",
|
|
2692
|
+
"<text text-anchor=\"start\" x=\"1743\" y=\"-776.21\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2693
|
+
"<polygon fill=\"none\" stroke=\"#00ff00\" stroke-width=\"5\" points=\"1853.5,-768.31 1853.5,-790.31 1885.5,-790.31 1885.5,-768.31 1853.5,-768.31\"/>\n",
|
|
2694
|
+
"<text text-anchor=\"start\" x=\"1858\" y=\"-776.21\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
2695
|
+
"</g>\n",
|
|
2696
|
+
"<!-- Temporal_139860228117344->Storage_139860228121984 -->\n",
|
|
2697
|
+
"<g id=\"edge126\" class=\"edge\">\n",
|
|
2698
|
+
"<title>Temporal_139860228117344->Storage_139860228121984</title>\n",
|
|
2699
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1813.36,-812.12C1813.38,-811.03 1813.4,-809.92 1813.42,-808.79\"/>\n",
|
|
2700
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1816.93,-808.74 1813.63,-798.67 1809.93,-808.6 1816.93,-808.74\"/>\n",
|
|
2701
|
+
"</g>\n",
|
|
2702
|
+
"<!-- Reservation_139860228126944 -->\n",
|
|
2703
|
+
"<g id=\"node127\" class=\"node\">\n",
|
|
2704
|
+
"<title>Reservation_139860228126944</title>\n",
|
|
2705
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1902,-746.69 1728,-746.69 1728,-742.69 1724,-742.69 1724,-738.69 1728,-738.69 1728,-718.69 1724,-718.69 1724,-714.69 1728,-714.69 1728,-710.69 1902,-710.69 1902,-746.69\"/>\n",
|
|
2706
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1728,-742.69 1732,-742.69 1732,-738.69 1728,-738.69 \"/>\n",
|
|
2707
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1728,-718.69 1732,-718.69 1732,-714.69 1728,-714.69 \"/>\n",
|
|
2708
|
+
"<text text-anchor=\"start\" x=\"1730\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2709
|
+
"<polygon fill=\"none\" stroke=\"#00ff00\" stroke-width=\"5\" points=\"1867.5,-717.19 1867.5,-739.19 1899.5,-739.19 1899.5,-717.19 1867.5,-717.19\"/>\n",
|
|
2710
|
+
"<text text-anchor=\"start\" x=\"1872\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
2711
|
+
"</g>\n",
|
|
2712
|
+
"<!-- Storage_139860228121984->Reservation_139860228126944 -->\n",
|
|
2713
|
+
"<g id=\"edge127\" class=\"edge\">\n",
|
|
2714
|
+
"<title>Storage_139860228121984->Reservation_139860228126944</title>\n",
|
|
2715
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1814.36,-761.08C1814.39,-759.78 1814.41,-758.45 1814.44,-757.11\"/>\n",
|
|
2716
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1817.95,-756.97 1814.65,-746.9 1810.95,-756.83 1817.95,-756.97\"/>\n",
|
|
2717
|
+
"</g>\n",
|
|
2718
|
+
"<!-- Temporal_139860227659472 -->\n",
|
|
2719
|
+
"<g id=\"node128\" class=\"node\">\n",
|
|
2720
|
+
"<title>Temporal_139860227659472</title>\n",
|
|
2721
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1881,-695.56 1749,-695.56 1749,-659.56 1881,-659.56 1881,-695.56\"/>\n",
|
|
2722
|
+
"<text text-anchor=\"middle\" x=\"1815\" y=\"-674.46\" font-family=\"Arial\" font-size=\"12.00\">for g in [0..32) stride=128</text>\n",
|
|
2723
|
+
"</g>\n",
|
|
2724
|
+
"<!-- Reservation_139860228126944->Temporal_139860227659472 -->\n",
|
|
2725
|
+
"<g id=\"edge128\" class=\"edge\">\n",
|
|
2726
|
+
"<title>Reservation_139860228126944->Temporal_139860227659472</title>\n",
|
|
2727
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1815,-710.51C1815,-709.02 1815,-707.49 1815,-705.95\"/>\n",
|
|
2728
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1818.5,-705.82 1815,-695.82 1811.5,-705.82 1818.5,-705.82\"/>\n",
|
|
2729
|
+
"</g>\n",
|
|
2730
|
+
"<!-- Storage_139860227656352 -->\n",
|
|
2731
|
+
"<g id=\"node129\" class=\"node\">\n",
|
|
2732
|
+
"<title>Storage_139860227656352</title>\n",
|
|
2733
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1894,-641.68C1894,-643.54 1858.59,-645.06 1815,-645.06 1771.41,-645.06 1736,-643.54 1736,-641.68 1736,-641.68 1736,-611.2 1736,-611.2 1736,-609.33 1771.41,-607.81 1815,-607.81 1858.59,-607.81 1894,-609.33 1894,-611.2 1894,-611.2 1894,-641.68 1894,-641.68\"/>\n",
|
|
2734
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1894,-641.68C1894,-639.81 1858.59,-638.29 1815,-638.29 1771.41,-638.29 1736,-639.81 1736,-641.68\"/>\n",
|
|
2735
|
+
"<text text-anchor=\"start\" x=\"1738\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2736
|
+
"<polygon fill=\"none\" stroke=\"#000080\" stroke-width=\"5\" points=\"1848.5,-614.94 1848.5,-636.94 1891.5,-636.94 1891.5,-614.94 1848.5,-614.94\"/>\n",
|
|
2737
|
+
"<text text-anchor=\"start\" x=\"1853\" y=\"-622.84\" font-family=\"Arial\" font-size=\"12.00\">WFFA</text>\n",
|
|
2738
|
+
"</g>\n",
|
|
2739
|
+
"<!-- Temporal_139860227659472->Storage_139860227656352 -->\n",
|
|
2740
|
+
"<g id=\"edge129\" class=\"edge\">\n",
|
|
2741
|
+
"<title>Temporal_139860227659472->Storage_139860227656352</title>\n",
|
|
2742
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1815,-659.38C1815,-658.07 1815,-656.74 1815,-655.38\"/>\n",
|
|
2743
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1818.5,-655.03 1815,-645.03 1811.5,-655.03 1818.5,-655.03\"/>\n",
|
|
2744
|
+
"</g>\n",
|
|
2745
|
+
"<!-- Reservation_139860227655792 -->\n",
|
|
2746
|
+
"<g id=\"node130\" class=\"node\">\n",
|
|
2747
|
+
"<title>Reservation_139860227655792</title>\n",
|
|
2748
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1908.5,-593.31 1723.5,-593.31 1723.5,-589.31 1719.5,-589.31 1719.5,-585.31 1723.5,-585.31 1723.5,-565.31 1719.5,-565.31 1719.5,-561.31 1723.5,-561.31 1723.5,-557.31 1908.5,-557.31 1908.5,-593.31\"/>\n",
|
|
2749
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1723.5,-589.31 1727.5,-589.31 1727.5,-585.31 1723.5,-585.31 \"/>\n",
|
|
2750
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1723.5,-565.31 1727.5,-565.31 1727.5,-561.31 1723.5,-561.31 \"/>\n",
|
|
2751
|
+
"<text text-anchor=\"start\" x=\"1726\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2752
|
+
"<polygon fill=\"none\" stroke=\"#000080\" stroke-width=\"5\" points=\"1863.5,-563.81 1863.5,-585.81 1906.5,-585.81 1906.5,-563.81 1863.5,-563.81\"/>\n",
|
|
2753
|
+
"<text text-anchor=\"start\" x=\"1868\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">WFFA</text>\n",
|
|
2754
|
+
"</g>\n",
|
|
2755
|
+
"<!-- Storage_139860227656352->Reservation_139860227655792 -->\n",
|
|
2756
|
+
"<g id=\"edge130\" class=\"edge\">\n",
|
|
2757
|
+
"<title>Storage_139860227656352->Reservation_139860227655792</title>\n",
|
|
2758
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1815.36,-607.7C1815.39,-606.4 1815.41,-605.08 1815.44,-603.74\"/>\n",
|
|
2759
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1818.95,-603.6 1815.65,-593.53 1811.95,-603.46 1818.95,-603.6\"/>\n",
|
|
2760
|
+
"</g>\n",
|
|
2761
|
+
"<!-- Temporal_139860227654192 -->\n",
|
|
2762
|
+
"<g id=\"node131\" class=\"node\">\n",
|
|
2763
|
+
"<title>Temporal_139860227654192</title>\n",
|
|
2764
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1880,-542.75 1752,-542.75 1752,-506.75 1880,-506.75 1880,-542.75\"/>\n",
|
|
2765
|
+
"<text text-anchor=\"middle\" x=\"1816\" y=\"-521.65\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..2) stride=128</text>\n",
|
|
2766
|
+
"</g>\n",
|
|
2767
|
+
"<!-- Reservation_139860227655792->Temporal_139860227654192 -->\n",
|
|
2768
|
+
"<g id=\"edge131\" class=\"edge\">\n",
|
|
2769
|
+
"<title>Reservation_139860227655792->Temporal_139860227654192</title>\n",
|
|
2770
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1816,-557.05C1816,-555.77 1816,-554.45 1816,-553.12\"/>\n",
|
|
2771
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1819.5,-552.95 1816,-542.95 1812.5,-552.95 1819.5,-552.95\"/>\n",
|
|
2772
|
+
"</g>\n",
|
|
2773
|
+
"<!-- Storage_139860227653712 -->\n",
|
|
2774
|
+
"<g id=\"node132\" class=\"node\">\n",
|
|
2775
|
+
"<title>Storage_139860227653712</title>\n",
|
|
2776
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1883,-489.43C1883,-491.29 1853.42,-492.81 1817,-492.81 1780.58,-492.81 1751,-491.29 1751,-489.43 1751,-489.43 1751,-458.95 1751,-458.95 1751,-457.08 1780.58,-455.56 1817,-455.56 1853.42,-455.56 1883,-457.08 1883,-458.95 1883,-458.95 1883,-489.43 1883,-489.43\"/>\n",
|
|
2777
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1883,-489.43C1883,-487.56 1853.42,-486.04 1817,-486.04 1780.58,-486.04 1751,-487.56 1751,-489.43\"/>\n",
|
|
2778
|
+
"<text text-anchor=\"start\" x=\"1753\" y=\"-470.59\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2779
|
+
"<polygon fill=\"none\" stroke=\"#ff005a\" stroke-width=\"5\" points=\"1863.5,-462.69 1863.5,-484.69 1880.5,-484.69 1880.5,-462.69 1863.5,-462.69\"/>\n",
|
|
2780
|
+
"<text text-anchor=\"start\" x=\"1868\" y=\"-470.59\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
2781
|
+
"</g>\n",
|
|
2782
|
+
"<!-- Temporal_139860227654192->Storage_139860227653712 -->\n",
|
|
2783
|
+
"<g id=\"edge132\" class=\"edge\">\n",
|
|
2784
|
+
"<title>Temporal_139860227654192->Storage_139860227653712</title>\n",
|
|
2785
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1816.36,-506.49C1816.38,-505.4 1816.4,-504.29 1816.42,-503.17\"/>\n",
|
|
2786
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1819.93,-503.12 1816.63,-493.05 1812.93,-502.97 1819.93,-503.12\"/>\n",
|
|
2787
|
+
"</g>\n",
|
|
2788
|
+
"<!-- Reservation_139860227668992 -->\n",
|
|
2789
|
+
"<g id=\"node133\" class=\"node\">\n",
|
|
2790
|
+
"<title>Reservation_139860227668992</title>\n",
|
|
2791
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1897.5,-441.06 1738.5,-441.06 1738.5,-437.06 1734.5,-437.06 1734.5,-433.06 1738.5,-433.06 1738.5,-413.06 1734.5,-413.06 1734.5,-409.06 1738.5,-409.06 1738.5,-405.06 1897.5,-405.06 1897.5,-441.06\"/>\n",
|
|
2792
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1738.5,-437.06 1742.5,-437.06 1742.5,-433.06 1738.5,-433.06 \"/>\n",
|
|
2793
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1738.5,-413.06 1742.5,-413.06 1742.5,-409.06 1738.5,-409.06 \"/>\n",
|
|
2794
|
+
"<text text-anchor=\"start\" x=\"1741\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2795
|
+
"<polygon fill=\"none\" stroke=\"#ff005a\" stroke-width=\"5\" points=\"1878.5,-411.56 1878.5,-433.56 1895.5,-433.56 1895.5,-411.56 1878.5,-411.56\"/>\n",
|
|
2796
|
+
"<text text-anchor=\"start\" x=\"1883\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">Z</text>\n",
|
|
2797
|
+
"</g>\n",
|
|
2798
|
+
"<!-- Storage_139860227653712->Reservation_139860227668992 -->\n",
|
|
2799
|
+
"<g id=\"edge133\" class=\"edge\">\n",
|
|
2800
|
+
"<title>Storage_139860227653712->Reservation_139860227668992</title>\n",
|
|
2801
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1817.36,-455.45C1817.39,-454.15 1817.41,-452.83 1817.44,-451.49\"/>\n",
|
|
2802
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1820.95,-451.35 1817.65,-441.28 1813.95,-451.21 1820.95,-451.35\"/>\n",
|
|
2803
|
+
"</g>\n",
|
|
2804
|
+
"<!-- Temporal_139860227668832 -->\n",
|
|
2805
|
+
"<g id=\"node134\" class=\"node\">\n",
|
|
2806
|
+
"<title>Temporal_139860227668832</title>\n",
|
|
2807
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1877,-389.94 1759,-389.94 1759,-353.94 1877,-353.94 1877,-389.94\"/>\n",
|
|
2808
|
+
"<text text-anchor=\"middle\" x=\"1818\" y=\"-368.84\" font-family=\"Arial\" font-size=\"12.00\">for c in [0..4) stride=32</text>\n",
|
|
2809
|
+
"</g>\n",
|
|
2810
|
+
"<!-- Reservation_139860227668992->Temporal_139860227668832 -->\n",
|
|
2811
|
+
"<g id=\"edge134\" class=\"edge\">\n",
|
|
2812
|
+
"<title>Reservation_139860227668992->Temporal_139860227668832</title>\n",
|
|
2813
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1818,-404.88C1818,-403.39 1818,-401.87 1818,-400.32\"/>\n",
|
|
2814
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1821.5,-400.19 1818,-390.19 1814.5,-400.19 1821.5,-400.19\"/>\n",
|
|
2815
|
+
"</g>\n",
|
|
2816
|
+
"<!-- Spatial_139860227668032 -->\n",
|
|
2817
|
+
"<g id=\"node135\" class=\"node\">\n",
|
|
2818
|
+
"<title>Spatial_139860227668032</title>\n",
|
|
2819
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1923,-339.38 1713,-339.38 1713,-303.38 1923,-303.38 1923,-339.38\"/>\n",
|
|
2820
|
+
"<text text-anchor=\"middle\" x=\"1818\" y=\"-318.27\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_output for g in [0..128) stride=1</text>\n",
|
|
2821
|
+
"</g>\n",
|
|
2822
|
+
"<!-- Temporal_139860227668832->Spatial_139860227668032 -->\n",
|
|
2823
|
+
"<g id=\"edge135\" class=\"edge\">\n",
|
|
2824
|
+
"<title>Temporal_139860227668832->Spatial_139860227668032</title>\n",
|
|
2825
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1818,-353.68C1818,-352.39 1818,-351.07 1818,-349.74\"/>\n",
|
|
2826
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1821.5,-349.58 1818,-339.58 1814.5,-349.58 1821.5,-349.58\"/>\n",
|
|
2827
|
+
"</g>\n",
|
|
2828
|
+
"<!-- Spatial_139860227656032 -->\n",
|
|
2829
|
+
"<g id=\"node136\" class=\"node\">\n",
|
|
2830
|
+
"<title>Spatial_139860227656032</title>\n",
|
|
2831
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1915,-288.81 1719,-288.81 1719,-252.81 1915,-252.81 1915,-288.81\"/>\n",
|
|
2832
|
+
"<text text-anchor=\"middle\" x=\"1817\" y=\"-267.71\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_input for c in [0..32) stride=1</text>\n",
|
|
2833
|
+
"</g>\n",
|
|
2834
|
+
"<!-- Spatial_139860227668032->Spatial_139860227656032 -->\n",
|
|
2835
|
+
"<g id=\"edge136\" class=\"edge\">\n",
|
|
2836
|
+
"<title>Spatial_139860227668032->Spatial_139860227656032</title>\n",
|
|
2837
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1817.64,-303.12C1817.62,-301.83 1817.59,-300.51 1817.56,-299.18\"/>\n",
|
|
2838
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1821.06,-298.94 1817.35,-289.01 1814.06,-299.08 1821.06,-298.94\"/>\n",
|
|
2839
|
+
"</g>\n",
|
|
2840
|
+
"<!-- Storage_139860227655072 -->\n",
|
|
2841
|
+
"<g id=\"node137\" class=\"node\">\n",
|
|
2842
|
+
"<title>Storage_139860227655072</title>\n",
|
|
2843
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M1885.5,-234.93C1885.5,-236.79 1854.8,-238.31 1817,-238.31 1779.2,-238.31 1748.5,-236.79 1748.5,-234.93 1748.5,-234.93 1748.5,-204.45 1748.5,-204.45 1748.5,-202.58 1779.2,-201.06 1817,-201.06 1854.8,-201.06 1885.5,-202.58 1885.5,-204.45 1885.5,-204.45 1885.5,-234.93 1885.5,-234.93\"/>\n",
|
|
2844
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1885.5,-234.93C1885.5,-233.06 1854.8,-231.54 1817,-231.54 1779.2,-231.54 1748.5,-233.06 1748.5,-234.93\"/>\n",
|
|
2845
|
+
"<text text-anchor=\"start\" x=\"1751\" y=\"-216.09\" font-family=\"Arial\" font-size=\"12.00\">Register reuses</text>\n",
|
|
2846
|
+
"<polygon fill=\"none\" stroke=\"#000080\" stroke-width=\"5\" points=\"1840.5,-208.19 1840.5,-230.19 1883.5,-230.19 1883.5,-208.19 1840.5,-208.19\"/>\n",
|
|
2847
|
+
"<text text-anchor=\"start\" x=\"1845\" y=\"-216.09\" font-family=\"Arial\" font-size=\"12.00\">WFFA</text>\n",
|
|
2848
|
+
"</g>\n",
|
|
2849
|
+
"<!-- Spatial_139860227656032->Storage_139860227655072 -->\n",
|
|
2850
|
+
"<g id=\"edge137\" class=\"edge\">\n",
|
|
2851
|
+
"<title>Spatial_139860227656032->Storage_139860227655072</title>\n",
|
|
2852
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1817,-252.63C1817,-251.32 1817,-249.99 1817,-248.63\"/>\n",
|
|
2853
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1820.5,-248.28 1817,-238.28 1813.5,-248.28 1820.5,-248.28\"/>\n",
|
|
2854
|
+
"</g>\n",
|
|
2855
|
+
"<!-- Reservation_139860227657952 -->\n",
|
|
2856
|
+
"<g id=\"node138\" class=\"node\">\n",
|
|
2857
|
+
"<title>Reservation_139860227657952</title>\n",
|
|
2858
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"1899,-186.56 1735,-186.56 1735,-182.56 1731,-182.56 1731,-178.56 1735,-178.56 1735,-158.56 1731,-158.56 1731,-154.56 1735,-154.56 1735,-150.56 1899,-150.56 1899,-186.56\"/>\n",
|
|
2859
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1735,-182.56 1739,-182.56 1739,-178.56 1735,-178.56 \"/>\n",
|
|
2860
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1735,-158.56 1739,-158.56 1739,-154.56 1735,-154.56 \"/>\n",
|
|
2861
|
+
"<text text-anchor=\"start\" x=\"1737\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">Register reserved for</text>\n",
|
|
2862
|
+
"<polygon fill=\"none\" stroke=\"#000080\" stroke-width=\"5\" points=\"1853.5,-157.06 1853.5,-179.06 1896.5,-179.06 1896.5,-157.06 1853.5,-157.06\"/>\n",
|
|
2863
|
+
"<text text-anchor=\"start\" x=\"1858\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">WFFA</text>\n",
|
|
2864
|
+
"</g>\n",
|
|
2865
|
+
"<!-- Storage_139860227655072->Reservation_139860227657952 -->\n",
|
|
2866
|
+
"<g id=\"edge138\" class=\"edge\">\n",
|
|
2867
|
+
"<title>Storage_139860227655072->Reservation_139860227657952</title>\n",
|
|
2868
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1817,-200.95C1817,-199.65 1817,-198.33 1817,-196.99\"/>\n",
|
|
2869
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1820.5,-196.78 1817,-186.78 1813.5,-196.78 1820.5,-196.78\"/>\n",
|
|
2870
|
+
"</g>\n",
|
|
2871
|
+
"<!-- Temporal_139860227665072 -->\n",
|
|
2872
|
+
"<g id=\"node139\" class=\"node\">\n",
|
|
2873
|
+
"<title>Temporal_139860227665072</title>\n",
|
|
2874
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"1881,-136 1753,-136 1753,-100 1881,-100 1881,-136\"/>\n",
|
|
2875
|
+
"<text text-anchor=\"middle\" x=\"1817\" y=\"-114.9\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..128) stride=1</text>\n",
|
|
2876
|
+
"</g>\n",
|
|
2877
|
+
"<!-- Reservation_139860227657952->Temporal_139860227665072 -->\n",
|
|
2878
|
+
"<g id=\"edge139\" class=\"edge\">\n",
|
|
2879
|
+
"<title>Reservation_139860227657952->Temporal_139860227665072</title>\n",
|
|
2880
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1817,-150.3C1817,-149.02 1817,-147.7 1817,-146.37\"/>\n",
|
|
2881
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1820.5,-146.2 1817,-136.2 1813.5,-146.2 1820.5,-146.2\"/>\n",
|
|
2882
|
+
"</g>\n",
|
|
2883
|
+
"<!-- Compute_139860227669872 -->\n",
|
|
2884
|
+
"<g id=\"node140\" class=\"node\">\n",
|
|
2885
|
+
"<title>Compute_139860227669872</title>\n",
|
|
2886
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"1817\" cy=\"-68\" rx=\"57.82\" ry=\"18\"/>\n",
|
|
2887
|
+
"<text text-anchor=\"middle\" x=\"1817\" y=\"-64.9\" font-family=\"Arial\" font-size=\"12.00\">MAC computes FFA</text>\n",
|
|
2888
|
+
"</g>\n",
|
|
2889
|
+
"<!-- Temporal_139860227665072->Compute_139860227669872 -->\n",
|
|
2890
|
+
"<g id=\"edge140\" class=\"edge\">\n",
|
|
2891
|
+
"<title>Temporal_139860227665072->Compute_139860227669872</title>\n",
|
|
2892
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M1817,-99.94C1817,-98.67 1817,-97.37 1817,-96.05\"/>\n",
|
|
2893
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"1820.5,-96 1817,-86 1813.5,-96 1820.5,-96\"/>\n",
|
|
2894
|
+
"</g>\n",
|
|
2895
|
+
"<!-- Reservation_139860227654272 -->\n",
|
|
2896
|
+
"<g id=\"node142\" class=\"node\">\n",
|
|
2897
|
+
"<title>Reservation_139860227654272</title>\n",
|
|
2898
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"2115.5,-898.38 1900.5,-898.38 1900.5,-894.38 1896.5,-894.38 1896.5,-890.38 1900.5,-890.38 1900.5,-870.38 1896.5,-870.38 1896.5,-866.38 1900.5,-866.38 1900.5,-862.38 2115.5,-862.38 2115.5,-898.38\"/>\n",
|
|
2899
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1900.5,-894.38 1904.5,-894.38 1904.5,-890.38 1900.5,-890.38 \"/>\n",
|
|
2900
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1900.5,-870.38 1904.5,-870.38 1904.5,-866.38 1900.5,-866.38 \"/>\n",
|
|
2901
|
+
"<text text-anchor=\"start\" x=\"1903\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">MainMemory reserved for</text>\n",
|
|
2902
|
+
"<polygon fill=\"none\" stroke=\"#0000ff\" stroke-width=\"5\" points=\"2043.5,-868.88 2043.5,-890.88 2076.5,-890.88 2076.5,-868.88 2043.5,-868.88\"/>\n",
|
|
2903
|
+
"<text text-anchor=\"start\" x=\"2048\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">FFB</text>\n",
|
|
2904
|
+
"<polygon fill=\"none\" stroke=\"#00ff00\" stroke-width=\"5\" points=\"2081.5,-868.88 2081.5,-890.88 2113.5,-890.88 2113.5,-868.88 2081.5,-868.88\"/>\n",
|
|
2905
|
+
"<text text-anchor=\"start\" x=\"2086\" y=\"-876.77\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
2906
|
+
"</g>\n",
|
|
2907
|
+
"<!-- Storage_139860227667472->Reservation_139860227654272 -->\n",
|
|
2908
|
+
"<g id=\"edge141\" class=\"edge\">\n",
|
|
2909
|
+
"<title>Storage_139860227667472->Reservation_139860227654272</title>\n",
|
|
2910
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2007.37,-912.13C2007.39,-911.02 2007.41,-909.89 2007.44,-908.75\"/>\n",
|
|
2911
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2010.94,-908.6 2007.65,-898.53 2003.94,-908.46 2010.94,-908.6\"/>\n",
|
|
2912
|
+
"</g>\n",
|
|
2913
|
+
"<!-- Temporal_139860227659552 -->\n",
|
|
2914
|
+
"<g id=\"node143\" class=\"node\">\n",
|
|
2915
|
+
"<title>Temporal_139860227659552</title>\n",
|
|
2916
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"2072,-848.38 1944,-848.38 1944,-812.38 2072,-812.38 2072,-848.38\"/>\n",
|
|
2917
|
+
"<text text-anchor=\"middle\" x=\"2008\" y=\"-827.27\" font-family=\"Arial\" font-size=\"12.00\">for j in [0..32) stride=128</text>\n",
|
|
2918
|
+
"</g>\n",
|
|
2919
|
+
"<!-- Reservation_139860227654272->Temporal_139860227659552 -->\n",
|
|
2920
|
+
"<g id=\"edge142\" class=\"edge\">\n",
|
|
2921
|
+
"<title>Reservation_139860227654272->Temporal_139860227659552</title>\n",
|
|
2922
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2008,-862.32C2008,-861.04 2008,-859.74 2008,-858.43\"/>\n",
|
|
2923
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2011.5,-858.38 2008,-848.38 2004.5,-858.38 2011.5,-858.38\"/>\n",
|
|
2924
|
+
"</g>\n",
|
|
2925
|
+
"<!-- Temporal_139860227658752 -->\n",
|
|
2926
|
+
"<g id=\"node144\" class=\"node\">\n",
|
|
2927
|
+
"<title>Temporal_139860227658752</title>\n",
|
|
2928
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"2075.5,-797.81 1940.5,-797.81 1940.5,-761.81 2075.5,-761.81 2075.5,-797.81\"/>\n",
|
|
2929
|
+
"<text text-anchor=\"middle\" x=\"2008\" y=\"-776.71\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..64) stride=256</text>\n",
|
|
2930
|
+
"</g>\n",
|
|
2931
|
+
"<!-- Temporal_139860227659552->Temporal_139860227658752 -->\n",
|
|
2932
|
+
"<g id=\"edge143\" class=\"edge\">\n",
|
|
2933
|
+
"<title>Temporal_139860227659552->Temporal_139860227658752</title>\n",
|
|
2934
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2008,-812.12C2008,-810.83 2008,-809.51 2008,-808.18\"/>\n",
|
|
2935
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2011.5,-808.01 2008,-798.01 2004.5,-808.02 2011.5,-808.01\"/>\n",
|
|
2936
|
+
"</g>\n",
|
|
2937
|
+
"<!-- Storage_139860227661312 -->\n",
|
|
2938
|
+
"<g id=\"node145\" class=\"node\">\n",
|
|
2939
|
+
"<title>Storage_139860227661312</title>\n",
|
|
2940
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M2082,-743.93C2082,-745.79 2048.83,-747.31 2008,-747.31 1967.17,-747.31 1934,-745.79 1934,-743.93 1934,-743.93 1934,-713.45 1934,-713.45 1934,-711.58 1967.17,-710.06 2008,-710.06 2048.83,-710.06 2082,-711.58 2082,-713.45 2082,-713.45 2082,-743.93 2082,-743.93\"/>\n",
|
|
2941
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2082,-743.93C2082,-742.06 2048.83,-740.54 2008,-740.54 1967.17,-740.54 1934,-742.06 1934,-743.93\"/>\n",
|
|
2942
|
+
"<text text-anchor=\"start\" x=\"1936\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2943
|
+
"<polygon fill=\"none\" stroke=\"#0000ff\" stroke-width=\"5\" points=\"2046.5,-717.19 2046.5,-739.19 2079.5,-739.19 2079.5,-717.19 2046.5,-717.19\"/>\n",
|
|
2944
|
+
"<text text-anchor=\"start\" x=\"2051\" y=\"-725.09\" font-family=\"Arial\" font-size=\"12.00\">FFB</text>\n",
|
|
2945
|
+
"</g>\n",
|
|
2946
|
+
"<!-- Temporal_139860227658752->Storage_139860227661312 -->\n",
|
|
2947
|
+
"<g id=\"edge144\" class=\"edge\">\n",
|
|
2948
|
+
"<title>Temporal_139860227658752->Storage_139860227661312</title>\n",
|
|
2949
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2008,-761.63C2008,-760.32 2008,-758.99 2008,-757.63\"/>\n",
|
|
2950
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2011.5,-757.28 2008,-747.28 2004.5,-757.28 2011.5,-757.28\"/>\n",
|
|
2951
|
+
"</g>\n",
|
|
2952
|
+
"<!-- Reservation_139860227662112 -->\n",
|
|
2953
|
+
"<g id=\"node146\" class=\"node\">\n",
|
|
2954
|
+
"<title>Reservation_139860227662112</title>\n",
|
|
2955
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"2095.5,-695.56 1920.5,-695.56 1920.5,-691.56 1916.5,-691.56 1916.5,-687.56 1920.5,-687.56 1920.5,-667.56 1916.5,-667.56 1916.5,-663.56 1920.5,-663.56 1920.5,-659.56 2095.5,-659.56 2095.5,-695.56\"/>\n",
|
|
2956
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1920.5,-691.56 1924.5,-691.56 1924.5,-687.56 1920.5,-687.56 \"/>\n",
|
|
2957
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1920.5,-667.56 1924.5,-667.56 1924.5,-663.56 1920.5,-663.56 \"/>\n",
|
|
2958
|
+
"<text text-anchor=\"start\" x=\"1923\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
2959
|
+
"<polygon fill=\"none\" stroke=\"#0000ff\" stroke-width=\"5\" points=\"2060.5,-666.06 2060.5,-688.06 2093.5,-688.06 2093.5,-666.06 2060.5,-666.06\"/>\n",
|
|
2960
|
+
"<text text-anchor=\"start\" x=\"2065\" y=\"-673.96\" font-family=\"Arial\" font-size=\"12.00\">FFB</text>\n",
|
|
2961
|
+
"</g>\n",
|
|
2962
|
+
"<!-- Storage_139860227661312->Reservation_139860227662112 -->\n",
|
|
2963
|
+
"<g id=\"edge145\" class=\"edge\">\n",
|
|
2964
|
+
"<title>Storage_139860227661312->Reservation_139860227662112</title>\n",
|
|
2965
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2008,-709.95C2008,-708.65 2008,-707.33 2008,-705.99\"/>\n",
|
|
2966
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2011.5,-705.78 2008,-695.78 2004.5,-705.78 2011.5,-705.78\"/>\n",
|
|
2967
|
+
"</g>\n",
|
|
2968
|
+
"<!-- Temporal_139860227661632 -->\n",
|
|
2969
|
+
"<g id=\"node147\" class=\"node\">\n",
|
|
2970
|
+
"<title>Temporal_139860227661632</title>\n",
|
|
2971
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"2077,-644.44 1939,-644.44 1939,-608.44 2077,-608.44 2077,-644.44\"/>\n",
|
|
2972
|
+
"<text text-anchor=\"middle\" x=\"2008\" y=\"-623.34\" font-family=\"Arial\" font-size=\"12.00\">for c in [0..128) stride=128</text>\n",
|
|
2973
|
+
"</g>\n",
|
|
2974
|
+
"<!-- Reservation_139860227662112->Temporal_139860227661632 -->\n",
|
|
2975
|
+
"<g id=\"edge146\" class=\"edge\">\n",
|
|
2976
|
+
"<title>Reservation_139860227662112->Temporal_139860227661632</title>\n",
|
|
2977
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2008,-659.38C2008,-657.89 2008,-656.37 2008,-654.82\"/>\n",
|
|
2978
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2011.5,-654.69 2008,-644.69 2004.5,-654.69 2011.5,-654.69\"/>\n",
|
|
2979
|
+
"</g>\n",
|
|
2980
|
+
"<!-- Storage_139860227664832 -->\n",
|
|
2981
|
+
"<g id=\"node148\" class=\"node\">\n",
|
|
2982
|
+
"<title>Storage_139860227664832</title>\n",
|
|
2983
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M2087.5,-590.55C2087.5,-592.42 2051.87,-593.94 2008,-593.94 1964.13,-593.94 1928.5,-592.42 1928.5,-590.55 1928.5,-590.55 1928.5,-560.07 1928.5,-560.07 1928.5,-558.21 1964.13,-556.69 2008,-556.69 2051.87,-556.69 2087.5,-558.21 2087.5,-560.07 2087.5,-560.07 2087.5,-590.55 2087.5,-590.55\"/>\n",
|
|
2984
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2087.5,-590.55C2087.5,-588.68 2051.87,-587.16 2008,-587.16 1964.13,-587.16 1928.5,-588.68 1928.5,-590.55\"/>\n",
|
|
2985
|
+
"<text text-anchor=\"start\" x=\"1931\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
2986
|
+
"<polygon fill=\"none\" stroke=\"#808000\" stroke-width=\"5\" points=\"2041.5,-563.81 2041.5,-585.81 2085.5,-585.81 2085.5,-563.81 2041.5,-563.81\"/>\n",
|
|
2987
|
+
"<text text-anchor=\"start\" x=\"2046\" y=\"-571.71\" font-family=\"Arial\" font-size=\"12.00\">WFFB</text>\n",
|
|
2988
|
+
"</g>\n",
|
|
2989
|
+
"<!-- Temporal_139860227661632->Storage_139860227664832 -->\n",
|
|
2990
|
+
"<g id=\"edge147\" class=\"edge\">\n",
|
|
2991
|
+
"<title>Temporal_139860227661632->Storage_139860227664832</title>\n",
|
|
2992
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2008,-608.26C2008,-606.95 2008,-605.61 2008,-604.26\"/>\n",
|
|
2993
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2011.5,-603.9 2008,-593.9 2004.5,-603.9 2011.5,-603.9\"/>\n",
|
|
2994
|
+
"</g>\n",
|
|
2995
|
+
"<!-- Reservation_139860227653952 -->\n",
|
|
2996
|
+
"<g id=\"node149\" class=\"node\">\n",
|
|
2997
|
+
"<title>Reservation_139860227653952</title>\n",
|
|
2998
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"2103,-542.75 1917,-542.75 1917,-538.75 1913,-538.75 1913,-534.75 1917,-534.75 1917,-514.75 1913,-514.75 1913,-510.75 1917,-510.75 1917,-506.75 2103,-506.75 2103,-542.75\"/>\n",
|
|
2999
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1917,-538.75 1921,-538.75 1921,-534.75 1917,-534.75 \"/>\n",
|
|
3000
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1917,-514.75 1921,-514.75 1921,-510.75 1917,-510.75 \"/>\n",
|
|
3001
|
+
"<text text-anchor=\"start\" x=\"1919\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
3002
|
+
"<polygon fill=\"none\" stroke=\"#808000\" stroke-width=\"5\" points=\"2056.5,-513.25 2056.5,-535.25 2100.5,-535.25 2100.5,-513.25 2056.5,-513.25\"/>\n",
|
|
3003
|
+
"<text text-anchor=\"start\" x=\"2061\" y=\"-521.15\" font-family=\"Arial\" font-size=\"12.00\">WFFB</text>\n",
|
|
3004
|
+
"</g>\n",
|
|
3005
|
+
"<!-- Storage_139860227664832->Reservation_139860227653952 -->\n",
|
|
3006
|
+
"<g id=\"edge148\" class=\"edge\">\n",
|
|
3007
|
+
"<title>Storage_139860227664832->Reservation_139860227653952</title>\n",
|
|
3008
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2008.73,-556.51C2008.78,-555.4 2008.83,-554.27 2008.87,-553.13\"/>\n",
|
|
3009
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2012.38,-553.04 2009.29,-542.91 2005.38,-552.76 2012.38,-553.04\"/>\n",
|
|
3010
|
+
"</g>\n",
|
|
3011
|
+
"<!-- Temporal_139860227660272 -->\n",
|
|
3012
|
+
"<g id=\"node150\" class=\"node\">\n",
|
|
3013
|
+
"<title>Temporal_139860227660272</title>\n",
|
|
3014
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"2075,-492.19 1947,-492.19 1947,-456.19 2075,-456.19 2075,-492.19\"/>\n",
|
|
3015
|
+
"<text text-anchor=\"middle\" x=\"2011\" y=\"-471.09\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..2) stride=128</text>\n",
|
|
3016
|
+
"</g>\n",
|
|
3017
|
+
"<!-- Reservation_139860227653952->Temporal_139860227660272 -->\n",
|
|
3018
|
+
"<g id=\"edge149\" class=\"edge\">\n",
|
|
3019
|
+
"<title>Reservation_139860227653952->Temporal_139860227660272</title>\n",
|
|
3020
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2010.36,-506.49C2010.38,-505.2 2010.41,-503.89 2010.44,-502.56\"/>\n",
|
|
3021
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2013.94,-502.46 2010.65,-492.39 2006.94,-502.32 2013.94,-502.46\"/>\n",
|
|
3022
|
+
"</g>\n",
|
|
3023
|
+
"<!-- Storage_139860227666912 -->\n",
|
|
3024
|
+
"<g id=\"node151\" class=\"node\">\n",
|
|
3025
|
+
"<title>Storage_139860227666912</title>\n",
|
|
3026
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M2099.5,-438.3C2099.5,-440.17 2066.56,-441.69 2026,-441.69 1985.44,-441.69 1952.5,-440.17 1952.5,-438.3 1952.5,-438.3 1952.5,-407.82 1952.5,-407.82 1952.5,-405.96 1985.44,-404.44 2026,-404.44 2066.56,-404.44 2099.5,-405.96 2099.5,-407.82 2099.5,-407.82 2099.5,-438.3 2099.5,-438.3\"/>\n",
|
|
3027
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2099.5,-438.3C2099.5,-436.43 2066.56,-434.91 2026,-434.91 1985.44,-434.91 1952.5,-436.43 1952.5,-438.3\"/>\n",
|
|
3028
|
+
"<text text-anchor=\"start\" x=\"1955\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reuses</text>\n",
|
|
3029
|
+
"<polygon fill=\"none\" stroke=\"#00ff00\" stroke-width=\"5\" points=\"2065.5,-411.56 2065.5,-433.56 2097.5,-433.56 2097.5,-411.56 2065.5,-411.56\"/>\n",
|
|
3030
|
+
"<text text-anchor=\"start\" x=\"2070\" y=\"-419.46\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
3031
|
+
"</g>\n",
|
|
3032
|
+
"<!-- Temporal_139860227660272->Storage_139860227666912 -->\n",
|
|
3033
|
+
"<g id=\"edge150\" class=\"edge\">\n",
|
|
3034
|
+
"<title>Temporal_139860227660272->Storage_139860227666912</title>\n",
|
|
3035
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2016.25,-456.01C2016.69,-454.55 2017.14,-453.06 2017.6,-451.56\"/>\n",
|
|
3036
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2021.06,-452.24 2020.63,-441.65 2014.36,-450.19 2021.06,-452.24\"/>\n",
|
|
3037
|
+
"</g>\n",
|
|
3038
|
+
"<!-- Reservation_139860227655632 -->\n",
|
|
3039
|
+
"<g id=\"node152\" class=\"node\">\n",
|
|
3040
|
+
"<title>Reservation_139860227655632</title>\n",
|
|
3041
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"2113,-389.94 1939,-389.94 1939,-385.94 1935,-385.94 1935,-381.94 1939,-381.94 1939,-361.94 1935,-361.94 1935,-357.94 1939,-357.94 1939,-353.94 2113,-353.94 2113,-389.94\"/>\n",
|
|
3042
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1939,-385.94 1943,-385.94 1943,-381.94 1939,-381.94 \"/>\n",
|
|
3043
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1939,-361.94 1943,-361.94 1943,-357.94 1939,-357.94 \"/>\n",
|
|
3044
|
+
"<text text-anchor=\"start\" x=\"1941\" y=\"-368.34\" font-family=\"Arial\" font-size=\"12.00\">GlobalBuffer reserved for</text>\n",
|
|
3045
|
+
"<polygon fill=\"none\" stroke=\"#00ff00\" stroke-width=\"5\" points=\"2078.5,-360.44 2078.5,-382.44 2110.5,-382.44 2110.5,-360.44 2078.5,-360.44\"/>\n",
|
|
3046
|
+
"<text text-anchor=\"start\" x=\"2083\" y=\"-368.34\" font-family=\"Arial\" font-size=\"12.00\">FFA</text>\n",
|
|
3047
|
+
"</g>\n",
|
|
3048
|
+
"<!-- Storage_139860227666912->Reservation_139860227655632 -->\n",
|
|
3049
|
+
"<g id=\"edge151\" class=\"edge\">\n",
|
|
3050
|
+
"<title>Storage_139860227666912->Reservation_139860227655632</title>\n",
|
|
3051
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2026,-404.33C2026,-403.03 2026,-401.7 2026,-400.36\"/>\n",
|
|
3052
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2029.5,-400.15 2026,-390.15 2022.5,-400.15 2029.5,-400.15\"/>\n",
|
|
3053
|
+
"</g>\n",
|
|
3054
|
+
"<!-- Temporal_139860227655472 -->\n",
|
|
3055
|
+
"<g id=\"node153\" class=\"node\">\n",
|
|
3056
|
+
"<title>Temporal_139860227655472</title>\n",
|
|
3057
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"2087.5,-339.38 1972.5,-339.38 1972.5,-303.38 2087.5,-303.38 2087.5,-339.38\"/>\n",
|
|
3058
|
+
"<text text-anchor=\"middle\" x=\"2030\" y=\"-318.27\" font-family=\"Arial\" font-size=\"12.00\">for j in [0..4) stride=32</text>\n",
|
|
3059
|
+
"</g>\n",
|
|
3060
|
+
"<!-- Reservation_139860227655632->Temporal_139860227655472 -->\n",
|
|
3061
|
+
"<g id=\"edge152\" class=\"edge\">\n",
|
|
3062
|
+
"<title>Reservation_139860227655632->Temporal_139860227655472</title>\n",
|
|
3063
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2027.42,-353.68C2027.53,-352.39 2027.64,-351.07 2027.75,-349.74\"/>\n",
|
|
3064
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2031.25,-349.83 2028.58,-339.58 2024.27,-349.26 2031.25,-349.83\"/>\n",
|
|
3065
|
+
"</g>\n",
|
|
3066
|
+
"<!-- Spatial_139860232208544 -->\n",
|
|
3067
|
+
"<g id=\"node154\" class=\"node\">\n",
|
|
3068
|
+
"<title>Spatial_139860232208544</title>\n",
|
|
3069
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"2142.5,-288.81 1933.5,-288.81 1933.5,-252.81 2142.5,-252.81 2142.5,-288.81\"/>\n",
|
|
3070
|
+
"<text text-anchor=\"middle\" x=\"2038\" y=\"-267.71\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_output for c in [0..128) stride=1</text>\n",
|
|
3071
|
+
"</g>\n",
|
|
3072
|
+
"<!-- Temporal_139860227655472->Spatial_139860232208544 -->\n",
|
|
3073
|
+
"<g id=\"edge153\" class=\"edge\">\n",
|
|
3074
|
+
"<title>Temporal_139860227655472->Spatial_139860232208544</title>\n",
|
|
3075
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2032.84,-303.12C2033.06,-301.83 2033.27,-300.51 2033.49,-299.18\"/>\n",
|
|
3076
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2036.99,-299.45 2035.17,-289.01 2030.09,-298.31 2036.99,-299.45\"/>\n",
|
|
3077
|
+
"</g>\n",
|
|
3078
|
+
"<!-- Spatial_139860232213504 -->\n",
|
|
3079
|
+
"<g id=\"node155\" class=\"node\">\n",
|
|
3080
|
+
"<title>Spatial_139860232213504</title>\n",
|
|
3081
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"2134.5,-237.69 1941.5,-237.69 1941.5,-201.69 2134.5,-201.69 2134.5,-237.69\"/>\n",
|
|
3082
|
+
"<text text-anchor=\"middle\" x=\"2038\" y=\"-216.59\" font-family=\"Arial\" font-size=\"12.00\">S-reuse_input for j in [0..32) stride=1</text>\n",
|
|
3083
|
+
"</g>\n",
|
|
3084
|
+
"<!-- Spatial_139860232208544->Spatial_139860232213504 -->\n",
|
|
3085
|
+
"<g id=\"edge154\" class=\"edge\">\n",
|
|
3086
|
+
"<title>Spatial_139860232208544->Spatial_139860232213504</title>\n",
|
|
3087
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2038,-252.63C2038,-251.14 2038,-249.62 2038,-248.07\"/>\n",
|
|
3088
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2041.5,-247.94 2038,-237.94 2034.5,-247.94 2041.5,-247.94\"/>\n",
|
|
3089
|
+
"</g>\n",
|
|
3090
|
+
"<!-- Storage_139860232221184 -->\n",
|
|
3091
|
+
"<g id=\"node156\" class=\"node\">\n",
|
|
3092
|
+
"<title>Storage_139860232221184</title>\n",
|
|
3093
|
+
"<path fill=\"#d7fcd7\" stroke=\"black\" d=\"M2107,-183.8C2107,-185.67 2076.07,-187.19 2038,-187.19 1999.93,-187.19 1969,-185.67 1969,-183.8 1969,-183.8 1969,-153.32 1969,-153.32 1969,-151.46 1999.93,-149.94 2038,-149.94 2076.07,-149.94 2107,-151.46 2107,-153.32 2107,-153.32 2107,-183.8 2107,-183.8\"/>\n",
|
|
3094
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2107,-183.8C2107,-181.93 2076.07,-180.41 2038,-180.41 1999.93,-180.41 1969,-181.93 1969,-183.8\"/>\n",
|
|
3095
|
+
"<text text-anchor=\"start\" x=\"1971\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">Register reuses</text>\n",
|
|
3096
|
+
"<polygon fill=\"none\" stroke=\"#808000\" stroke-width=\"5\" points=\"2060.5,-157.06 2060.5,-179.06 2104.5,-179.06 2104.5,-157.06 2060.5,-157.06\"/>\n",
|
|
3097
|
+
"<text text-anchor=\"start\" x=\"2065\" y=\"-164.96\" font-family=\"Arial\" font-size=\"12.00\">WFFB</text>\n",
|
|
3098
|
+
"</g>\n",
|
|
3099
|
+
"<!-- Spatial_139860232213504->Storage_139860232221184 -->\n",
|
|
3100
|
+
"<g id=\"edge155\" class=\"edge\">\n",
|
|
3101
|
+
"<title>Spatial_139860232213504->Storage_139860232221184</title>\n",
|
|
3102
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2038,-201.51C2038,-200.2 2038,-198.86 2038,-197.51\"/>\n",
|
|
3103
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2041.5,-197.15 2038,-187.15 2034.5,-197.15 2041.5,-197.15\"/>\n",
|
|
3104
|
+
"</g>\n",
|
|
3105
|
+
"<!-- Reservation_139860232219504 -->\n",
|
|
3106
|
+
"<g id=\"node157\" class=\"node\">\n",
|
|
3107
|
+
"<title>Reservation_139860232219504</title>\n",
|
|
3108
|
+
"<polygon fill=\"#e8e8e8\" stroke=\"black\" points=\"2120.5,-136 1955.5,-136 1955.5,-132 1951.5,-132 1951.5,-128 1955.5,-128 1955.5,-108 1951.5,-108 1951.5,-104 1955.5,-104 1955.5,-100 2120.5,-100 2120.5,-136\"/>\n",
|
|
3109
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1955.5,-132 1959.5,-132 1959.5,-128 1955.5,-128 \"/>\n",
|
|
3110
|
+
"<polyline fill=\"none\" stroke=\"black\" points=\"1955.5,-108 1959.5,-108 1959.5,-104 1955.5,-104 \"/>\n",
|
|
3111
|
+
"<text text-anchor=\"start\" x=\"1958\" y=\"-114.4\" font-family=\"Arial\" font-size=\"12.00\">Register reserved for</text>\n",
|
|
3112
|
+
"<polygon fill=\"none\" stroke=\"#808000\" stroke-width=\"5\" points=\"2074.5,-106.5 2074.5,-128.5 2118.5,-128.5 2118.5,-106.5 2074.5,-106.5\"/>\n",
|
|
3113
|
+
"<text text-anchor=\"start\" x=\"2079\" y=\"-114.4\" font-family=\"Arial\" font-size=\"12.00\">WFFB</text>\n",
|
|
3114
|
+
"</g>\n",
|
|
3115
|
+
"<!-- Storage_139860232221184->Reservation_139860232219504 -->\n",
|
|
3116
|
+
"<g id=\"edge156\" class=\"edge\">\n",
|
|
3117
|
+
"<title>Storage_139860232221184->Reservation_139860232219504</title>\n",
|
|
3118
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2038,-149.76C2038,-148.65 2038,-147.52 2038,-146.38\"/>\n",
|
|
3119
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2041.5,-146.16 2038,-136.16 2034.5,-146.16 2041.5,-146.16\"/>\n",
|
|
3120
|
+
"</g>\n",
|
|
3121
|
+
"<!-- Temporal_139860237235968 -->\n",
|
|
3122
|
+
"<g id=\"node158\" class=\"node\">\n",
|
|
3123
|
+
"<title>Temporal_139860237235968</title>\n",
|
|
3124
|
+
"<polygon fill=\"#fcc2fc\" stroke=\"black\" points=\"2102,-86 1974,-86 1974,-50 2102,-50 2102,-86\"/>\n",
|
|
3125
|
+
"<text text-anchor=\"middle\" x=\"2038\" y=\"-64.9\" font-family=\"Arial\" font-size=\"12.00\">for m in [0..128) stride=1</text>\n",
|
|
3126
|
+
"</g>\n",
|
|
3127
|
+
"<!-- Reservation_139860232219504->Temporal_139860237235968 -->\n",
|
|
3128
|
+
"<g id=\"edge157\" class=\"edge\">\n",
|
|
3129
|
+
"<title>Reservation_139860232219504->Temporal_139860237235968</title>\n",
|
|
3130
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2038,-99.94C2038,-98.67 2038,-97.37 2038,-96.05\"/>\n",
|
|
3131
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2041.5,-96 2038,-86 2034.5,-96 2041.5,-96\"/>\n",
|
|
3132
|
+
"</g>\n",
|
|
3133
|
+
"<!-- Compute_139860237234848 -->\n",
|
|
3134
|
+
"<g id=\"node159\" class=\"node\">\n",
|
|
3135
|
+
"<title>Compute_139860237234848</title>\n",
|
|
3136
|
+
"<ellipse fill=\"#e0eeff\" stroke=\"black\" cx=\"2038\" cy=\"-18\" rx=\"58.39\" ry=\"18\"/>\n",
|
|
3137
|
+
"<text text-anchor=\"middle\" x=\"2038\" y=\"-14.9\" font-family=\"Arial\" font-size=\"12.00\">MAC computes FFB</text>\n",
|
|
3138
|
+
"</g>\n",
|
|
3139
|
+
"<!-- Temporal_139860237235968->Compute_139860237234848 -->\n",
|
|
3140
|
+
"<g id=\"edge158\" class=\"edge\">\n",
|
|
3141
|
+
"<title>Temporal_139860237235968->Compute_139860237234848</title>\n",
|
|
3142
|
+
"<path fill=\"none\" stroke=\"black\" d=\"M2038,-49.94C2038,-48.67 2038,-47.37 2038,-46.05\"/>\n",
|
|
3143
|
+
"<polygon fill=\"black\" stroke=\"black\" points=\"2041.5,-46 2038,-36 2034.5,-46 2041.5,-46\"/>\n",
|
|
3144
|
+
"</g>\n",
|
|
3145
|
+
"</g>\n",
|
|
3146
|
+
"</svg>\n"
|
|
3147
|
+
],
|
|
3148
|
+
"text/plain": [
|
|
3149
|
+
"<accelforge.mapper.FFM.mappings.Mappings at 0x7f341ac7ac30>"
|
|
3150
|
+
]
|
|
3151
|
+
},
|
|
3152
|
+
"execution_count": 8,
|
|
3153
|
+
"metadata": {},
|
|
3154
|
+
"output_type": "execute_result"
|
|
3155
|
+
}
|
|
3156
|
+
],
|
|
3157
|
+
"source": [
|
|
3158
|
+
"# Show the mapping.\n",
|
|
3159
|
+
"mapping"
|
|
3160
|
+
]
|
|
3161
|
+
},
|
|
3162
|
+
{
|
|
3163
|
+
"cell_type": "code",
|
|
3164
|
+
"execution_count": 9,
|
|
3165
|
+
"metadata": {},
|
|
3166
|
+
"outputs": [
|
|
3167
|
+
{
|
|
3168
|
+
"name": "stdout",
|
|
3169
|
+
"output_type": "stream",
|
|
3170
|
+
"text": [
|
|
3171
|
+
"Per-compute energy: 6.8689005693158005e-12\n",
|
|
3172
|
+
"Contributors to energy:\n",
|
|
3173
|
+
"\tTotal: 37.821644600723054\n",
|
|
3174
|
+
"\tI<SEP>MainMemory<SEP>leak: 0\n",
|
|
3175
|
+
"\tI<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3176
|
+
"\tI<SEP>Register<SEP>leak: 0\n",
|
|
3177
|
+
"\tI<SEP>MAC<SEP>leak: 0\n",
|
|
3178
|
+
"\tV<SEP>Register<SEP>read: 0\n",
|
|
3179
|
+
"\tV<SEP>Register<SEP>write: 0\n",
|
|
3180
|
+
"\tV<SEP>GlobalBuffer<SEP>read: 1.082413911819458\n",
|
|
3181
|
+
"\tV<SEP>GlobalBuffer<SEP>write: 0.6518644094467163\n",
|
|
3182
|
+
"\tV<SEP>MainMemory<SEP>read: 0.18116171658039093\n",
|
|
3183
|
+
"\tV<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3184
|
+
"\tV<SEP>MAC<SEP>compute: 0.023089744183296\n",
|
|
3185
|
+
"\tV<SEP>MainMemory<SEP>leak: 0\n",
|
|
3186
|
+
"\tV<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3187
|
+
"\tV<SEP>Register<SEP>leak: 0\n",
|
|
3188
|
+
"\tV<SEP>MAC<SEP>leak: 0\n",
|
|
3189
|
+
"\tK<SEP>Register<SEP>read: 0\n",
|
|
3190
|
+
"\tK<SEP>Register<SEP>write: 0\n",
|
|
3191
|
+
"\tK<SEP>GlobalBuffer<SEP>read: 1.082413911819458\n",
|
|
3192
|
+
"\tK<SEP>GlobalBuffer<SEP>write: 0.6518644094467163\n",
|
|
3193
|
+
"\tK<SEP>MainMemory<SEP>read: 0.18116171658039093\n",
|
|
3194
|
+
"\tK<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3195
|
+
"\tK<SEP>MAC<SEP>compute: 0.023089744183296\n",
|
|
3196
|
+
"\tK<SEP>MainMemory<SEP>leak: 0\n",
|
|
3197
|
+
"\tK<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3198
|
+
"\tK<SEP>Register<SEP>leak: 0\n",
|
|
3199
|
+
"\tK<SEP>MAC<SEP>leak: 0\n",
|
|
3200
|
+
"\tQ<SEP>Register<SEP>read: 0\n",
|
|
3201
|
+
"\tQ<SEP>Register<SEP>write: 0\n",
|
|
3202
|
+
"\tQ<SEP>GlobalBuffer<SEP>read: 1.082413911819458\n",
|
|
3203
|
+
"\tQ<SEP>GlobalBuffer<SEP>write: 0.6518644094467163\n",
|
|
3204
|
+
"\tQ<SEP>MainMemory<SEP>read: 0.18116171658039093\n",
|
|
3205
|
+
"\tQ<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3206
|
+
"\tQ<SEP>MAC<SEP>compute: 0.023089744183296\n",
|
|
3207
|
+
"\tQ<SEP>MainMemory<SEP>leak: 0\n",
|
|
3208
|
+
"\tQ<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3209
|
+
"\tQ<SEP>Register<SEP>leak: 0\n",
|
|
3210
|
+
"\tQ<SEP>MAC<SEP>leak: 0\n",
|
|
3211
|
+
"\tQK<SEP>Register<SEP>read: 0\n",
|
|
3212
|
+
"\tQK<SEP>Register<SEP>write: 0\n",
|
|
3213
|
+
"\tQK<SEP>GlobalBuffer<SEP>read: 2.2158939838409424\n",
|
|
3214
|
+
"\tQK<SEP>GlobalBuffer<SEP>write: 2.587480068206787\n",
|
|
3215
|
+
"\tQK<SEP>MainMemory<SEP>read: 0.24532315135002136\n",
|
|
3216
|
+
"\tQK<SEP>MainMemory<SEP>write: 0.4830979108810425\n",
|
|
3217
|
+
"\tQK<SEP>MAC<SEP>compute: 0.092358976733184\n",
|
|
3218
|
+
"\tQK<SEP>MainMemory<SEP>leak: 0\n",
|
|
3219
|
+
"\tQK<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3220
|
+
"\tQK<SEP>Register<SEP>leak: 0\n",
|
|
3221
|
+
"\tQK<SEP>MAC<SEP>leak: 0\n",
|
|
3222
|
+
"\tQK_softmax<SEP>GlobalBuffer<SEP>read: 0.034222299414528\n",
|
|
3223
|
+
"\tQK_softmax<SEP>GlobalBuffer<SEP>write: 0.040269613367296\n",
|
|
3224
|
+
"\tQK_softmax<SEP>MainMemory<SEP>read: 0.48309792145408\n",
|
|
3225
|
+
"\tQK_softmax<SEP>MainMemory<SEP>write: 0.48309792145408\n",
|
|
3226
|
+
"\tQK_softmax<SEP>MAC<SEP>compute: 0.000721554505728\n",
|
|
3227
|
+
"\tQK_softmax<SEP>MainMemory<SEP>leak: 0\n",
|
|
3228
|
+
"\tQK_softmax<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3229
|
+
"\tQK_softmax<SEP>Register<SEP>leak: 0\n",
|
|
3230
|
+
"\tQK_softmax<SEP>MAC<SEP>leak: 0\n",
|
|
3231
|
+
"\tAV<SEP>Register<SEP>read: 0\n",
|
|
3232
|
+
"\tAV<SEP>Register<SEP>write: 0\n",
|
|
3233
|
+
"\tAV<SEP>GlobalBuffer<SEP>read: 4.380588054656982\n",
|
|
3234
|
+
"\tAV<SEP>GlobalBuffer<SEP>write: 2.6074576377868652\n",
|
|
3235
|
+
"\tAV<SEP>MainMemory<SEP>read: 0.7246468663215637\n",
|
|
3236
|
+
"\tAV<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3237
|
+
"\tAV<SEP>MAC<SEP>compute: 0.092358976733184\n",
|
|
3238
|
+
"\tAV<SEP>MainMemory<SEP>leak: 0\n",
|
|
3239
|
+
"\tAV<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3240
|
+
"\tAV<SEP>Register<SEP>leak: 0\n",
|
|
3241
|
+
"\tAV<SEP>MAC<SEP>leak: 0\n",
|
|
3242
|
+
"\tZ<SEP>Register<SEP>read: 0\n",
|
|
3243
|
+
"\tZ<SEP>Register<SEP>write: 0\n",
|
|
3244
|
+
"\tZ<SEP>GlobalBuffer<SEP>read: 1.082413911819458\n",
|
|
3245
|
+
"\tZ<SEP>GlobalBuffer<SEP>write: 0.6518644094467163\n",
|
|
3246
|
+
"\tZ<SEP>MainMemory<SEP>read: 0.18116171658039093\n",
|
|
3247
|
+
"\tZ<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3248
|
+
"\tZ<SEP>MAC<SEP>compute: 0.023089744183296\n",
|
|
3249
|
+
"\tZ<SEP>MainMemory<SEP>leak: 0\n",
|
|
3250
|
+
"\tZ<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3251
|
+
"\tZ<SEP>Register<SEP>leak: 0\n",
|
|
3252
|
+
"\tZ<SEP>MAC<SEP>leak: 0\n",
|
|
3253
|
+
"\tFFA<SEP>Register<SEP>read: 0\n",
|
|
3254
|
+
"\tFFA<SEP>Register<SEP>write: 0\n",
|
|
3255
|
+
"\tFFA<SEP>GlobalBuffer<SEP>read: 4.329655647277832\n",
|
|
3256
|
+
"\tFFA<SEP>GlobalBuffer<SEP>write: 2.6074576377868652\n",
|
|
3257
|
+
"\tFFA<SEP>MainMemory<SEP>read: 0.7246468663215637\n",
|
|
3258
|
+
"\tFFA<SEP>MainMemory<SEP>write: 0.01509681004544\n",
|
|
3259
|
+
"\tFFA<SEP>MAC<SEP>compute: 0.092358976733184\n",
|
|
3260
|
+
"\tFFA<SEP>MainMemory<SEP>leak: 0\n",
|
|
3261
|
+
"\tFFA<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3262
|
+
"\tFFA<SEP>Register<SEP>leak: 0\n",
|
|
3263
|
+
"\tFFA<SEP>MAC<SEP>leak: 0\n",
|
|
3264
|
+
"\tFFB<SEP>Register<SEP>read: 0\n",
|
|
3265
|
+
"\tFFB<SEP>Register<SEP>write: 0\n",
|
|
3266
|
+
"\tFFB<SEP>GlobalBuffer<SEP>read: 4.380588054656982\n",
|
|
3267
|
+
"\tFFB<SEP>GlobalBuffer<SEP>write: 2.6074576377868652\n",
|
|
3268
|
+
"\tFFB<SEP>MainMemory<SEP>read: 0.7246468663215637\n",
|
|
3269
|
+
"\tFFB<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3270
|
+
"\tFFB<SEP>MAC<SEP>compute: 0.092358976733184\n",
|
|
3271
|
+
"\tFFB<SEP>MainMemory<SEP>leak: 0\n",
|
|
3272
|
+
"\tFFB<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3273
|
+
"\tFFB<SEP>Register<SEP>leak: 0\n",
|
|
3274
|
+
"\tFFB<SEP>MAC<SEP>leak: 0\n",
|
|
3275
|
+
"tensor<SEP>I: 536870912\n",
|
|
3276
|
+
"Total<SEP>energy: 37.821644600723054\n",
|
|
3277
|
+
"tensor<SEP>V: 536870912\n",
|
|
3278
|
+
"tensor<SEP>K: 536870912\n",
|
|
3279
|
+
"tensor<SEP>Q: 536870912\n",
|
|
3280
|
+
"tensor<SEP>QK: 68719476736\n",
|
|
3281
|
+
"tensor<SEP>QK_softmax: 68719476736\n",
|
|
3282
|
+
"tensor<SEP>AV: 536870912\n",
|
|
3283
|
+
"tensor<SEP>Z: 536870912\n",
|
|
3284
|
+
"tensor<SEP>FFA: 2147483648\n",
|
|
3285
|
+
"I<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3286
|
+
"I<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3287
|
+
"I<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3288
|
+
"I<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3289
|
+
"I<SEP>mapping: nodes=[Storage(tensors=['I_in'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['I_in'], resource='MainMemory', persistent=False), Storage(tensors=['I'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['I'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='d', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Compute(einsum='I', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3290
|
+
"V<SEP>stride0: 0.0\n",
|
|
3291
|
+
"V<SEP>stride1: 4\n",
|
|
3292
|
+
"V<SEP>stride2: 32\n",
|
|
3293
|
+
"V<SEP>stride4: 128\n",
|
|
3294
|
+
"V<SEP>stride5: 0.0\n",
|
|
3295
|
+
"V<SEP>stride6: 128.0\n",
|
|
3296
|
+
"V<SEP>stride7: 1.0\n",
|
|
3297
|
+
"V<SEP>energy<SEP>Register<SEP>read: 0\n",
|
|
3298
|
+
"V<SEP>energy<SEP>Register<SEP>write: 0\n",
|
|
3299
|
+
"V<SEP>energy<SEP>GlobalBuffer<SEP>read: 1.082413911819458\n",
|
|
3300
|
+
"V<SEP>energy<SEP>GlobalBuffer<SEP>write: 0.6518644094467163\n",
|
|
3301
|
+
"V<SEP>energy<SEP>MainMemory<SEP>read: 0.18116171658039093\n",
|
|
3302
|
+
"V<SEP>energy<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3303
|
+
"V<SEP>energy<SEP>MAC<SEP>compute: 0.023089744183296\n",
|
|
3304
|
+
"V<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3305
|
+
"V<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3306
|
+
"V<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3307
|
+
"V<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3308
|
+
"V<SEP>mapping: nodes=[Storage(tensors=['WV'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=True), Reservation(purposes=['WV'], resource='MainMemory', persistent=True), Storage(tensors=['V'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['V'], resource='MainMemory', persistent=False), Storage(tensors=['I'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['I'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='e', tile_pattern=TilePattern(stride=stride1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=stride2, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride3, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Storage(tensors=['V'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['V'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='d', tile_pattern=TilePattern(stride=stride4, initial_tile_shape=None, calculated_n_iterations=n_iterations4)), Storage(tensors=['WV'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WV'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations5)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride6, initial_tile_shape=None, calculated_n_iterations=n_iterations6)), Storage(tensors=['I'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['I'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='e', tile_pattern=TilePattern(stride=stride7, initial_tile_shape=None, calculated_n_iterations=n_iterations7)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=stride8, initial_tile_shape=None, calculated_n_iterations=n_iterations8)), Spatial(rank_variable='d', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations9), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='e', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations10), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='h', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations11), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Storage(tensors=['WV'], component='Register', component_object=Memory(name='Register', attributes=MemoryAttributes(energy=0, energy_scale=1, latency=0, area_scale=1, area=0, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 1}, size=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='weight', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WV'], resource='Register', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations12)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations13)), Compute(einsum='V', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3309
|
+
"V<SEP>stride3: 256.0\n",
|
|
3310
|
+
"V<SEP>stride8: 32.0\n",
|
|
3311
|
+
"K<SEP>stride1: 4\n",
|
|
3312
|
+
"K<SEP>stride2: 32\n",
|
|
3313
|
+
"K<SEP>stride3: 256.0\n",
|
|
3314
|
+
"K<SEP>stride4: 128\n",
|
|
3315
|
+
"K<SEP>stride6: 128.0\n",
|
|
3316
|
+
"K<SEP>stride7: 1.0\n",
|
|
3317
|
+
"K<SEP>stride8: 32.0\n",
|
|
3318
|
+
"K<SEP>energy<SEP>Register<SEP>read: 0\n",
|
|
3319
|
+
"K<SEP>energy<SEP>Register<SEP>write: 0\n",
|
|
3320
|
+
"K<SEP>energy<SEP>GlobalBuffer<SEP>read: 1.082413911819458\n",
|
|
3321
|
+
"K<SEP>energy<SEP>GlobalBuffer<SEP>write: 0.6518644094467163\n",
|
|
3322
|
+
"K<SEP>energy<SEP>MainMemory<SEP>read: 0.18116171658039093\n",
|
|
3323
|
+
"K<SEP>energy<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3324
|
+
"K<SEP>energy<SEP>MAC<SEP>compute: 0.023089744183296\n",
|
|
3325
|
+
"K<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3326
|
+
"K<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3327
|
+
"K<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3328
|
+
"K<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3329
|
+
"K<SEP>mapping: nodes=[Storage(tensors=['WK'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=True), Reservation(purposes=['WK'], resource='MainMemory', persistent=True), Storage(tensors=['K'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['K'], resource='MainMemory', persistent=False), Storage(tensors=['I'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['I'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='e', tile_pattern=TilePattern(stride=stride1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=stride2, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride3, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Storage(tensors=['K'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['K'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='d', tile_pattern=TilePattern(stride=stride4, initial_tile_shape=None, calculated_n_iterations=n_iterations4)), Storage(tensors=['WK'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WK'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations5)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride6, initial_tile_shape=None, calculated_n_iterations=n_iterations6)), Storage(tensors=['I'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['I'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='e', tile_pattern=TilePattern(stride=stride7, initial_tile_shape=None, calculated_n_iterations=n_iterations7)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=stride8, initial_tile_shape=None, calculated_n_iterations=n_iterations8)), Spatial(rank_variable='d', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations9), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='e', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations10), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='h', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations11), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Storage(tensors=['WK'], component='Register', component_object=Memory(name='Register', attributes=MemoryAttributes(energy=0, energy_scale=1, latency=0, area_scale=1, area=0, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 1}, size=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='weight', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WK'], resource='Register', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations12)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations13)), Compute(einsum='K', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3330
|
+
"K<SEP>stride0: 0.0\n",
|
|
3331
|
+
"K<SEP>stride5: 0.0\n",
|
|
3332
|
+
"Q<SEP>stride1: 4\n",
|
|
3333
|
+
"Q<SEP>stride2: 32\n",
|
|
3334
|
+
"Q<SEP>stride3: 256.0\n",
|
|
3335
|
+
"Q<SEP>stride4: 128\n",
|
|
3336
|
+
"Q<SEP>stride5: 0.0\n",
|
|
3337
|
+
"Q<SEP>energy<SEP>Register<SEP>read: 0\n",
|
|
3338
|
+
"Q<SEP>energy<SEP>Register<SEP>write: 0\n",
|
|
3339
|
+
"Q<SEP>energy<SEP>GlobalBuffer<SEP>read: 1.082413911819458\n",
|
|
3340
|
+
"Q<SEP>energy<SEP>GlobalBuffer<SEP>write: 0.6518644094467163\n",
|
|
3341
|
+
"Q<SEP>energy<SEP>MainMemory<SEP>read: 0.18116171658039093\n",
|
|
3342
|
+
"Q<SEP>energy<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3343
|
+
"Q<SEP>energy<SEP>MAC<SEP>compute: 0.023089744183296\n",
|
|
3344
|
+
"Q<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3345
|
+
"Q<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3346
|
+
"Q<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3347
|
+
"Q<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3348
|
+
"Q<SEP>mapping: nodes=[Storage(tensors=['WQ'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=True), Reservation(purposes=['WQ'], resource='MainMemory', persistent=True), Storage(tensors=['Q'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['Q'], resource='MainMemory', persistent=False), Storage(tensors=['I'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['I'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='e', tile_pattern=TilePattern(stride=stride1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=stride2, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride3, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Storage(tensors=['Q'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['Q'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='d', tile_pattern=TilePattern(stride=stride4, initial_tile_shape=None, calculated_n_iterations=n_iterations4)), Storage(tensors=['WQ'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WQ'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations5)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride6, initial_tile_shape=None, calculated_n_iterations=n_iterations6)), Storage(tensors=['I'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['I'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='e', tile_pattern=TilePattern(stride=stride7, initial_tile_shape=None, calculated_n_iterations=n_iterations7)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=stride8, initial_tile_shape=None, calculated_n_iterations=n_iterations8)), Spatial(rank_variable='d', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations9), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='h', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations10), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='e', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations11), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Storage(tensors=['WQ'], component='Register', component_object=Memory(name='Register', attributes=MemoryAttributes(energy=0, energy_scale=1, latency=0, area_scale=1, area=0, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 1}, size=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='weight', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WQ'], resource='Register', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations12)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations13)), Compute(einsum='Q', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3349
|
+
"Q<SEP>stride6: 128.0\n",
|
|
3350
|
+
"Q<SEP>stride7: 1.0\n",
|
|
3351
|
+
"Q<SEP>stride8: 32.0\n",
|
|
3352
|
+
"Q<SEP>stride0: 0.0\n",
|
|
3353
|
+
"QK<SEP>stride1: 128.0\n",
|
|
3354
|
+
"QK<SEP>stride3: 256\n",
|
|
3355
|
+
"QK<SEP>stride4: 32\n",
|
|
3356
|
+
"QK<SEP>stride5: 256\n",
|
|
3357
|
+
"QK<SEP>stride6: 128.0\n",
|
|
3358
|
+
"QK<SEP>energy<SEP>Register<SEP>read: 0\n",
|
|
3359
|
+
"QK<SEP>energy<SEP>Register<SEP>write: 0\n",
|
|
3360
|
+
"QK<SEP>energy<SEP>GlobalBuffer<SEP>read: 2.2158939838409424\n",
|
|
3361
|
+
"QK<SEP>energy<SEP>GlobalBuffer<SEP>write: 2.587480068206787\n",
|
|
3362
|
+
"QK<SEP>energy<SEP>MainMemory<SEP>read: 0.24532315135002136\n",
|
|
3363
|
+
"QK<SEP>energy<SEP>MainMemory<SEP>write: 0.4830979108810425\n",
|
|
3364
|
+
"QK<SEP>energy<SEP>MAC<SEP>compute: 0.092358976733184\n",
|
|
3365
|
+
"QK<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3366
|
+
"QK<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3367
|
+
"QK<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3368
|
+
"QK<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3369
|
+
"QK<SEP>mapping: nodes=[Storage(tensors=['QK'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['QK'], resource='MainMemory', persistent=False), Storage(tensors=['Q'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['Q'], resource='MainMemory', persistent=False), Storage(tensors=['K'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['K'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='e', tile_pattern=TilePattern(stride=stride1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride3, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Storage(tensors=['Q'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['Q'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='p', tile_pattern=TilePattern(stride=stride4, initial_tile_shape=None, calculated_n_iterations=n_iterations4)), Storage(tensors=['K'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['K'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride5, initial_tile_shape=None, calculated_n_iterations=n_iterations5)), Storage(tensors=['QK'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['QK'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='e', tile_pattern=TilePattern(stride=stride6, initial_tile_shape=None, calculated_n_iterations=n_iterations6)), Spatial(rank_variable='e', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations7), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='p', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations8), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Storage(tensors=['K'], component='Register', component_object=Memory(name='Register', attributes=MemoryAttributes(energy=0, energy_scale=1, latency=0, area_scale=1, area=0, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 1}, size=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='weight', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['K'], resource='Register', persistent=False), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations9)), Compute(einsum='QK', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3370
|
+
"QK<SEP>stride2: 0.0\n",
|
|
3371
|
+
"QK_softmax<SEP>energy<SEP>GlobalBuffer<SEP>read: 0.034222299414528\n",
|
|
3372
|
+
"QK_softmax<SEP>energy<SEP>GlobalBuffer<SEP>write: 0.040269613367296\n",
|
|
3373
|
+
"QK_softmax<SEP>energy<SEP>MainMemory<SEP>read: 0.48309792145408\n",
|
|
3374
|
+
"QK_softmax<SEP>energy<SEP>MainMemory<SEP>write: 0.48309792145408\n",
|
|
3375
|
+
"QK_softmax<SEP>energy<SEP>MAC<SEP>compute: 0.000721554505728\n",
|
|
3376
|
+
"QK_softmax<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3377
|
+
"QK_softmax<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3378
|
+
"QK_softmax<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3379
|
+
"QK_softmax<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3380
|
+
"QK_softmax<SEP>mapping: nodes=[Storage(tensors=['QK_softmax'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['QK_softmax'], resource='MainMemory', persistent=False), Storage(tensors=['QK'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['QK'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Temporal(rank_variable='p', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Storage(tensors=['QK_softmax'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Storage(tensors=['QK'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['QK_softmax'], resource='GlobalBuffer', persistent=False), Reservation(purposes=['QK'], resource='GlobalBuffer', persistent=False), Compute(einsum='QK_softmax', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3381
|
+
"AV<SEP>stride1: 128.0\n",
|
|
3382
|
+
"AV<SEP>stride3: 256\n",
|
|
3383
|
+
"AV<SEP>stride4: 128\n",
|
|
3384
|
+
"AV<SEP>stride5: 128\n",
|
|
3385
|
+
"AV<SEP>stride6: 32.0\n",
|
|
3386
|
+
"AV<SEP>energy<SEP>Register<SEP>read: 0\n",
|
|
3387
|
+
"AV<SEP>energy<SEP>Register<SEP>write: 0\n",
|
|
3388
|
+
"AV<SEP>energy<SEP>GlobalBuffer<SEP>read: 4.380588054656982\n",
|
|
3389
|
+
"AV<SEP>energy<SEP>GlobalBuffer<SEP>write: 2.6074576377868652\n",
|
|
3390
|
+
"AV<SEP>energy<SEP>MainMemory<SEP>read: 0.7246468663215637\n",
|
|
3391
|
+
"AV<SEP>energy<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3392
|
+
"AV<SEP>energy<SEP>MAC<SEP>compute: 0.092358976733184\n",
|
|
3393
|
+
"AV<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3394
|
+
"AV<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3395
|
+
"AV<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3396
|
+
"AV<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3397
|
+
"AV<SEP>mapping: nodes=[Storage(tensors=['V'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['V'], resource='MainMemory', persistent=False), Storage(tensors=['QK_softmax'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['QK_softmax'], resource='MainMemory', persistent=False), Storage(tensors=['AV'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['AV'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='f', tile_pattern=TilePattern(stride=stride1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride3, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Storage(tensors=['AV'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['AV'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='p', tile_pattern=TilePattern(stride=stride4, initial_tile_shape=None, calculated_n_iterations=n_iterations4)), Storage(tensors=['V'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['V'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride5, initial_tile_shape=None, calculated_n_iterations=n_iterations5)), Storage(tensors=['QK_softmax'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['QK_softmax'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='f', tile_pattern=TilePattern(stride=stride6, initial_tile_shape=None, calculated_n_iterations=n_iterations6)), Spatial(rank_variable='p', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations7), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='f', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations8), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Storage(tensors=['V'], component='Register', component_object=Memory(name='Register', attributes=MemoryAttributes(energy=0, energy_scale=1, latency=0, area_scale=1, area=0, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 1}, size=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='weight', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['V'], resource='Register', persistent=False), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations9)), Compute(einsum='AV', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3398
|
+
"AV<SEP>stride2: 0.0\n",
|
|
3399
|
+
"Z<SEP>stride1: 256\n",
|
|
3400
|
+
"Z<SEP>stride2: 128\n",
|
|
3401
|
+
"Z<SEP>stride3: 128.0\n",
|
|
3402
|
+
"Z<SEP>stride4: 1\n",
|
|
3403
|
+
"Z<SEP>stride6: 0.0\n",
|
|
3404
|
+
"Z<SEP>stride7: 0.0\n",
|
|
3405
|
+
"Z<SEP>stride8: 0.0\n",
|
|
3406
|
+
"Z<SEP>energy<SEP>Register<SEP>read: 0\n",
|
|
3407
|
+
"Z<SEP>energy<SEP>Register<SEP>write: 0\n",
|
|
3408
|
+
"Z<SEP>energy<SEP>GlobalBuffer<SEP>read: 1.082413911819458\n",
|
|
3409
|
+
"Z<SEP>energy<SEP>GlobalBuffer<SEP>write: 0.6518644094467163\n",
|
|
3410
|
+
"Z<SEP>energy<SEP>MainMemory<SEP>read: 0.18116171658039093\n",
|
|
3411
|
+
"Z<SEP>energy<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3412
|
+
"Z<SEP>energy<SEP>MAC<SEP>compute: 0.023089744183296\n",
|
|
3413
|
+
"Z<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3414
|
+
"Z<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3415
|
+
"Z<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3416
|
+
"Z<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3417
|
+
"Z<SEP>mapping: nodes=[Storage(tensors=['Z'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['Z'], resource='MainMemory', persistent=False), Storage(tensors=['WZ'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=True), Reservation(purposes=['WZ'], resource='MainMemory', persistent=True), Storage(tensors=['AV'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['AV'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='g', tile_pattern=TilePattern(stride=stride1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride2, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Storage(tensors=['Z'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['Z'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='f', tile_pattern=TilePattern(stride=stride3, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Temporal(rank_variable='h', tile_pattern=TilePattern(stride=stride4, initial_tile_shape=None, calculated_n_iterations=n_iterations4)), Storage(tensors=['AV'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['AV'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='g', tile_pattern=TilePattern(stride=stride5, initial_tile_shape=None, calculated_n_iterations=n_iterations5)), Storage(tensors=['WZ'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WZ'], resource='GlobalBuffer', persistent=False), Spatial(rank_variable='h', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations6), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='f', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations7), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='g', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations8), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Storage(tensors=['WZ'], component='Register', component_object=Memory(name='Register', attributes=MemoryAttributes(energy=0, energy_scale=1, latency=0, area_scale=1, area=0, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 1}, size=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='weight', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WZ'], resource='Register', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations9)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations10)), Compute(einsum='Z', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3418
|
+
"Z<SEP>stride5: 32.0\n",
|
|
3419
|
+
"Z<SEP>stride0: 0.0\n",
|
|
3420
|
+
"FFA<SEP>stride1: 128\n",
|
|
3421
|
+
"FFA<SEP>stride2: 256.0\n",
|
|
3422
|
+
"FFA<SEP>stride3: 128\n",
|
|
3423
|
+
"FFA<SEP>stride5: 128.0\n",
|
|
3424
|
+
"FFA<SEP>stride6: 32.0\n",
|
|
3425
|
+
"FFA<SEP>energy<SEP>Register<SEP>read: 0\n",
|
|
3426
|
+
"FFA<SEP>energy<SEP>Register<SEP>write: 0\n",
|
|
3427
|
+
"FFA<SEP>energy<SEP>GlobalBuffer<SEP>read: 4.329655647277832\n",
|
|
3428
|
+
"FFA<SEP>energy<SEP>GlobalBuffer<SEP>write: 2.6074576377868652\n",
|
|
3429
|
+
"FFA<SEP>energy<SEP>MainMemory<SEP>read: 0.7246468663215637\n",
|
|
3430
|
+
"FFA<SEP>energy<SEP>MainMemory<SEP>write: 0.01509681004544\n",
|
|
3431
|
+
"FFA<SEP>energy<SEP>MAC<SEP>compute: 0.092358976733184\n",
|
|
3432
|
+
"FFA<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3433
|
+
"FFA<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3434
|
+
"FFA<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3435
|
+
"FFA<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3436
|
+
"FFA<SEP>mapping: nodes=[Storage(tensors=['Z'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['Z'], resource='MainMemory', persistent=False), Storage(tensors=['WFFA'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=True), Reservation(purposes=['WFFA'], resource='MainMemory', persistent=True), Storage(tensors=['FFA'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['FFA'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='c', tile_pattern=TilePattern(stride=stride1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride2, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Storage(tensors=['FFA'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['FFA'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='g', tile_pattern=TilePattern(stride=stride3, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Storage(tensors=['WFFA'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WFFA'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations4)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride5, initial_tile_shape=None, calculated_n_iterations=n_iterations5)), Storage(tensors=['Z'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['Z'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='c', tile_pattern=TilePattern(stride=stride6, initial_tile_shape=None, calculated_n_iterations=n_iterations6)), Spatial(rank_variable='g', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations7), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='c', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations8), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Storage(tensors=['WFFA'], component='Register', component_object=Memory(name='Register', attributes=MemoryAttributes(energy=0, energy_scale=1, latency=0, area_scale=1, area=0, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 1}, size=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='weight', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WFFA'], resource='Register', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations9)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations10)), Compute(einsum='FFA', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3437
|
+
"FFA<SEP>stride0: 0.0\n",
|
|
3438
|
+
"FFA<SEP>stride4: 0.0\n",
|
|
3439
|
+
"FFB<SEP>stride1: 128\n",
|
|
3440
|
+
"FFB<SEP>stride2: 256.0\n",
|
|
3441
|
+
"FFB<SEP>stride3: 128\n",
|
|
3442
|
+
"FFB<SEP>stride5: 128.0\n",
|
|
3443
|
+
"FFB<SEP>stride6: 32.0\n",
|
|
3444
|
+
"FFB<SEP>energy<SEP>Register<SEP>read: 0\n",
|
|
3445
|
+
"FFB<SEP>energy<SEP>Register<SEP>write: 0\n",
|
|
3446
|
+
"FFB<SEP>energy<SEP>GlobalBuffer<SEP>read: 4.380588054656982\n",
|
|
3447
|
+
"FFB<SEP>energy<SEP>GlobalBuffer<SEP>write: 2.6074576377868652\n",
|
|
3448
|
+
"FFB<SEP>energy<SEP>MainMemory<SEP>read: 0.7246468663215637\n",
|
|
3449
|
+
"FFB<SEP>energy<SEP>MainMemory<SEP>write: 0.00377420251136\n",
|
|
3450
|
+
"FFB<SEP>energy<SEP>MAC<SEP>compute: 0.092358976733184\n",
|
|
3451
|
+
"FFB<SEP>energy<SEP>MainMemory<SEP>leak: 0\n",
|
|
3452
|
+
"FFB<SEP>energy<SEP>GlobalBuffer<SEP>leak: 0\n",
|
|
3453
|
+
"FFB<SEP>energy<SEP>Register<SEP>leak: 0\n",
|
|
3454
|
+
"FFB<SEP>energy<SEP>MAC<SEP>leak: 0\n",
|
|
3455
|
+
"FFB<SEP>mapping: nodes=[Storage(tensors=['WFFB'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=True), Reservation(purposes=['WFFB'], resource='MainMemory', persistent=True), Storage(tensors=['FFB'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['FFB'], resource='MainMemory', persistent=False), Storage(tensors=['FFA'], component='MainMemory', component_object=Memory(name='MainMemory', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='(read_actions + write_actions) / (8 * 38.4e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=inf), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MainMemory action read.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Calculating energy for MainMemory action write.', 'Setting MainMemory energy to args.energy=7.03e-12', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=7.03e-12, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='All', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['FFA'], resource='MainMemory', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations0)), Temporal(rank_variable='j', tile_pattern=TilePattern(stride=stride1, initial_tile_shape=None, calculated_n_iterations=n_iterations1)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride2, initial_tile_shape=None, calculated_n_iterations=n_iterations2)), Storage(tensors=['FFB'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['FFB'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='c', tile_pattern=TilePattern(stride=stride3, initial_tile_shape=None, calculated_n_iterations=n_iterations3)), Storage(tensors=['WFFB'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WFFB'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations4)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=stride5, initial_tile_shape=None, calculated_n_iterations=n_iterations5)), Storage(tensors=['FFA'], component='GlobalBuffer', component_object=Memory(name='GlobalBuffer', attributes=MemoryAttributes(energy=None, energy_scale=1, latency='max(read_actions * 512e9, write_actions * 128e9)', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 8}, size=524288), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for GlobalBuffer action read.', 'Setting GlobalBuffer energy to args.energy=2.49e-13', 'Calculating energy for GlobalBuffer action write.', 'Setting GlobalBuffer energy to args.energy=2.93e-13', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=2.49e-13, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=2.93e-13, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='All', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['FFA'], resource='GlobalBuffer', persistent=False), Temporal(rank_variable='j', tile_pattern=TilePattern(stride=stride6, initial_tile_shape=None, calculated_n_iterations=n_iterations6)), Spatial(rank_variable='c', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations7), name='reuse_output', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Spatial(rank_variable='j', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations8), name='reuse_input', component='ArrayFanout', component_object=Fanout(name='ArrayFanout', attributes=FanoutAttributes(), spatial=[Spatial(name='reuse_input', fanout=32, may_reuse='input', loop_bounds=[], min_utilization=1, must_reuse='input'), Spatial(name='reuse_output', fanout=192, may_reuse='output', loop_bounds=[], min_utilization=1, must_reuse='output')])), Storage(tensors=['WFFB'], component='Register', component_object=Memory(name='Register', attributes=MemoryAttributes(energy=0, energy_scale=1, latency=0, area_scale=1, area=0, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1, datawidth={'All()': 1}, size=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for Register action read.', 'Setting Register energy to attributes.energy=0', 'Calculating energy for Register action write.', 'Setting Register energy to attributes.energy=0', 'Using predefined leak power value attributes.leak_power=0'], actions=[ArchMemoryAction(name='read', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1)), ArchMemoryAction(name='write', arguments=ArchMemoryActionArguments(energy=0, energy_scale=1, bits_per_action=1))], enabled=True, tensors=Tensors(keep='weight', may_keep='<Nothing if keep is defined, else All>', tile_shape=[], no_refetch_from_above='~All', tensor_order_options=[])), persistent=False), Reservation(purposes=['WFFB'], resource='Register', persistent=False), Temporal(rank_variable='b', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations9)), Temporal(rank_variable='m', tile_pattern=TilePattern(stride=1, initial_tile_shape=None, calculated_n_iterations=n_iterations10)), Compute(einsum='FFB', compute='MAC', component_object=Compute(name='MAC', attributes=ComputeAttributes(energy=None, energy_scale=1, latency='compute_actions * 1e-9', area_scale=1, area=None, total_area=None, leak_power=0, total_leak_power=0, leak_power_scale=1), spatial=[], component_class=None, component_model=None, energy_area_log=['Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0', 'Calculating energy for MAC action compute.', 'Setting MAC energy to args.energy=8.4e-14', 'Using predefined leak power value attributes.leak_power=0'], actions=[Action(name='compute', arguments=AttributesWithEnergy(energy=8.4e-14, energy_scale=1))], enabled=True))]\n",
|
|
3456
|
+
"FFB<SEP>stride0: 0.0\n",
|
|
3457
|
+
"FFB<SEP>stride4: 0.0\n",
|
|
3458
|
+
"Total<SEP>mapping: <accelforge.mapper.FFM.main.MappingFromRow object at 0x7f342026ad80>\n"
|
|
3459
|
+
]
|
|
3460
|
+
}
|
|
3461
|
+
],
|
|
3462
|
+
"source": [
|
|
3463
|
+
"accessor = \"latency\" if spec.mapper.ffm.metrics == af.mapper.FFM.Metrics.LATENCY else \"energy\"\n",
|
|
3464
|
+
"per_compute = mapping.access(\"Total\").per_compute().to_dict()[accessor]\n",
|
|
3465
|
+
"print(f'Per-compute {accessor}: {per_compute}')\n",
|
|
3466
|
+
"\n",
|
|
3467
|
+
"print(f'Contributors to {accessor}:')\n",
|
|
3468
|
+
"for k, v in mapping.access(accessor).to_dict().items():\n",
|
|
3469
|
+
" print(f\"\\t{k}: {v}\")\n",
|
|
3470
|
+
"\n",
|
|
3471
|
+
"# Print the other stats\n",
|
|
3472
|
+
"for k, v in mapping.to_dict().items():\n",
|
|
3473
|
+
" print(f\"{k}: {v}\")"
|
|
3474
|
+
]
|
|
3475
|
+
}
|
|
3476
|
+
],
|
|
3477
|
+
"metadata": {
|
|
3478
|
+
"kernelspec": {
|
|
3479
|
+
"display_name": "Python 3",
|
|
3480
|
+
"language": "python",
|
|
3481
|
+
"name": "python3"
|
|
3482
|
+
},
|
|
3483
|
+
"language_info": {
|
|
3484
|
+
"codemirror_mode": {
|
|
3485
|
+
"name": "ipython",
|
|
3486
|
+
"version": 3
|
|
3487
|
+
},
|
|
3488
|
+
"file_extension": ".py",
|
|
3489
|
+
"mimetype": "text/x-python",
|
|
3490
|
+
"name": "python",
|
|
3491
|
+
"nbconvert_exporter": "python",
|
|
3492
|
+
"pygments_lexer": "ipython3",
|
|
3493
|
+
"version": "3.12.11"
|
|
3494
|
+
}
|
|
3495
|
+
},
|
|
3496
|
+
"nbformat": 4,
|
|
3497
|
+
"nbformat_minor": 4
|
|
3498
|
+
}
|