Boost.SIMD: generic programming for portable SIMDization - Archive ouverte HAL
Communication Dans Un Congrès Année : 2014

Boost.SIMD: generic programming for portable SIMDization

Résumé

SIMD extensions have been a feature of choice for processor manufacturers for a couple of decades. Designed to exploit data parallelism in applications at the instruction level, these extensions still require a high level of expertise or the use of potentially fragile compiler support or vendor-specific libraries. While a large fraction of their theoretical accelerations can be obtained using such tools, exploiting such hardware becomes tedious as soon as application portability across hardware is required. In this paper, we describe B OOST.SIMD, a C++ template library that simplifies the exploitation of SIMD hardware within a standard C++ programming model. BOOST.SIMD provides a portable way to vectorize computation on Altivec, SSE or AVX while providing a generic way to extend the set of supported functions and hardwares. We introduce a C++ standard compliant interface for the users which increases expressiveness by providing a high-level abstraction to handle SIMD operations, an extension-specific optimization pass and a set of SIMD aware standard compliant algorithms which allow to reuse classical C++ abstractions for SIMD computation. We assess BOOST.SIMD performance and applicability by providing an implementation of BLAS and image processing algorithms.
Fichier non déposé

Dates et versions

hal-01759064 , version 1 (05-04-2018)

Identifiants

Citer

Pierre Esterie, Joel Falcou, Mathias Gaunard, Jean-Thierry Lapresté. Boost.SIMD: generic programming for portable SIMDization. WPMVP 2014 - Workshop on Programming models for SIMD/Vector processing, Feb 2014, Orlando, United States. pp.1-8, ⟨10.1145/2568058.2568063⟩. ⟨hal-01759064⟩
281 Consultations
0 Téléchargements

Altmetric

Partager

More