carklion.blogg.se

Loopy code
Loopy code







loopy code
  1. LOOPY CODE SOFTWARE
  2. LOOPY CODE CODE

We propose a novel approach aiming to combine high-level programming, code portability, and high-performance. Typically, code is either tuned in a low-level imperative language using hardware-specific optimizations to achieve maximum performance or is written in a high-level, possibly functional, language to achieve portability at the expense of performance. These parallel systems exhibit tremendous computational power at the cost of increased programming effort resulting in a tension between performance and code portability. The exploration space from which the near-optimum parameters are selected is reduced from 17 up to 30 orders of magnitude.Ĭomputers have become increasingly complex with the emergence of heterogeneous hardware combining multicore CPUs and GPUs. The proposed methodology has been evaluated for both embedded and general-purpose CPUs and for seven well-known algorithms, achieving high memory access, speedup and energy consumption gain values (from 1.17 up to 40) over gcc compiler, hand-written optimized code and Polly. The exploration space is reduced in two phases: firstly, by applying a novel register blocking algorithm and a novel loop tiling algorithm and secondly, by computing the maximum and minimum ET/E values for each optimization set. The objective can be execution time (ET), energy consumption (E) or the number of L1, L2 and main memory accesses. A novel methodology is presented reducing the exploration space of six code optimizations by many orders of magnitude. In this paper, the above problems are addressed for data-dominant affine loop kernels, delivering significant contributions.

loopy code loopy code

Third, the exploration space, i.e., the set of all optimization configurations that have to be explored, is huge and thus searching is impractical. Second, it is very hard to couple the transformation parameters to the processor architecture (e.g., cache size) and algorithm characteristics (e.g., data reuse) therefore, compiler designers and researchers either do not take them into account at all or do it partly. First, most of the transformations are interdependent and thus addressing them separately is not effective.

LOOPY CODE SOFTWARE

The key to optimizing software is the correct choice, order as well as parameters of optimization transformations that has remained an open problem in compilation research for decades for various reasons. The advent of data proliferation and electronic devices gets low execution time and energy consumption software in the spotlight.









Loopy code