Fork reshape
Compare changes
- Aaron Councilman authored
+ 34
− 20
@@ -10,27 +10,45 @@ macro optimize!(X) {
@@ -38,29 +56,25 @@ fork-interchange[1, 2](par);
Implements a fork-reshape
pass in the scheduling language which can be used to coalesce a selection of fork-joins, interchange them into a specified order, and then split them into a specified series of chunks.
Adds a parallel and tiled schedule for matmul that uses fork-reshape
to keep the schedule quite clean.
Also adds tuples to the scheduling language and a new form of let-statements that allow destructing tuples, it's not the nicest (it's not a general pattern handler and will only cause an error if there are too many fields on the left-hand side, not too few, but it's enough to make the code that uses fork-reshape
cleaner).
Includes a few other tweaks I ran into