Hardware-Aware Automatic Code-Transformation to Support Compilers in Exploiting the Multi-Level Parallel Potential of Modern CPUs

Feld, Dustin and J√ľnger, Michael and Mallach, Sven and Soddemann, Thomas (2014) Hardware-Aware Automatic Code-Transformation to Support Compilers in Exploiting the Multi-Level Parallel Potential of Modern CPUs.
Published In: Proceedings of the 2015 International Workshop on Code Optimisation for Multi and Many Cores (COSMIC), ACM International Conference Proceedings Series (ACM ICPS). ACM 2014, 2:1-2:10.

Abstract

Modern compilers offer more and more capabilities to automatically parallelize code-regions if these match certain properties. However, there are several application kernels that, although rather simple transformations would suffice in order to make them match these properties, are either not at all parallelized by state-of-the-art compilers or could at least be improved w.r.t. their performance. This paper proposes a loop-tiling approach focusing on automatic vectorization and multi-core parallelization, with emphasis on a smart cache exploitation. The method is based on polyhedral code transformations that are applied as a pre-compilation step and it is shown to help compilers in generating more and better parallel code-regions. It automatically adapts to hardware parameters such as the SIMD register width and cache sizes. Further, it takes memory-access patterns into account and is capable to minimize communication among tiles that are to be processed by different cores. An extensive computational study shows significant improvements in the number of instructions vectorized, cache miss rates, and running times for a range of application kernels. The method often outperforms the internal auto-parallelization techniques implemented into gcc and icc.


Actions:
Full text not available from this repository.
Editorial actions: View Item View Item (Login required)
Content information:
Deposit Information:
ZAIK Number: UNSPECIFIED
Depositing User: Sven Mallach
Date Deposited: 20 May 2015 14:50
Last Modified: 20 May 2015 14:50
URI: http://e-archive.informatik.uni-koeln.de/id/eprint/796