Chapter 24

Portable Explicit Vectorization Intrinsics

Paulo Souza*; Leonardo Borges; Cedric Andreolli; Philippe Thierry    * Petrobras, Brazil Intel, France Intel, USA

Abstract

This chapter presents OpenVec. OpenVec provides a powerful and simple way to express vectorization closer to assembly level but in a portable way, supporting SIMD architectures from over a decade ago up to the most recent architectures including AVX-512. Vectorization is a fundamental aspect of performance optimization. Good compiler vectorizers, abstract language extensions like Cilk Plus, OpenMP SIMD, and other compiler options can effectively take care of the majority of the source code base. Yet, applications may contain very specific and delimited region(s) ...

Get High Performance Parallelism Pearls Volume Two now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.