skip to main content
research-article

Chlorophyll: synthesis-aided compiler for low-power spatial architectures

Published:09 June 2014Publication History
Skip Abstract Section

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.

References

  1. Rajeev Alur. Syntax-guided synthesis. Tutorial at FMCAD, 2013.Google ScholarGoogle Scholar
  2. Arduino. Arduino playground: Avr code. http://playground.arduino.cc/Main/AVR.Google ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. Sorav Bansal and Alex Aiken. Automatic generation of peephole superoptimizers. In ASPLOS, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Sorav Bansal and Alex Aiken. Binary translation using peephole superoptimizers. In OSDI, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Gilles Barthe, Juan Manuel Crespo, Sumit Gulwani, Cesar Kunz, and Mark Marron. From relational verification to simd loop synthesis. In PPoPP, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle ScholarCross RefCross Ref
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. William W. Carlson, Jesse M. Draper, and David E. Culler. S-246, 187 introduction to upc and language specification.Google ScholarGoogle Scholar
  10. Satish Chandra, Vijay Saraswat, Vivek Sarkar, and Rastislav Bodik. Type inference for locality analysis of distributed data structures. In PPoPP, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David T. Connolly. An improved annealing scheme for the QAP. European Journal of Operational Research, 46(1):93--100, 1990.Google ScholarGoogle ScholarCross RefCross Ref
  12. Leonardo De Moura and Nikolaj Bjørner. Z3: An efficient smt solver. In TACAS, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. Marco Dorigo and Thomas Stützle. Ant Colony Optimization. Bradford Company, Scituate, MA, USA, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. GreenArrays. Product Brief: GreenArrays Architecture, 2010.Google ScholarGoogle Scholar
  18. GreenArrays. Product Brief: GreenArrays GA144, 2010.Google ScholarGoogle Scholar
  19. GreenArrays. Appplication Note AB001: An Implementation of the MD5 Hash, 2012.Google ScholarGoogle Scholar
  20. Sumit Gulwani, Susmit Jha, Ashish Tiwari, and Ramarathnam Venkatesan. Synthesis of loop-free programs. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Richard Hughey. Programming systolic arrays. Technical report, Brown University, 1992.Google ScholarGoogle Scholar
  22. Kurtis T. Johnson, A. R. Hurson, and Behrooz Shirazi. General-purpose systolic arrays. Computer, 26(11):20--31, November 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Rajeev Joshi, Greg Nelson, and Keith Randall. Denali: a goal-directed superoptimizer. In PLDI, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Monica S. Lam. A Systolic Array Optimizing Compiler. Kluwer Academic Publishers, Norwell, MA, USA, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Eugene L. Lawler. The quadratic assignment problem. Manage. Sci., 9:586--599, 1963.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. Per Ljung. Welcome to the dark side of computing. Presented at ParLab Summer Retreat, University of California, Berkeley, 2011.Google ScholarGoogle Scholar
  29. Henry Massalin. Superoptimizer: a look at the smallest program. In ASPLOS, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. John Merlin. Techniques for the automatic parallelisation of 'distributed fortran 90', 1992.Google ScholarGoogle Scholar
  31. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. V. Sarawat, B. Bloom, I. Peshansky, O. Tardieu, and D. Grove. X10 language specification, October 2012.Google ScholarGoogle Scholar
  35. Eric Schkufza, Rahul Sharma, and Alex Aiken. Stochastic superoptimization. In ASPLOS, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Hong Shen. Occam implementation of process-to-processor mapping on the hathi-2 transputer system. Microprocessing and Microprogramming, 33(3), 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Jadranka Skorin-Kapov. Tabu search applied to the quadratic assignment problem. INFORMS Journal on Computing, 2(1):33--45, 1990.Google ScholarGoogle ScholarCross RefCross Ref
  38. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  39. Armando Solar-Lezama, Liviu Tancau, Rastislav Bodik, Sanjit Seshia, and Vijay Saraswat. Combinatorial sketching for finite programs. In ASPLOS, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Trefis Team. Can Intel Challenge ARM's Mobile Dominance?, 2012.Google ScholarGoogle Scholar
  41. Emina Torlak and Rastislav Bodik. Growing solver-aided languages with Rosette. In Onward!, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Xilinx. Vivado design suite. http://www.xilinx.com/products/design-tools/vivado/.Google ScholarGoogle Scholar
  43. 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 ScholarGoogle Scholar
  44. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

(auto-classified)
  1. Chlorophyll: synthesis-aided compiler for low-power spatial architectures

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 49, Issue 6
      PLDI '14
      June 2014
      598 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2666356
      • Editor:
      • Andy Gill
      Issue’s Table of Contents
      • cover image ACM Conferences
        PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
        June 2014
        619 pages
        ISBN:9781450327848
        DOI:10.1145/2594291

      Copyright © 2014 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 9 June 2014

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!