Info: Zenodo’s user support line is staffed on regular business days between Dec 23 and Jan 5. Response times may be slightly longer than normal.

Published August 31, 2014 | Version v1
Working paper Open

Performance Improvement in Kernels by Guiding Compiler Auto-Vectorization Heuristics

  • 1. Irish Centre for High-End Computing (ICHEC), Ireland
  • 1. University of Delaware, USA

Description

Vectorization support in hardware continues to expand and grow as well we still continue on superscalar architectures. Unfortunately, compilers are not always able to generate optimal code for the hardware;detecting and generating vectorized code is extremely complex. Programmers can use a number of tools to aid in development and tuning, but most of these tools require expert or domain-specific knowledge to use. In this work we aim to provide techniques for determining the best way to optimize certain codes, with an end goal of guiding the compiler into generating optimized code without requiring expert knowledge from the developer. Initally, we study how to combine vectorization reports with iterative comilation and code generation and summarize our insights and patterns on how the compiler vectorizes code. Our utilities for iterative compiliation and code generation can be further used by non-experts in the generation and analysis of programs. Finally, we leverage the obtained knowledge to design a Support Vector Machine classifier to predict the speedup of a program given a sequence of optimization underprediction, with 82% of these accurate within 15 % both ways.

Files

WP183.pdf

Files (873.7 kB)

Name Size Download all
md5:cdca9b293d1a73b9b6d33c8a1afd7778
873.7 kB Preview Download

Additional details

Funding

PRACE-2IP – PRACE - Second Implementation Phase Project 283493
European Commission