WG211/M12Scholz

From WG 2.11
Jump to: navigation, search

Data-Layout Inference for Generating Vectorised Code by Sven-Bodo Scholz

SIMD instructions of modern CPUs are crucially important for the performance of compute-intensive programs. Often, auto-vectorisation leads to sub-optimal results due to the data-layout chosen by the application programmer. The reasons for choosing an unfavourable layout can be manifold: software engineering principles may contradict performance demands, the layout demands may depend on the target architecture a program was first run on, etc. However, most of the time it is simply a lack of awareness of the programmer.

In this talk, we present an approach towards liberating the programmer from the burden of considering the suitability of his data structures for vectorisation. We present an inference scheme that allows compilers to identify suitable data-layouts and a refactoring scheme to modify the code accordingly. We demonstrate our ideas by means of a running example and present some very encouraging initial performance results of our technique.