From 2598806c43fe6e518657b2c6bffb866695fdcab5 Mon Sep 17 00:00:00 2001 From: Russel Arbore <russel.jma@gmail.com> Date: Sun, 2 Mar 2025 21:50:22 -0600 Subject: [PATCH] work on bfs --- juno_samples/rodinia/bfs/src/bfs.jn | 11 ++++++----- juno_samples/rodinia/bfs/src/cpu.sch | 22 ++++++++++++---------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/juno_samples/rodinia/bfs/src/bfs.jn b/juno_samples/rodinia/bfs/src/bfs.jn index 2534a89c..3d0280f1 100644 --- a/juno_samples/rodinia/bfs/src/bfs.jn +++ b/juno_samples/rodinia/bfs/src/bfs.jn @@ -44,11 +44,12 @@ fn bfs<n, m: usize>(graph_nodes: Node[n], source: u32, edges: u32[m]) -> i32[n] @loop2 for i in 0..n { stop = stop && !updated[i]; - if updated[i] { - mask[i] = true; - visited[i] = true; - updated[i] = false; - } + } + + @loop3 for i in 0..n { + mask[i] = mask[i] || updated[i]; + visited[i] = visited[i] || updated[i]; + updated[i] = false; } } diff --git a/juno_samples/rodinia/bfs/src/cpu.sch b/juno_samples/rodinia/bfs/src/cpu.sch index f94c473f..a33e361d 100644 --- a/juno_samples/rodinia/bfs/src/cpu.sch +++ b/juno_samples/rodinia/bfs/src/cpu.sch @@ -11,9 +11,9 @@ macro simpl!(X) { phi-elim(bfs); no-memset(bfs@cost); let init = outline(bfs@cost_init); -let loop1 = outline(bfs@loop1); -let loop2 = outline(bfs@loop2); -parallel-reduce(loop1); +let traverse = outline(bfs@loop1); +let collect = outline(bfs@loop2 | bfs@loop3); +parallel-reduce(traverse); simpl!(*); predication(*); @@ -27,13 +27,15 @@ fixpoint { simpl!(*); predication(*); simpl!(*); +reduce-slf(*); +simpl!(*); -fork-tile[32, 0, false, false](loop1); -let split = fork-split(loop1); -let out = outline(split.bfs_1.fj1); -unforkify(out); -inline(bfs@loop1); -delete-uncalled(*); +fixpoint { + forkify(collect); + fork-guard-elim(collect); +} +fork-fusion(collect); +simpl!(collect); -unforkify(init); +unforkify(init, traverse, collect); gcm(*); -- GitLab