November 2014

Conference Paper

HSLOT: The HERCULES Scriptable Loop Transformations Engine

By:
Kartsaklis, Christos ; Park, Eun Jung ; Cavazos, John
Publication Date:
November 2014
Conference Name:
WOLFHPC: Fourth International Workshop on Domain-Specific Languages and High-Level Frameworks for High Performance Computing, held in conjunction with SC14: The International Conference for High Performance Computing, Networking, Storage, and Analysis
Conference Location:
New Orleans, Louisiana, United States of America

Abstract

HSLOT arms users with a rich set of configurable transformation directives, to be used as-they-are or to be specialized and combined into powerful custom transformations. We offer a plethora of loop transformations, which includes both the classic set (unroll, fuse, fission, tile, and so on) as well as unique ones (specialize, swap nest, split, fork, and so on) that are not found in other state-of-the-art systems. We show how HSLOT enables more transformations such as merging two loops that cannot be fused because of data dependencies and how HSLOT can be used in a simple and systematic fashion to improve memory accesses and expose better parallelism. To use our system, users simply annotate loops with the transformations sequence and compile with our Open64-based HSLOT-implementing Fortran compiler, HSLF90, which produces both object files and optionally source. We describe our experiment results using a set of scientific kernels written in Fortran with HSLOT directives on AMD 32 core system.