Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Hardware-aware automatic code-transformation to support compilers in exploiting the multi-level parallel potential of modern CPUs

: Feld, D.; Soddemann, T.; Jünger, Michael; Mallach, Sven


Association for Computing Machinery -ACM-:
COSMIC 2015, International Workshop on Code Optimisation for Multi and Many Cores. Proceedings : In conjunction with CGO 2015, February 8, 2015, San Francisco Bay Area, California
New York: ACM, 2015
ISBN: 978-1-4503-3316-0
Art. 2
International Workshop on Code Optimisation for Multi and Many Cores (COSMIC) <2015, San Francisco/Calif.>
International Symposium on Code Generation and Optimization (CGO) <2015, San Francisco/Calif.>
Fraunhofer SCAI ()

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.