PrimeTile

From HPCRL Wiki
(Difference between revisions)
Jump to: navigation, search
(Installation)
(Installation)
Line 21: Line 21:
 
To install PrimeTile, we only need to build the CLooG code that is already included in the package.
 
To install PrimeTile, we only need to build the CLooG code that is already included in the package.
  
<nowiki>
+
  % tar -xvzf primetile-X.X.X.tar.gz
% tar -xvzf primetile-X.X.X.tar.gz
+
  % cd primetile-X.X.X
% cd primetile-X.X.X
+
  % cd cloog
% cd cloog
+
  % ./configure --without-polylib --with-isl=bundled --with-gmp-prefix=/path/to/gmp/installation
% ./configure --without-polylib --with-isl=bundled --with-gmp-prefix=/path/to/gmp/installation
+
  % make
% make
+
  % ./check
% ./check
+
</nowiki>
+
  
 
Note that the GMP installation directory must be explicitly specified during configuration. The last step is used for ensuring whether the adapted version of CLooG has been installed properly.
 
Note that the GMP installation directory must be explicitly specified during configuration. The last step is used for ensuring whether the adapted version of CLooG has been installed properly.
 +
 +
=== Command Line Options ===
 +
 +
''primetile'' is the script wrapper around all PrimeTile's components.
 +
 +
  % ./primetile --help
 +
 
 +
  Description: compile script for PrimeTile
 +
 
 +
  Usage: primetile [options] <ifile>
 +
    <ifile>    Input file containing the context, the statement domains, and the scattering functions
 +
 
 +
  Options for code generation:
 +
    -t <level> | --tilelevel=<level>      The number of tiling levels (0: no tiling)
 +
                                          (default setting: 1)
 +
    -b <level> | --boundarylevel=<level>  The largest tiling level used for tiling the boundary tiles
 +
                                          (0: no boundary-tile tiling, -1: tilelevel-1)
 +
                                          (default setting: -1)
 +
    -f <depth> | --first=<depth>          The first loop depth to start tiling (-1: infinity)
 +
                                          (default setting: 1)
 +
    -l <depth> | --last=<depth>            The last loop depth to stop tiling (-1: infinity)
 +
                                          (default setting: -1)
 +
 
 +
  General options:
 +
    -o <file> | --output=<file>            Place the output to <file>
 +
    -h | --help                            Display this usage message
 +
    -q | --quiet                          Don't print any details of the running program
 +
 +
 +
=== Archive File ===
 +
 +
Download [https://drive.google.com/file/d/0BwEejn8OWWesQ0J6M2RKcC1TZGM/edit?usp=sharing archive file] for original PrimeTile webpage that contains more comprehensive explanation of PrimeTile and some usage examples.

Revision as of 17:43, 26 March 2014

Contents

Overview

Loop tiling, as one of the most important compiler optimization techniques, is beneficial for both parallel machines and uniprocessors. Efficient generation of multi-level tiled code is essential to maximize data reuse in deep memory hierarchies. Tiled loops with parameterized tile sizes (not compile time constants) enable runtime optimizations used in iterative compilation and automatic tuning. Previous parametric multi-level tiling approaches have been restricted to perfectly nested loops, where all statements are contained inside the innermost loop of a loop nest. Previous solutions to tiling for imperfect loop nests have been limited to the case where tile sizes are fixed. PrimeTile provides an effective way to generate efficient parameterized multi-level tiled code for imperfectly nested loops. The generated tiled code contains loops that iterate over full rectangular tiles, making them suitable for compiler optimizations such as register tiling.

Download

PrimeTile 0.2.0 (beta) (updated: March 25th, 2009)

PrimeTile 0.3.0 (beta -- prerelease) (for latest improvements, including register tiling support)

Software Requirements

1. Python (widely available in any Linux/Unix distribution). PrimeTile has been tested successfully with Python 2.5.1 (and any newer versions) on various Linux distributions.

2. GMP (GNU Multiple Precision Arithmetic Library -- a portable library written in C for arbitrary-precision arithmetic on integers, rational numbers, and floating-point numbers)

3. PrimeTile consists of two major components: an adapted version of CLooG and Orio. Both are already included in the PrimeTile package. Nothing needs to be downloaded separately.

Installation

To install PrimeTile, we only need to build the CLooG code that is already included in the package.

 % tar -xvzf primetile-X.X.X.tar.gz
 % cd primetile-X.X.X
 % cd cloog
 % ./configure --without-polylib --with-isl=bundled --with-gmp-prefix=/path/to/gmp/installation
 % make
 % ./check

Note that the GMP installation directory must be explicitly specified during configuration. The last step is used for ensuring whether the adapted version of CLooG has been installed properly.

Command Line Options

primetile is the script wrapper around all PrimeTile's components.

 % ./primetile --help
 
 Description: compile script for PrimeTile
 
 Usage: primetile [options] <ifile>
   <ifile>     Input file containing the context, the statement domains, and the scattering functions
 
 Options for code generation:
   -t <level> | --tilelevel=<level>       The number of tiling levels (0: no tiling)
                                          (default setting: 1)
   -b <level> | --boundarylevel=<level>   The largest tiling level used for tiling the boundary tiles
                                          (0: no boundary-tile tiling, -1: tilelevel-1)
                                          (default setting: -1)
   -f <depth> | --first=<depth>           The first loop depth to start tiling (-1: infinity)
                                          (default setting: 1)
   -l <depth> | --last=<depth>            The last loop depth to stop tiling (-1: infinity)
                                          (default setting: -1)
 
 General options:
   -o <file> | --output=<file>            Place the output to <file>
   -h | --help                            Display this usage message
   -q | --quiet                           Don't print any details of the running program


Archive File

Download archive file for original PrimeTile webpage that contains more comprehensive explanation of PrimeTile and some usage examples.

Personal tools