From df0351d0874c8cfc12d2ed7713c206d2c920798f Mon Sep 17 00:00:00 2001 From: pleroy Date: Sun, 5 Jan 2025 12:13:50 +0100 Subject: [PATCH] Readying. --- osaca/semantics/kernel_dg.py | 10 ++++++---- tests/test_semantics.py | 1 - 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/osaca/semantics/kernel_dg.py b/osaca/semantics/kernel_dg.py index 0116c12..02f8a4f 100644 --- a/osaca/semantics/kernel_dg.py +++ b/osaca/semantics/kernel_dg.py @@ -82,9 +82,8 @@ class KernelDG(nx.DiGraph): :type flag_dependencies: boolean, optional :returns: :class:`~nx.DiGraph` -- directed graph object """ - # 1. go through kernel instruction forms and add them as node attribute - # 2. find edges (to dependend further instruction) - # 3. get LT value and set as edge weight + # Go through kernel instruction forms and add them as nodes of the graph. Create a LOAD + # node for instructions that include a memory reference. dg = nx.DiGraph() loads = {} for i, instruction_form in enumerate(kernel): @@ -110,11 +109,14 @@ class KernelDG(nx.DiGraph): instruction_form.line_number, latency=instruction_form.latency - instruction_form.latency_wo_load, ) - #TODO comments + + # 1. find edges (to dependend further instruction) + # 2. get LT value and set as edge weight for i, instruction_form in enumerate(kernel): for dep, dep_flags in self.find_depending( instruction_form, kernel[i + 1 :], flag_dependencies ): + # print(instruction_form.line_number,"\t",dep.line_number,"\n") edge_weight = ( instruction_form.latency if "mem_dep" in dep_flags or instruction_form.latency_wo_load is None diff --git a/tests/test_semantics.py b/tests/test_semantics.py index 352de77..f060659 100755 --- a/tests/test_semantics.py +++ b/tests/test_semantics.py @@ -516,7 +516,6 @@ class TestSemanticTools(unittest.TestCase): self.assertTrue(nx.algorithms.dag.is_directed_acyclic_graph(dg.dg)) self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=3)), {6, 8}) self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=5)), {10, 12}) - self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=5)), {10, 12}) self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=18)), {18.875}) self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=18.875)), {19}) self.assertEqual(set(dg.get_dependent_instruction_forms(line_number=19)), set())