Semantics-Preserving Data Layout Transformations for Improved Vectorisation

A. Šinkarovs and S.-B. Scholz, “Semantics-preserving data layout transformations for improved vectorisation,” in Proceedings of the 2Nd ACM SIGPLAN workshop on functional high-performance computing, Sep. 2013, pp. 59–70. doi: 10.1145/2502323.2502332.

[URL] [BibTeX]

Abstract

Data-Layouts that are favourable from an algorithmic perspective often are less suitable for vectorisation, i.e., for an effective use of modern processor’s vector instructions. This paper presents work on a compiler driven approach towards automatically transforming data layouts into a form that is suitable for vectorisation. In particular, we present a program transformation for a first-order functional array programming language that systematically modifies they layouts of all data structures. At the same time, the transformation also adjusts the code that operates on these structures so that the overall computation remains unchanged. We define a correctness criterion for layout modifying program transformations and we show that our transformation abides to this criterion.