A new open-source SIMD vector libm fully implemented with high-level scalar C - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2016

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

Résumé

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.
Fichier principal
Vignette du fichier
vectorlibm.pdf (206.95 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-01511131 , version 1 (20-04-2017)

Identifiants

Citer

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⟩
395 Consultations
3269 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More