Proceedings of the 2014 Workshop on Programming Models for SIMD/Vector Processing 2014
DOI: 10.1145/2568058.2568063
|View full text |Cite
|
Sign up to set email alerts
|

Boost.SIMD

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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
6
2

Relationship

0
8

Authors

Journals

citations
Cited by 18 publications
(7 citation statements)
references
References 14 publications
(13 reference statements)
0
7
0
Order By: Relevance
“…Having to design and support functions for several different vectorized instruction sets is cumbersome. We could ask whether we can achieve similar results with higher-level C++ libraries such as the Generic SIMD Library [Wang et al 2014] or Boost.SIMD [Estérie et al 2014]. Programming languages like Swift or Rust also have generic SIMD packages that could be put to good use.…”
Section: Resultsmentioning
confidence: 99%
“…Having to design and support functions for several different vectorized instruction sets is cumbersome. We could ask whether we can achieve similar results with higher-level C++ libraries such as the Generic SIMD Library [Wang et al 2014] or Boost.SIMD [Estérie et al 2014]. Programming languages like Swift or Rust also have generic SIMD packages that could be put to good use.…”
Section: Resultsmentioning
confidence: 99%
“…Dynamic programs are implemented using a generic programming paradigm employing expression templates and compile-time polymorphism; generic recursion equations capturing the details of the structural ensemble and free energy model are translated via template metaprogramming into a separate vectorized executable for calculating each physical quantity in Table . Single-threaded single instruction multiple data (SIMD) vectorization is implemented using the Boost.SIMD library . The convex optimization problem (eq 14) is solved in the dual form using an efficient trust region method using the Armadillo linear algebra library for matrix operations …”
Section: Methodsmentioning
confidence: 99%
“…SIMD libraries. A flurry of C++ libraries provide a unified programming model for various SIMD architectures, such as Boot.SIMD [11], MIPP [8], UME::SIMD [14], Sierra [18] or VC [16]. These works are complementary to ours: our intent is to provide a language that (always) compiles to efficient bitsliced code while being amenable to formal verification.…”
Section: Related Workmentioning
confidence: 99%
“…Historically, bitslicing is a manual process. For instance, here is a snippet of a bitsliced implementation of the Data Encryption Standard (DES) by Kwan [17]: [11], r1^k[26], r2^k [3], r3^k [13] r11^k [17], r12^k [5], &l23, &l15, &l29, &l5);…”
Section: Introductionmentioning
confidence: 99%