Inastemp: A Novel Intrinsics-as-Template Library for Portable SIMD-Vectorization

Author

Bramas, Berenger

Source

Scientific Programming

Issue

Vol. 2017, Issue 2017 (31 Dec. 2017), pp.1-18, 18 p.

Publisher

Hindawi Publishing Corporation

Publication Date

2017-09-20

Country of Publication

Egypt

No. of Pages

18

Main Subjects

Mathematics

Abstract EN

The development of scientific applications requires highly optimized computational kernels to benefit from modern hardware.

In recent years, vectorization has gained key importance in exploiting the processing capabilities of modern CPUs, whose evolution is characterized by increasing register-widths and core numbers, but stagnating clock frequencies.

In particular, vectorization allows floating point operations to be performed at a higher rate than the processor’s frequency.

However, compilers often fail to vectorize complex codes and pure assembly/intrinsic implementations often suffer from software engineering issues, such as readability and maintainability.

Moreover, it is difficult for domain scientists to write optimized code without technical support.

To address these issues, we propose Inastemp, a lightweight open-source C++ library.

Inastemp offers a solution to develop hardware-independent computational kernels for the CPU.

These kernels are portable across compilers and floating point precision and vectorized targeting SSE(3,4.1,4.2), AVX(2), AVX512, or ALTIVEC/VMX instructions.

Inastemp provides advanced features, such as an if-else statement that vectorizes branches that cannot be removed.

Our performance study shows that Inastemp has the same efficiency as pure intrinsic approaches on modern architectures.

As side-results, this study provides micro benchmarks on the latest HPC architectures for three different computational kernels, emphasizing comparisons between scalar and intrinsic-based codes.

American Psychological Association (APA)

Bramas, Berenger. 2017. Inastemp: A Novel Intrinsics-as-Template Library for Portable SIMD-Vectorization. Scientific Programming،Vol. 2017, no. 2017, pp.1-18.
https://search.emarefa.net/detail/BIM-1203438

Modern Language Association (MLA)

Bramas, Berenger. Inastemp: A Novel Intrinsics-as-Template Library for Portable SIMD-Vectorization. Scientific Programming No. 2017 (2017), pp.1-18.
https://search.emarefa.net/detail/BIM-1203438

American Medical Association (AMA)

Bramas, Berenger. Inastemp: A Novel Intrinsics-as-Template Library for Portable SIMD-Vectorization. Scientific Programming. 2017. Vol. 2017, no. 2017, pp.1-18.
https://search.emarefa.net/detail/BIM-1203438

Data Type

Journal Articles

Language

English

Notes

Includes bibliographical references

Record ID

BIM-1203438