Chlorophyll is a synthesis-aided programming model and compiler for the GreenArrays GA144, an extremely minimalist low-power spatial architecture that requires partitioning the program into fragments. The Chlorophyll programming model allows programmers to provide human insight 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.
Integer division powered by lemonade-bleach batteryWe ran an integer division program generated from our superoptimizer on GreenArrays GA144 chip powered by lemonade-bleach battery! The battery provided 1.6 V, and the application drew 2-3 mA.
Accelerometer-based gesture recognitionWe used Chlorophyll to compile an accelerometer-based hand-gesture recognition application for GA144. This application occupied 83 nodes out of 144 nodes. In this demo, GA144 was running on 1.8 V, and the application drew 0.24 mA.
Chlorophyll: Synthesis-Aided Compiler for Low-Power Spatial Architectures
Phitchaya Mangpo Phothilimthana, Tikhon Jelvis, Rohin Shah, Nishant Totla, Sarah Chasins, and Rastislav Bodik
Programming Languages Design and Implementation (PLDI'14)
Edinburgh, UK. June 2014.
Overview of Chlorophyll Compiler and Alternative Toolchain to ColorForth IDE
Michael Schuldt, and Phitchaya Mangpo Phothilimthana
Forth Day 2015, Invited Talk at Stanford, California. November 2013. [ pdf (part 1) ] [ pdf (part 2) ]
Programming Model and Synthesis for Low-power Spatial Architectures
Phitchaya Mangpo Phothilimthana, and Nishant Totla
Qualcomm Innovation Fellowship Finalist Presentation at Santa Clara, California. March 2013.
[ pptx ] [ pdf ]