Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2594291.2594339acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

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

Published: 09 June 2014 Publication History

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

Cited By

View all
  • (2024)Equivalence by Canonicalization for Synthesis-Backed RefactoringProceedings of the ACM on Programming Languages10.1145/36564538:PLDI(1879-1904)Online publication date: 20-Jun-2024
  • (2024)Superfusion: Eliminating Intermediate Data Structures via Inductive SynthesisProceedings of the ACM on Programming Languages10.1145/36564158:PLDI(939-964)Online publication date: 20-Jun-2024
  • (2024)Allo: A Programming Model for Composable Accelerator DesignProceedings of the ACM on Programming Languages10.1145/36564018:PLDI(593-620)Online publication date: 20-Jun-2024
  • Show More Cited By
  1. Chlorophyll: synthesis-aided compiler for low-power spatial architectures

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    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
    • 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
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 09 June 2014

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. program synthesis
    2. spatial architectures

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    PLDI '14
    Sponsor:

    Acceptance Rates

    PLDI '14 Paper Acceptance Rate 52 of 287 submissions, 18%;
    Overall Acceptance Rate 406 of 2,067 submissions, 20%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)40
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 03 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Equivalence by Canonicalization for Synthesis-Backed RefactoringProceedings of the ACM on Programming Languages10.1145/36564538:PLDI(1879-1904)Online publication date: 20-Jun-2024
    • (2024)Superfusion: Eliminating Intermediate Data Structures via Inductive SynthesisProceedings of the ACM on Programming Languages10.1145/36564158:PLDI(939-964)Online publication date: 20-Jun-2024
    • (2024)Allo: A Programming Model for Composable Accelerator DesignProceedings of the ACM on Programming Languages10.1145/36564018:PLDI(593-620)Online publication date: 20-Jun-2024
    • (2024)Generating Function Names to Improve Comprehension of Synthesized Programs2024 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)10.1109/VL/HCC60511.2024.00035(248-259)Online publication date: 2-Sep-2024
    • (2022)Relational compilation for performance-critical applications: extensible proof-producing translation of functional models into low-level codeProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523706(918-933)Online publication date: 9-Jun-2022
    • (2022)Tree traversal synthesis using domain-specific symbolic compilationProceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3503222.3507751(1030-1042)Online publication date: 28-Feb-2022
    • (2021)Porcupine: a synthesizing compiler for vectorized homomorphic encryptionProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454050(375-389)Online publication date: 19-Jun-2021
    • (2019)Autogenerating Fast Packet-Processing Code Using Program SynthesisProceedings of the 18th ACM Workshop on Hot Topics in Networks10.1145/3365609.3365858(150-160)Online publication date: 13-Nov-2019
    • (2019)Resource-guided program synthesisProceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3314221.3314602(253-268)Online publication date: 8-Jun-2019
    • (2018)Hybrid optimization/heuristic instruction scheduling for programmable accelerator codesignProceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques10.1145/3243176.3243212(1-15)Online publication date: 1-Nov-2018
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media