Skip to content
Snippets Groups Projects
Commit 1c3bc6d5 authored by rarbore2's avatar rarbore2
Browse files

more opts

parent 9692de23
No related branches found
No related tags found
1 merge request!222Tiling optimizations
Pipeline #202078 passed
This commit is part of merge request !222. Comments created here will be created in the context of that merge request.
...@@ -1741,6 +1741,7 @@ fn extend_fork(editor: &mut FunctionEditor, fork: NodeID, join: NodeID, multiple ...@@ -1741,6 +1741,7 @@ fn extend_fork(editor: &mut FunctionEditor, fork: NodeID, join: NodeID, multiple
control: new_fork, control: new_fork,
dimension: idx, dimension: idx,
}); });
edit.sub_edit(fork, tid);
let old_bound = edit.add_node(Node::DynamicConstant { id: *old_factor }); let old_bound = edit.add_node(Node::DynamicConstant { id: *old_factor });
edit.add_node(Node::Binary { edit.add_node(Node::Binary {
op: BinaryOperator::LT, op: BinaryOperator::LT,
......
...@@ -124,6 +124,8 @@ if !feature("seq") { ...@@ -124,6 +124,8 @@ if !feature("seq") {
fork-coalesce(fuse4, fuse4_body); fork-coalesce(fuse4, fuse4_body);
simpl!(fuse4, fuse4_body); simpl!(fuse4, fuse4_body);
fuse4 = fuse4_body; fuse4 = fuse4_body;
} else {
fork-tile[6, 0, false, true](fuse4@channel_loop);
} }
no-memset(fuse5@res1); no-memset(fuse5@res1);
......
...@@ -41,23 +41,25 @@ parallel-fork(traverse, collect); ...@@ -41,23 +41,25 @@ parallel-fork(traverse, collect);
parallel-reduce(traverse, collect); parallel-reduce(traverse, collect);
if !feature("seq") { if !feature("seq") {
fork-tile[32, 0, false, true](traverse, collect); fork-tile[32, 0, false, false](traverse, collect);
let (outer, inner) = fork-reshape[[1], [0]](traverse); let (outer, inner) = fork-reshape[[0], [1]](traverse);
traverse = outline(inner); traverse = outline(inner);
let (outer, inner) = fork-reshape[[1], [0]](collect); let (outer, inner) = fork-reshape[[0], [1]](collect);
collect = outline(inner); collect = outline(inner);
fork-tile[32, 0, false, true](init); fork-tile[32, 0, false, false](init);
let (outer, inner) = fork-reshape[[1], [0]](init); let (outer, inner) = fork-reshape[[0], [1]](init);
let init_body = outline(inner); let init_body = outline(inner);
inline(bfs@cost_init, bfs@loop1, bfs@loop2); inline(bfs@cost_init, bfs@loop1, bfs@loop2);
init = init_body; init = init_body;
} }
fork-tile[8, 0, false, true](init, traverse, collect);
delete-uncalled(*); delete-uncalled(*);
const-inline(*); const-inline(*);
simpl!(*); simpl!(*);
fork-split(init, traverse, collect);
unforkify(init, traverse, collect); unforkify(init, traverse, collect);
simpl!(*); simpl!(*);
gcm(*); gcm(*);
\ No newline at end of file
...@@ -15,7 +15,7 @@ let traverse = outline(bfs@loop1); ...@@ -15,7 +15,7 @@ let traverse = outline(bfs@loop1);
let collect = outline(bfs@loop2); let collect = outline(bfs@loop2);
parallel-reduce(traverse, collect); parallel-reduce(traverse, collect);
no-memset(make_stop_prod); no-memset(make_stop_prod);
gpu(traverse, make_stop_prod, collect); gpu(init, traverse, make_stop_prod, collect);
simpl!(*); simpl!(*);
predication(*); predication(*);
...@@ -38,12 +38,7 @@ fixpoint { ...@@ -38,12 +38,7 @@ fixpoint {
} }
simpl!(collect); simpl!(collect);
fork-tile[32, 0, false, true](init); fork-tile[1024, 0, false, true](init, traverse, collect);
let (outer, inner) = fork-reshape[[1], [0]](init); fork-split(init, traverse, collect);
let init_body = outline(inner);
fork-tile[1024, 0, false, true](traverse, collect);
fork-split(traverse, collect);
unforkify(init_body);
gcm(*); gcm(*);
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