goSLP: Globally Optimized Superword Level Parallelism Framework

04/23/2018
by   Charith Mendis, et al.
0

Modern microprocessors are equipped with single instruction multiple data (SIMD) or vector instruction sets which allow compilers to exploit superword level parallelism (SLP), a type of fine-grained parallelism. Current SLP auto-vectorization techniques use heuristics to discover vectorization opportunities in high-level language code. These heuristics are fragile, local and typically only present one vectorization strategy that is either accepted or rejected by a cost model. We present goSLP, a novel SLP auto-vectorization framework which solves the statement packing problem in a pairwise optimal manner. Using an integer linear programming (ILP) solver, goSLP searches the entire space of statement packing opportunities for a whole function at a time, while limiting total compilation time to a few minutes. Furthermore, goSLP optimally solves the vector permutation selection problem using dynamic programming. We implemented goSLP in the LLVM compiler infrastructure, achieving a geometric mean speedup of 7.58 and 4.07

READ FULL TEXT
research
02/07/2019

Revec: Program Rejuvenation through Revectorization

Modern microprocessors are equipped with Single Instruction Multiple Dat...
research
01/05/2022

Comparison of methods for the calculation of the real dilogarithm regarding instruction-level parallelism

We compare different methods for the computation of the real dilogarithm...
research
10/27/2020

Extended abstract: Type oriented programming for task based parallelism

Writing parallel codes is difficult and exhibits a fundamental trade-off...
research
11/17/2017

A Parallelizable Acceleration Framework for Packing Linear Programs

This paper presents an acceleration framework for packing linear program...
research
12/09/2022

Taskgraph: A Low Contention OpenMP Tasking Framework

OpenMP is the de-facto standard for shared memory systems in High-Perfor...
research
03/25/2022

Efficient k-clique Listing with Set Intersection Speedup [Technical Report]

Listing all k-cliques is a fundamental problem in graph mining, with app...
research
10/21/2022

A portable coding strategy to exploit vectorization on combustion simulations

The complexity of combustion simulations demands the latest high-perform...

Please sign up or login with your details

Forgot password? Click here to reset