PPoPP 2016
Sat 12 - Wed 16 March 2016 Barcelona, Spain
Sun 13 Mar 2016 12:00 - 12:30 at Mallorca - Session 2 - Programming Models Chair(s): Joel Falcou

Achieving high performance for compute bounded numerical kernels typically requires an expert to hand select an appropriate set of Single-instruction multiple-date (SIMD) instructions, then statically scheduling them in order to hide their latency while avoiding register spilling in the process. Unfortunately, this necessary amount of control of the code forces the expert to trade programming abstraction for performance which is why many performance critical kernels are written in assembly language. An alternative is to either resort to auto-vectorization (see Figure 1) or to use intrinsic functions, both features offered by compilers. However, in both scenarios the expert loses control over which instructions are selected, which optimizations are applied to the code and moreover how the instructions are scheduled for a target architecture. Ideally, the expert would need assembly-like control over their SIMD instructions beyond what intrinsics provide while maintaining a C-level abstraction for the non-performance critical parts. In this paper, we bridge the gap between performance an ab- straction for SIMD instructions through the use of custom macro intrinsics that provide the programmer control over the instruction selection, and scheduling, while leveraging the compiler to manage the registers. This provides the best of both assembly and vector intrinsics programming so that a programmer can obtain high performance implementations within the C programming language.

Sun 13 Mar
Times are displayed in time zone: Greenwich Mean Time : Belfast change

11:00 - 12:30: Session 2 - Programming ModelsWPMVP at Mallorca
Chair(s): Joel FalcouLRI, Université Paris-Sud
11:00 - 11:30
Support for Data Parallelism in the CAL Actor Language
Essayas GebrewahidHalmstad University
11:30 - 12:00
An Evaluation of Current SIMD Programming Models for C++
Angela PohlTU Berlin
12:00 - 12:30
Compilers, Hands-Off My Hands-On Optimizations
Richard VerasCarnegie Mellon University