Title
Boost.SIMD: generic programming for portable SIMDization
Abstract
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.
Year
DOI
Venue
2012
10.1145/2370816.2370881
PACT
Keywords
Field
DocType
simd hardware,fragile compiler support,significant acceleration,data parallelism,instruction level,portable simdization,simd extension,programming model,generic programming,standard c,processor manufacturer,high level,c,simd
Computer architecture,Programming paradigm,AltiVec,Computer science,Reuse,Parallel computing,SIMD,Exploit,Compiler,Data parallelism,Generic programming
Conference
ISSN
Citations 
PageRank 
1089-795X
19
1.12
References 
Authors
10
5
Name
Order
Citations
PageRank
Pierre Esterie1383.82
Mathias Gaunard2373.14
Joel Falcou39611.30
Jean-thierry Lapresté410812.58
Brigitte Rozoy515115.79