Semantics-preserving data layout transformations for improved vectorisation

Artjoms Sinkarovs, Sven Bodo Scholz

Research output: Chapter in Book/Report/Conference proceedingConference contribution

4 Citations (Scopus)

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.

Original languageEnglish
Title of host publicationProceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP
Pages59-69
Number of pages11
DOIs
Publication statusPublished - 21 Oct 2013
Event2nd ACM SIGPLAN Workshop on Functional High-Performance Computing, Co-located with the 18th ACM SIGPLAN International Conference on Functional Programming - Boston, MA, United Kingdom
Duration: 23 Sept 201323 Sept 2013

Conference

Conference2nd ACM SIGPLAN Workshop on Functional High-Performance Computing, Co-located with the 18th ACM SIGPLAN International Conference on Functional Programming
Abbreviated titleFHPC 2013 & ICFP 2013
Country/TerritoryUnited Kingdom
CityBoston, MA
Period23/09/1323/09/13

Keywords

  • Correctness
  • Program transformation
  • Type systems
  • Vectorisation

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Semantics-preserving data layout transformations for improved vectorisation'. Together they form a unique fingerprint.

Cite this