A new open-source SIMD vector libm fully implemented with high-level scalar C

Christoph Lauter 1
1 PEQUAN - Performance et Qualité des Algorithmes Numériques
LIP6 - Laboratoire d'Informatique de Paris 6
Abstract : Systems support mathematical functions like exp, sin, cos through mathematical libraries (libm). With increasingly parallel hardware, scalar libm functions do not suffice; implementations that work on vectors in an element-by-element (SIMD) fashion are required. Only few Open-Source implementations of vector libms exist. They are mostly written in assembly, which hinders portability and maintenance. As they depend on the scalar system libm for special case handling, the existing vector libms may induce a source of non-reproducibility. We present an Open-Source vector libm implemented with high-level scalar C that a modern compiler can translate to SIMD code. The error of all functions does not exceed 8 ulp, while a performance gain of up to 278.5% is obtained. Our library is fully free-standing, i.e. it does not depend on any other system library.
Document type :
Conference papers
Complete list of metadatas

Cited literature [12 references]  Display  Hide  Download

https://hal.archives-ouvertes.fr/hal-01511131
Contributor : Christoph Lauter <>
Submitted on : Thursday, April 20, 2017 - 1:55:23 PM
Last modification on : Thursday, March 21, 2019 - 2:19:33 PM
Long-term archiving on : Friday, July 21, 2017 - 1:27:15 PM

File

vectorlibm.pdf
Files produced by the author(s)

Identifiers

Citation

Christoph Lauter. A new open-source SIMD vector libm fully implemented with high-level scalar C. 2016 50th Asilomar Conference on Signals, Systems and Computers , Nov 2016, Pacific Grove, United States. pp.407 - 411, ⟨10.1109/ACSSC.2016.7869070⟩. ⟨hal-01511131⟩

Share

Metrics

Record views

284

Files downloads

2132