Skip to content
Snippets Groups Projects
Commit 31523c2e authored by Aaron Councilman's avatar Aaron Councilman
Browse files

Parallel bfs

parent 085d0a3a
No related branches found
No related tags found
2 merge requests!215Large benches,!214More optimizations
Pipeline #202036 passed
...@@ -40,19 +40,23 @@ simpl!(collect); ...@@ -40,19 +40,23 @@ simpl!(collect);
parallel-fork(traverse, collect); parallel-fork(traverse, collect);
parallel-reduce(traverse, collect); parallel-reduce(traverse, collect);
fork-tile[32, 0, false, true](init, traverse, collect); fork-tile[32, 0, false, true](traverse, collect);
let (outer, inner) = fork-reshape[[1], [0]](init);
let init_body = outline(inner);
let (outer, inner) = fork-reshape[[1], [0]](traverse); let (outer, inner) = fork-reshape[[1], [0]](traverse);
let traverse_body = outline(inner); let traverse_body = outline(inner);
let (outer, inner) = fork-reshape[[1], [0]](collect); let (outer, inner) = fork-reshape[[1], [0]](collect);
let collect_body = outline(inner); let collect_body = outline(inner);
inline(bfs@cost_init, bfs@loop1, bfs@loop2); 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);
inline(bfs@loop1, bfs@loop2);
delete-uncalled(*); delete-uncalled(*);
const-inline(*); const-inline(*);
unforkify(init_body, traverse_body, collect_body); unforkify(init_body, traverse_body, collect_body);
simpl!(*); simpl!(*);
gcm(*); gcm(*);
xdot[true](bfs);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment