From dd2a8b7d7033211b08dc5fb447b6865b627b43ba Mon Sep 17 00:00:00 2001 From: Russel Arbore <rarbore2@illinois.edu> Date: Wed, 5 Mar 2025 16:07:23 -0600 Subject: [PATCH 1/4] tweaks of cfd --- juno_samples/rodinia/cfd/src/cpu_euler.sch | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/juno_samples/rodinia/cfd/src/cpu_euler.sch b/juno_samples/rodinia/cfd/src/cpu_euler.sch index 13125961..d9d3eb8c 100644 --- a/juno_samples/rodinia/cfd/src/cpu_euler.sch +++ b/juno_samples/rodinia/cfd/src/cpu_euler.sch @@ -57,5 +57,10 @@ if !feature("seq") { copy_vars = copy_vars_body; } +const-inline[false](*); +simpl!(*); +fork-split(compute_step_factor, compute_flux, time_step, copy_vars); unforkify(compute_step_factor, compute_flux, time_step, copy_vars); +simpl!(*); + gcm(*); -- GitLab From e91a6a9e43543038dcb8f5e69c413052e513b16b Mon Sep 17 00:00:00 2001 From: Russel Arbore <rarbore2@illinois.edu> Date: Wed, 5 Mar 2025 16:17:15 -0600 Subject: [PATCH 2/4] more tweaks --- juno_samples/rodinia/cfd/src/cpu_euler.sch | 1 + juno_samples/rodinia/cfd/src/cpu_pre_euler.sch | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/juno_samples/rodinia/cfd/src/cpu_euler.sch b/juno_samples/rodinia/cfd/src/cpu_euler.sch index d9d3eb8c..baf45b8a 100644 --- a/juno_samples/rodinia/cfd/src/cpu_euler.sch +++ b/juno_samples/rodinia/cfd/src/cpu_euler.sch @@ -57,6 +57,7 @@ if !feature("seq") { copy_vars = copy_vars_body; } +fork-tile[13, 0, false, true](compute_flux); const-inline[false](*); simpl!(*); fork-split(compute_step_factor, compute_flux, time_step, copy_vars); diff --git a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch index 858be5ba..cd9ae6a0 100644 --- a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch +++ b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch @@ -64,5 +64,11 @@ if !feature("seq") { copy_vars = copy_vars_body; } +fork-tile[13, 0, false, true](compute_flux); +const-inline[false](*); +simpl!(*); +fork-split(compute_step_factor, compute_flux_contributions, compute_flux, time_step, copy_vars); unforkify(compute_step_factor, compute_flux_contributions, compute_flux, time_step, copy_vars); +simpl!(*); + gcm(*); -- GitLab From 91eeb3b7a5642ac23ae367040dc96b93e8540e1f Mon Sep 17 00:00:00 2001 From: Russel Arbore <rarbore2@illinois.edu> Date: Wed, 5 Mar 2025 17:39:11 -0600 Subject: [PATCH 3/4] parallelize sum reduction in srad --- juno_samples/rodinia/srad/src/cpu.sch | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/juno_samples/rodinia/srad/src/cpu.sch b/juno_samples/rodinia/srad/src/cpu.sch index 8fa22aaa..5487355d 100644 --- a/juno_samples/rodinia/srad/src/cpu.sch +++ b/juno_samples/rodinia/srad/src/cpu.sch @@ -28,14 +28,28 @@ fixpoint { fork-guard-elim(*); fork-coalesce(*); } +fork-dim-merge(loop1); simpl!(*); -fork-interchange[0, 1](loop1); reduce-slf(*); simpl!(*); slf(*); simpl!(*); if !feature("seq") { + fork-tile[32, 0, false, false](loop1); + simpl!(loop1); + let split = fork-split(loop1); + simpl!(loop1); + clean-monoid-reduces(loop1); + let loop1_body = outline(split.srad_0.fj1); + simpl!(loop1, loop1_body); + unforkify(loop1_body); + let fission = fork-fission[split.srad_0.fj0](loop1); + simpl!(loop1, loop1_body); + unforkify(fission.srad_0.fj_bottom); + simpl!(loop1, loop1_body); + loop1 = loop1_body; + fork-tile[32, 0, false, false](loop2); let split = fork-split(loop2); let loop2_body = outline(split.srad_1.fj1); -- GitLab From b29576dad642cb8952ecb2b2dc0475d50850b0b4 Mon Sep 17 00:00:00 2001 From: Russel Arbore <rarbore2@illinois.edu> Date: Wed, 5 Mar 2025 17:42:08 -0600 Subject: [PATCH 4/4] sigh --- juno_samples/rodinia/cfd/src/cpu_euler.sch | 1 - juno_samples/rodinia/cfd/src/cpu_pre_euler.sch | 1 - 2 files changed, 2 deletions(-) diff --git a/juno_samples/rodinia/cfd/src/cpu_euler.sch b/juno_samples/rodinia/cfd/src/cpu_euler.sch index baf45b8a..d9d3eb8c 100644 --- a/juno_samples/rodinia/cfd/src/cpu_euler.sch +++ b/juno_samples/rodinia/cfd/src/cpu_euler.sch @@ -57,7 +57,6 @@ if !feature("seq") { copy_vars = copy_vars_body; } -fork-tile[13, 0, false, true](compute_flux); const-inline[false](*); simpl!(*); fork-split(compute_step_factor, compute_flux, time_step, copy_vars); diff --git a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch index cd9ae6a0..3acee55b 100644 --- a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch +++ b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch @@ -64,7 +64,6 @@ if !feature("seq") { copy_vars = copy_vars_body; } -fork-tile[13, 0, false, true](compute_flux); const-inline[false](*); simpl!(*); fork-split(compute_step_factor, compute_flux_contributions, compute_flux, time_step, copy_vars); -- GitLab