Sublimation: expanding data structures to enable data instance specific optimizations

  • Authors:
  • Harmen L. A. Van Der Spek;Harry A. G. Wijshoff

  • Affiliations:
  • Leiden University, LIACS, Leiden, The Netherlands;Leiden University, LIACS, Leiden, The Netherlands

  • Venue:
  • LCPC'10 Proceedings of the 23rd international conference on Languages and compilers for parallel computing
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Knowledge of specific properties of input data should influence the compilation process, as different characteristics of input data might have different optimal solutions. However, in many applications, it is far from obvious how this can be achieved, as irregularity in program code prevents many optimizations from being applied. Therefore, we propose a two-phase compilation system, which in the first phase analyzes the code and transforms it into a regular intermediate code using a technique we call sublimation. Sublimation is a process in which different access functions in code are remapped using a common, injective access function. The resulting, regular intermediate code is compiled in a second phase, when the actual data input set is known. This allows for optimizations that compile the regular intermediate into a new code that uses data structures especially tailored to the input data provided. We evaluate this compilation chain using three sparse matrix kernels and show that our data instance specific optimization can provide considerable speedups.