From 0303d9e8f568562d18606110627a1bba2702c303 Mon Sep 17 00:00:00 2001 From: Russel Arbore <russel.jma@gmail.com> Date: Thu, 27 Feb 2025 09:45:12 -0600 Subject: [PATCH] Need LTE in loop-bound-canon for backprop --- juno_samples/rodinia/backprop/src/backprop.jn | 2 +- juno_samples/rodinia/backprop/src/cpu.sch | 37 ++++++++++--------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/juno_samples/rodinia/backprop/src/backprop.jn b/juno_samples/rodinia/backprop/src/backprop.jn index c7f4345b..356bb3d9 100644 --- a/juno_samples/rodinia/backprop/src/backprop.jn +++ b/juno_samples/rodinia/backprop/src/backprop.jn @@ -4,7 +4,7 @@ fn squash(x: f32) -> f32 { } fn layer_forward<n, m: usize>(vals: f32[n + 1], weights: f32[n + 1, m + 1]) -> f32[m + 1] { - let result : f32[m + 1]; + @res let result : f32[m + 1]; result[0] = 1.0; for j in 1..=m { diff --git a/juno_samples/rodinia/backprop/src/cpu.sch b/juno_samples/rodinia/backprop/src/cpu.sch index 56fc2c9a..b6e69a27 100644 --- a/juno_samples/rodinia/backprop/src/cpu.sch +++ b/juno_samples/rodinia/backprop/src/cpu.sch @@ -1,24 +1,25 @@ -gvn(*); -dce(*); -phi-elim(*); -dce(*); -crc(*); -dce(*); -slf(*); -dce(*); +macro simpl!(X) { + ccp(X); + simplify-cfg(X); + lift-dc-math(X); + gvn(X); + phi-elim(X); + dce(X); + infer-schedules(X); +} -let auto = auto-outline(backprop); -cpu(auto.backprop); - -inline(auto.backprop); -inline(auto.backprop); +simpl!(*); +inline(layer_forward); delete-uncalled(*); -sroa[true](*); -dce(*); -float-collections(*); -reuse-products(*); -dce(*); +no-memset(layer_forward@res); +lift-dc-math(*); +loop-bound-canon(*); +fixpoint { + forkify(*); + fork-guard-elim(*); + fork-coalesce(*); +} gcm(*); -- GitLab