From 453a29d997e9c72bbac92754ada5fdfcc7463d6c Mon Sep 17 00:00:00 2001 From: Russel Arbore <russel.jma@gmail.com> Date: Sun, 16 Mar 2025 13:24:02 -0700 Subject: [PATCH] updates for paper --- paper_resources/arr_sum_ir.dot | 32 +++++++++++++-------------- paper_resources/arr_sum_ir.pdf | Bin 17654 -> 17430 bytes paper_resources/matmul_ir.dot | 38 ++++++++++++++++----------------- paper_resources/matmul_ir.pdf | Bin 19165 -> 18527 bytes 4 files changed, 35 insertions(+), 35 deletions(-) diff --git a/paper_resources/arr_sum_ir.dot b/paper_resources/arr_sum_ir.dot index 7479b259..4c012291 100644 --- a/paper_resources/arr_sum_ir.dot +++ b/paper_resources/arr_sum_ir.dot @@ -6,23 +6,23 @@ style=invis cluster=true ranksep=1; nodesep=1; -start_0_0 [xlabel=0, label=<Start<BR /><FONT POINT-SIZE="8">Control</FONT>>, color=darkred]; -parameter_0_1 [xlabel=1, label=<Parameter (#0)<BR /><FONT POINT-SIZE="8">Array(Float32, #0)</FONT>>, color=darkblue]; -dynamic_constant_0_2 [xlabel=2, label=<DynamicConstant (#0)<BR /><FONT POINT-SIZE="8">UnsignedInteger64</FONT>>, color=darkblue]; -projection_0_3 [xlabel=3, label=<Projection<BR /><FONT POINT-SIZE="8">Control</FONT>>, color=darkred]; -add_0_4 [xlabel=4, label=<Add<BR /><FONT POINT-SIZE="8">UnsignedInteger64</FONT>>, color=darkblue]; -add_0_5 [xlabel=5, label=<Add<BR /><FONT POINT-SIZE="8">Float32</FONT>>, color=darkblue]; -read_0_6 [xlabel=6, label=<Read<BR /><FONT POINT-SIZE="8">Float32</FONT>>, color=darkblue]; -lt_0_7 [xlabel=7, label=<LT<BR /><FONT POINT-SIZE="8">Boolean</FONT>>, color=darkblue]; -if_0_8 [xlabel=8, label=<If<BR /><FONT POINT-SIZE="8">Control</FONT>>, color=darkred]; -projection_0_9 [xlabel=9, label=<Projection<BR /><FONT POINT-SIZE="8">Control</FONT>>, color=darkred]; +start_0_0 [xlabel=0, label=<Start<BR />Control>, color=darkred]; +parameter_0_1 [xlabel=1, label=<Parameter (#0)<BR />Array(Float32, #0)>, color=darkblue]; +dynamic_constant_0_2 [xlabel=2, label=<DynamicConstant (#0)<BR />UnsignedInteger64>, color=darkblue]; +projection_0_3 [xlabel=3, label=<Projection<BR />Control>, color=darkred]; +add_0_4 [xlabel=4, label=<Add<BR />UnsignedInteger64>, color=darkblue]; +add_0_5 [xlabel=5, label=<Add<BR />Float32>, color=darkblue]; +read_0_6 [xlabel=6, label=<Read<BR />Float32>, color=darkblue]; +lt_0_7 [xlabel=7, label=<LT<BR />Boolean>, color=darkblue]; +if_0_8 [xlabel=8, label=<If<BR />Control>, color=darkred]; +projection_0_9 [xlabel=9, label=<Projection<BR />Control>, color=darkred]; return_0_10 [xlabel=10, label=<Return>, color=darkred]; -constant_0_11 [xlabel=11, label=<Constant (0)<BR /><FONT POINT-SIZE="8">UnsignedInteger64</FONT>>, color=darkblue]; -constant_0_12 [xlabel=12, label=<Constant (1)<BR /><FONT POINT-SIZE="8">UnsignedInteger64</FONT>>, color=darkblue]; -constant_0_13 [xlabel=13, label=<Constant (0)<BR /><FONT POINT-SIZE="8">Float32</FONT>>, color=darkblue]; -phi_0_14 [xlabel=14, label=<Phi<BR /><FONT POINT-SIZE="8">UnsignedInteger64</FONT>>, color=darkblue]; -phi_0_15 [xlabel=15, label=<Phi<BR /><FONT POINT-SIZE="8">Float32</FONT>>, color=darkblue]; -region_0_16 [xlabel=16, label=<Region<BR /><FONT POINT-SIZE="8">Control</FONT>>, color=darkred]; +constant_0_11 [xlabel=11, label=<Constant (0)<BR />UnsignedInteger64>, color=darkblue]; +constant_0_12 [xlabel=12, label=<Constant (1)<BR />UnsignedInteger64>, color=darkblue]; +constant_0_13 [xlabel=13, label=<Constant (0)<BR />Float32>, color=darkblue]; +phi_0_14 [xlabel=14, label=<Phi<BR />UnsignedInteger64>, color=darkblue]; +phi_0_15 [xlabel=15, label=<Phi<BR />Float32>, color=darkblue]; +region_0_16 [xlabel=16, label=<Region<BR />Control>, color=darkred]; if_0_8 -> projection_0_3 [color=black, style="dashed"]; phi_0_14 -> add_0_4 [color=black, style=""]; constant_0_12 -> add_0_4 [color=black, style=""]; diff --git a/paper_resources/arr_sum_ir.pdf b/paper_resources/arr_sum_ir.pdf index 61c5e4314dd3a4a61064e228fc6ec50acc17232c..c21eeeaebeba98c202dc8d93b3198eaf39374356 100644 GIT binary patch delta 4093 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 delta 4316 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 K3MC~)Peuxbj7jwX diff --git a/paper_resources/matmul_ir.dot b/paper_resources/matmul_ir.dot index ab3f4464..5ecbf388 100644 --- a/paper_resources/matmul_ir.dot +++ b/paper_resources/matmul_ir.dot @@ -6,26 +6,26 @@ style=invis cluster=true ranksep=1; nodesep=1; -start_0_0 [xlabel=0, label=<Start<BR /><FONT POINT-SIZE="8">Control</FONT>>, color=darkred]; -parameter_0_1 [xlabel=1, label=<Parameter (#0)<BR /><FONT POINT-SIZE="8">Array(Integer32, #0, #1)</FONT>>, color=darkblue]; -parameter_0_2 [xlabel=2, label=<Parameter (#1)<BR /><FONT POINT-SIZE="8">Array(Integer32, #1, #2)</FONT>>, color=darkblue]; -fork_0_3 [xlabel=3, label=<Fork (#0, #2)<BR /><FONT POINT-SIZE="8">Control</FONT><BR /><FONT POINT-SIZE="8">ParallelFork</FONT>>, color=darkred]; -thread_id_0_4 [xlabel=4, label=<ThreadID (0)<BR /><FONT POINT-SIZE="8">UnsignedInteger64</FONT>>, color=darkblue]; -thread_id_0_5 [xlabel=5, label=<ThreadID (1)<BR /><FONT POINT-SIZE="8">UnsignedInteger64</FONT>>, color=darkblue]; -fork_0_6 [xlabel=6, label=<Fork (#1)<BR /><FONT POINT-SIZE="8">Control</FONT><BR /><FONT POINT-SIZE="8">Vectorizable</FONT>>, color=darkred]; -thread_id_0_7 [xlabel=7, label=<ThreadID (0)<BR /><FONT POINT-SIZE="8">UnsignedInteger64</FONT>>, color=darkblue]; -join_0_8 [xlabel=8, label=<Join<BR /><FONT POINT-SIZE="8">Control</FONT>>, color=darkred]; -join_0_9 [xlabel=9, label=<Join<BR /><FONT POINT-SIZE="8">Control</FONT>>, color=darkred]; -reduce_0_10 [xlabel=10, label=<Reduce<BR /><FONT POINT-SIZE="8">Array(Integer32, #0, #2)</FONT><BR /><FONT POINT-SIZE="8">ParallelReduce</FONT>>, color=darkblue]; +start_0_0 [xlabel=0, label=<Start<BR />Control>, color=darkred]; +parameter_0_1 [xlabel=1, label=<Parameter (#0)<BR />Array(Integer32, #0, #1)>, color=darkblue]; +parameter_0_2 [xlabel=2, label=<Parameter (#1)<BR />Array(Integer32, #1, #2)>, color=darkblue]; +fork_0_3 [xlabel=3, label=<Fork (#0, #2)<BR />Control>, color=darkred]; +thread_id_0_4 [xlabel=4, label=<ThreadID (0)<BR />UnsignedInteger64>, color=darkblue]; +thread_id_0_5 [xlabel=5, label=<ThreadID (1)<BR />UnsignedInteger64>, color=darkblue]; +fork_0_6 [xlabel=6, label=<Fork (#1)<BR />Control>, color=darkred]; +thread_id_0_7 [xlabel=7, label=<ThreadID (0)<BR />UnsignedInteger64>, color=darkblue]; +join_0_8 [xlabel=8, label=<Join<BR />Control>, color=darkred]; +join_0_9 [xlabel=9, label=<Join<BR />Control>, color=darkred]; +reduce_0_10 [xlabel=10, label=<Reduce<BR />Array(Integer32, #0, #2)<BR />ParallelReduce>, color=darkblue]; return_0_11 [xlabel=11, label=<Return>, color=darkred]; -read_0_12 [xlabel=12, label=<Read<BR /><FONT POINT-SIZE="8">Integer32</FONT>>, color=darkblue]; -read_0_13 [xlabel=13, label=<Read<BR /><FONT POINT-SIZE="8">Integer32</FONT>>, color=darkblue]; -mul_0_14 [xlabel=14, label=<Mul<BR /><FONT POINT-SIZE="8">Integer32</FONT>>, color=darkblue]; -reduce_0_15 [xlabel=15, label=<Reduce<BR /><FONT POINT-SIZE="8">Integer32</FONT><BR /><FONT POINT-SIZE="8">TightAssociative</FONT>>, color=darkblue]; -add_0_16 [xlabel=16, label=<Add<BR /><FONT POINT-SIZE="8">Integer32</FONT>>, color=darkblue]; -write_0_17 [xlabel=17, label=<Write<BR /><FONT POINT-SIZE="8">Array(Integer32, #0, #2)</FONT>>, color=darkblue]; -constant_0_18 [xlabel=18, label=<Constant ([])<BR /><FONT POINT-SIZE="8">Array(Integer32, #0, #2)</FONT><BR /><FONT POINT-SIZE="8">NoResetConstant</FONT>>, color=darkblue]; -constant_0_19 [xlabel=19, label=<Constant (0)<BR /><FONT POINT-SIZE="8">Integer32</FONT>>, color=darkblue]; +read_0_12 [xlabel=12, label=<Read<BR />Integer32>, color=darkblue]; +read_0_13 [xlabel=13, label=<Read<BR />Integer32>, color=darkblue]; +mul_0_14 [xlabel=14, label=<Mul<BR />Integer32>, color=darkblue]; +reduce_0_15 [xlabel=15, label=<Reduce<BR />Integer32<BR />MonoidReduce>, color=darkblue]; +add_0_16 [xlabel=16, label=<Add<BR />Integer32>, color=darkblue]; +write_0_17 [xlabel=17, label=<Write<BR />Array(Integer32, #0, #2)>, color=darkblue]; +constant_0_18 [xlabel=18, label=<Constant ([])<BR />Array(Integer32, #0, #2)<BR />NoResetConstant>, color=darkblue]; +constant_0_19 [xlabel=19, label=<Constant (0)<BR />Integer32>, color=darkblue]; start_0_0 -> fork_0_3 [color=black, style="dashed"]; fork_0_3 -> thread_id_0_4 [color=black, style="dotted"]; fork_0_3 -> thread_id_0_5 [color=black, style="dotted"]; diff --git a/paper_resources/matmul_ir.pdf b/paper_resources/matmul_ir.pdf index f4afd5892deada4c5997fdeb80f34cc5aeacbdb3..ec8c43d7e81d3442cddd072a0b5050274c3fd176 100644 GIT binary patch delta 16831 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 delta 17483 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 aF)#oC)zJyylQ&2n3OO+}3MC~)Peuxa&nKDy -- GitLab