Abstract
We developed Chlorophyll, 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 of no more than 256 instructions and 64 words of data. This processor is 100-times more energy efficient than its competitors, but currently can only be programmed using a low-level stack-based language.
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. We show that the synthesized programs are no more than 65% slower than highly optimized expert-written programs and are faster than programs produced by a heuristic, non-synthesizing version of our compiler.
- Rajeev Alur. Syntax-guided synthesis. Tutorial at FMCAD, 2013.Google Scholar
- Arduino. Arduino playground: Avr code. http://playground.arduino.cc/Main/AVR.Google Scholar
- Rimas Avizienis and Per Ljung. Comparing the Energy Efficiency and Performance of the Texas Instrument MSP430 and the GreenArrays GA144 processors. Technical report, 2012.Google Scholar
- Sorav Bansal and Alex Aiken. Automatic generation of peephole superoptimizers. In ASPLOS, 2006. Google Scholar
Digital Library
- Sorav Bansal and Alex Aiken. Binary translation using peephole superoptimizers. In OSDI, 2008. Google Scholar
Digital Library
- Gilles Barthe, Juan Manuel Crespo, Sumit Gulwani, Cesar Kunz, and Mark Marron. From relational verification to simd loop synthesis. In PPoPP, 2013. Google Scholar
Digital Library
- Zeki Bozkus, Alok Choudhary, Tomasz Haupt, Geoffrey Fox, and Sanjay Ranka. Compiling hpf for distributed memory mimd computers. In The Interaction of Compilation Technology and Computer Architecture. 1994.Google Scholar
Cross Ref
- Doug Burger, Stephen W. Keckler, Kathryn S. McKinley, Mike Dahlin, Lizy K. John, Calvin Lin, Charles R. Moore, James Burrill, Robert G. McDonald, William Yoder, and the TRIPS Team. Scaling to the end of silicon with edge architectures. Computer, July 2004. Google Scholar
Digital Library
- William W. Carlson, Jesse M. Draper, and David E. Culler. S-246, 187 introduction to upc and language specification.Google Scholar
- Satish Chandra, Vijay Saraswat, Vivek Sarkar, and Rastislav Bodik. Type inference for locality analysis of distributed data structures. In PPoPP, 2008. Google Scholar
Digital Library
- David T. Connolly. An improved annealing scheme for the QAP. European Journal of Operational Research, 46(1):93--100, 1990.Google Scholar
Cross Ref
- Leonardo De Moura and Nikolaj Bjørner. Z3: An efficient smt solver. In TACAS, 2008. Google Scholar
Digital Library
- Gwenaël Delaval, Alain Girault, and Marc Pouzet. A type system for the automatic distribution of higher-order synchronous dataflow programs. In LCTES, 2008. Google Scholar
Digital Library
- Marco Dorigo and Thomas Stützle. Ant Colony Optimization. Bradford Company, Scituate, MA, USA, 2004. Google Scholar
Digital Library
- Christopher W. Fraser, Robert R. Henry, and Todd A. Proebsting. Burg: fast optimal instruction selection and tree parsing. SIGPLAN Not., 27(4):68--76, April 1992. Google Scholar
Digital Library
- Michael I. Gordon, William Thies, Michal Karczmarek, Jasper Lin, Ali S. Meli, Andrew A. Lamb, Chris Leger, Jeremy Wong, Henry Hoffmann, David Maze, and Saman Amarasinghe. A stream compiler for communication-exposed architectures. In ASPLOS, 2002. Google Scholar
Digital Library
- GreenArrays. Product Brief: GreenArrays Architecture, 2010.Google Scholar
- GreenArrays. Product Brief: GreenArrays GA144, 2010.Google Scholar
- GreenArrays. Appplication Note AB001: An Implementation of the MD5 Hash, 2012.Google Scholar
- Sumit Gulwani, Susmit Jha, Ashish Tiwari, and Ramarathnam Venkatesan. Synthesis of loop-free programs. In PLDI, 2011. Google Scholar
Digital Library
- Richard Hughey. Programming systolic arrays. Technical report, Brown University, 1992.Google Scholar
- Kurtis T. Johnson, A. R. Hurson, and Behrooz Shirazi. General-purpose systolic arrays. Computer, 26(11):20--31, November 1993. Google Scholar
Digital Library
- Rajeev Joshi, Greg Nelson, and Keith Randall. Denali: a goal-directed superoptimizer. In PLDI, 2002. Google Scholar
Digital Library
- Monica S. Lam. A Systolic Array Optimizing Compiler. Kluwer Academic Publishers, Norwell, MA, USA, 1989. Google Scholar
Digital Library
- Eugene L. Lawler. The quadratic assignment problem. Manage. Sci., 9:586--599, 1963.Google Scholar
Digital Library
- Walter Lee, Rajeev Barua, Matthew Frank, Devabhaktuni Srikrishna, Jonathan Babb, Vivek Sarkar, and Saman Amarasinghe. Space-time scheduling of instruction-level parallelism on a raw machine. In ASPLOS, 1998. Google Scholar
Digital Library
- Ben Liblit, Alex Aiken, and Katherine Yelick. Type systems for distributed data sharing. In Radhia Cousot, editor, Static Analysis, volume 2694 of Lecture Notes in Computer Science, pages 273--294. Springer Berlin Heidelberg, 2003. Google Scholar
Digital Library
- Per Ljung. Welcome to the dark side of computing. Presented at ParLab Summer Retreat, University of California, Berkeley, 2011.Google Scholar
- Henry Massalin. Superoptimizer: a look at the smallest program. In ASPLOS, 1987. Google Scholar
Digital Library
- John Merlin. Techniques for the automatic parallelisation of 'distributed fortran 90', 1992.Google Scholar
- Jarek Nieplocha, Bruce Palmer, Vinod Tipparaju, Manojkumar Krishnan, Harold Trease, and Edoardo Aprà. Advances, applications and performance of the global arrays shared memory programming toolkit. Int. J. High Perform. Comput. Appl., 20(2):203--231, May 2006. Google Scholar
Digital Library
- Tony Nowatzki, Michael Sartin-Tarm, Lorenzo De Carli, Karthikeyan Sankaralingam, Cristian Estan, and Behnam Robatmili. A general constraint-centric scheduling framework for spatial architectures. In PLDI, 2013. Google Scholar
Digital Library
- Arch D. Robison. Impact of economics on compiler optimization. In Proceedings of the 2001 Joint ACM-ISCOPE Conference on Java Grande, JGI '01, pages 1--10, New York, NY, USA, 2001. ACM. Google Scholar
Digital Library
- V. Sarawat, B. Bloom, I. Peshansky, O. Tardieu, and D. Grove. X10 language specification, October 2012.Google Scholar
- Eric Schkufza, Rahul Sharma, and Alex Aiken. Stochastic superoptimization. In ASPLOS, 2013. Google Scholar
Digital Library
- Hong Shen. Occam implementation of process-to-processor mapping on the hathi-2 transputer system. Microprocessing and Microprogramming, 33(3), 1992. Google Scholar
Digital Library
- Jadranka Skorin-Kapov. Tabu search applied to the quadratic assignment problem. INFORMS Journal on Computing, 2(1):33--45, 1990.Google Scholar
Cross Ref
- Aaron Smith, Jon Gibson, Bertrand Maher, Nick Nethercote, Bill Yoder, Doug Burger, Kathryn S. McKinle, and Jim Burrill. Compiling for edge architectures. In CGO, 2006. Google Scholar
Digital Library
- Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Sanjit Seshia, and Vijay Saraswat. Combinatorial sketching for finite programs. In ASPLOS, 2006. Google Scholar
Digital Library
- Trefis Team. Can Intel Challenge ARM's Mobile Dominance?, 2012.Google Scholar
- Emina Torlak and Rastislav Bodik. Growing solver-aided languages with Rosette. In Onward!, 2013. Google Scholar
Digital Library
- Xilinx. Vivado design suite. http://www.xilinx.com/products/design-tools/vivado/.Google Scholar
- Kathy Yelick, Luigi Semenzato, Geoff Pike, Carleton Miyamoto, Ben Liblit, Arvind Krishnamurthy, Paul Hilfinger, Susan Graham, David Gay, Phil Colella, and Alex Aiken. Titanium: A high-performance java dialect. In Concurrency: Pract. Exper., 1998.Google Scholar
- Mingxuan Yuan, Zonghua Gu, Xiuqiang He, Xue Liu, and Lei Jiang. Hardware/software partitioning and pipelined scheduling on runtime reconfigurable fpgas. ACM Trans. Des. Autom. Electron. Syst., 15(2), March 2010. Google Scholar
Digital Library
Index Terms
(auto-classified)Chlorophyll: synthesis-aided compiler for low-power spatial architectures
Recommendations
Chlorophyll: synthesis-aided compiler for low-power spatial architectures
PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and ImplementationWe developed Chlorophyll, 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 of no more than 256 instructions and 64 ...
Validating the MERIS Terrestrial Chlorophyll Index (MTCI) with ground chlorophyll content data at MERIS spatial resolution
The Medium Resolution Imaging Spectrometer (MERIS) Terrestrial Chlorophyll Index (MTCI), a standard level 2 European Space Agency (ESA) product, provides information on the chlorophyll content of vegetation (amount of chlorophyll per unit area of ground)...
Phenology of vegetation in Southern England from Envisat MERIS terrestrial chlorophyll index MTCI data
Given the close association between climate change and vegetation response, there is a pressing requirement to monitor the phenology of vegetation and understand further how its metrics vary over space and time. This article explores the use of the ...







Comments