We developed Chlorophyll, a synthesis-aided programming model and compiler for the GreenArrays GA144, an extremely minimalist low-power spatial architecture that requires partitioning a program into fragments of no more than 256 instructions and 64 words of data. This processor is approximately 100-times more energy efficient than other commercially available processors, but currently it can only be programmed using a low-level stack-based language. The Chlorophyll programming model allows programmers to provide their insight on program partitioning by specifying partial partitioning of data and computation. The Chlorophyll compiler relies on synthesis, sidestepping the need to develop classical optimizations, which may be challenging given the unusual architecture. To scale synthesis to real problems, we decompose the compilation into smaller synthesis subproblems: partitioning, layout, and code generation. We show that the synthesized programs are no more than 19% slower than highly optimized expert-written programs on the MD5 benchmark and are faster than programs produced by a heuristic, non-synthesizing version of our compiler.




Download Full History