From 23b791819e3440756624922c96400ae7c841ae7e Mon Sep 17 00:00:00 2001 From: Russel Arbore <russel.jma@gmail.com> Date: Tue, 4 Mar 2025 16:16:23 -0600 Subject: [PATCH] parallelize cost init loop --- juno_samples/rodinia/bfs/src/bfs.jn | 2 +- juno_samples/rodinia/bfs/src/cpu.sch | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/juno_samples/rodinia/bfs/src/bfs.jn b/juno_samples/rodinia/bfs/src/bfs.jn index d6ec25f2..75190300 100644 --- a/juno_samples/rodinia/bfs/src/bfs.jn +++ b/juno_samples/rodinia/bfs/src/bfs.jn @@ -24,7 +24,7 @@ fn bfs<n, m: usize>(graph_nodes: Node[n], source: u32, edges: u32[m]) -> i32[n] @cost_init for i in 0..n { cost[i] = -1; } - cost[source as u64] = 0; + @cost_init cost[source as u64] = 0; // Nodes that were updated in the current iteration let updated: bool[n]; diff --git a/juno_samples/rodinia/bfs/src/cpu.sch b/juno_samples/rodinia/bfs/src/cpu.sch index 1b2898bf..34b73506 100644 --- a/juno_samples/rodinia/bfs/src/cpu.sch +++ b/juno_samples/rodinia/bfs/src/cpu.sch @@ -48,10 +48,9 @@ let collect_body = outline(inner); let init_body = init; // Following code seems to generate breaking RT code -//fork-tile[32, 0, false, true](init); -//let (outer, inner) = fork-reshape[[1], [0]](init); -//let init_body = outline(inner); -//inline(bfs@cost_init); +fork-tile[32, 0, false, true](init); +let (outer, inner) = fork-reshape[[1], [0]](init); +let init_body = outline(inner); inline(bfs@loop1, bfs@loop2); delete-uncalled(*); -- GitLab