Results 1 -
7 of
7
Optimizing data structures in high-level programs: New directions for extensible compilers based on staging
- In POPL
, 2013
"... High level data structures are a cornerstone of modern programming and at the same time stand in the way of compiler optimizations. In order to reason about user or library-defined data structures, compilers need to be extensible. Common mechanisms to extend compilers fall into two categories. Front ..."
Abstract
-
Cited by 22 (8 self)
- Add to MetaCart
(Show Context)
High level data structures are a cornerstone of modern programming and at the same time stand in the way of compiler optimizations. In order to reason about user or library-defined data structures, compilers need to be extensible. Common mechanisms to extend compilers fall into two categories. Frontend macros, staging or partial evaluation systems can be used to programmatically remove abstraction and specialize programs before they enter the compiler. Alternatively, some compilers allow extending the internal workings by adding new transformation passes at different points in the compile chain or adding new intermediate representation (IR) types. None of these mechanisms alone is sufficient to handle the challenges posed by high level data structures. This paper shows a novel way to combine them to yield benefits that are greater than the sum of the parts.
Annotating User-Defined Abstractions for Optimization
"... Although conventional compilers implement a wide range of optimization techniques, they frequently miss opportunities to optimize the use of abstractions, largely because they are not designed to recognize and use the relevant semantic information about such abstractions. In this position paper, we ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
(Show Context)
Although conventional compilers implement a wide range of optimization techniques, they frequently miss opportunities to optimize the use of abstractions, largely because they are not designed to recognize and use the relevant semantic information about such abstractions. In this position paper, we propose a set of annotations to help communicate high-level semantic information about abstractions to the compiler, thereby enabling the large body of traditional compiler optimizations to be applied to the use of those abstractions. Our annotations explicitly describe properties of abstractions that are needed to guarantee the applicability and profitability of a broad variety of such optimizations, including memoization, reordering, data layout transformations, and inlining and specialization. 1
An extensible open-source compiler infrastructure for testing
- In Proc. IBM Haifa Verification Conference, volume LNCS 3875
, 2005
"... Abstract. Testing forms a critical part of the development process for large-scale software, and there is growing need for automated tools that can read, represent, analyze, and transform the application’s source code to help carry out testing tasks. However, the support required to compile applicat ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
(Show Context)
Abstract. Testing forms a critical part of the development process for large-scale software, and there is growing need for automated tools that can read, represent, analyze, and transform the application’s source code to help carry out testing tasks. However, the support required to compile applications written in common general purpose languages is generally inaccessible to the testing research community. In this paper, we report on an extensible, open-source compiler infrastructure called ROSE, which is currently in development at Lawrence Livermore National Laboratory. ROSE specifically targets developers who wish to build sourcebased tools that implement customized analyses and optimizations for large-scale C, C++, and Fortran90 scientific computing applications (on the order of a million lines of code or more). However, much of this infrastructure can also be used to address problems in testing, and ROSE is by design broadly accessible to those without a formal compiler background. This paper details the interactions between testing of applications and the ways in which compiler technology can aid in the understanding of those applications. We emphasize the particular aspects of ROSE, such as support for the general analysis of whole programs, that are particularly well-suited to the testing research community and the scale of the problems that community solves. 1
Power-Aware and Branch-Aware Word-Length Optimization
"... Power reduction is becoming more important as circuit size increases. This paper presents a tool called PowerCutter which employs accuracy-guaranteed word-length optimization to reduce power consumption of circuits. We adapt circuit word-lengths at run time to decrease power consumption, with optimi ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
(Show Context)
Power reduction is becoming more important as circuit size increases. This paper presents a tool called PowerCutter which employs accuracy-guaranteed word-length optimization to reduce power consumption of circuits. We adapt circuit word-lengths at run time to decrease power consumption, with optimizations based on branch statistics. Our tool uses a technique based on Automatic Differentiation to analyze library cores specified as black box functions, which do not include implementation information. We use this technique to analyze benchmarks containing library functions such as square root. Our approach shows that power savings of up to 32 % can be achieved on benchmarks which cannot be analyzed by previous approaches, because library cores with an unknown implementation are used. 1
Dedication.....................................
, 2012
"... quality and form for publication on microfilm ..."
Annotating User-Defined Abstractions for Optimization
"... Abstract Although conventional compilers implement a widerange of optimization techniques, they frequently miss opportunities to optimize the use of abstractions,largely because they are not designed to recognize and use the relevant semantic information about such ab-stractions. In this position pa ..."
Abstract
- Add to MetaCart
Abstract Although conventional compilers implement a widerange of optimization techniques, they frequently miss opportunities to optimize the use of abstractions,largely because they are not designed to recognize and use the relevant semantic information about such ab-stractions. In this position paper, we propose a set of annotations to help communicate high-level semanticinformation about abstractions to the compiler, thereby enabling the large body of traditional compiler optimiza-tions to be applied to the use of those abstractions. Our annotations explicitly describe properties of ab-stractions that are needed to guarantee the applicability and profitability of a broad variety of such optimiza-tions, including memoization, reordering, data layout transformations, and inlining and specialization. 1
unknown title
"... numerical software (SANS) effort The challenge for the development of next-generation software is the successful management of the complex computational environment while delivering to the scientist the full power of flexible compositions of the available algorithmic alternatives. Selfadapting numer ..."
Abstract
- Add to MetaCart
(Show Context)
numerical software (SANS) effort The challenge for the development of next-generation software is the successful management of the complex computational environment while delivering to the scientist the full power of flexible compositions of the available algorithmic alternatives. Selfadapting numerical software (SANS) systems are intended to meet this significant challenge. The process of arriving at an efficient numerical solution of problems in computational science involves numerous decisions by a numerical expert. Attempts to automate such decisions distinguish three levels: algorithmic decision, management of the parallel environment, and processor-specific tuning of kernels. Additionally, at any of these levels we can decide to rearrange the user’s data. In this paper we look at a number of efforts at the University of Tennessee to investigate these areas.