A new open-source SIMD vector libm fully implemented with high-level scalar C
- 1 November 2016
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
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 8ulp, 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.Keywords
This publication has 10 references indexed in Scilit:
- Semi-Automatic Floating-Point Implementation of Special FunctionsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- Code Generators for Mathematical FunctionsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- Speeding up HEP experiment software with a library of fast and auto-vectorisable mathematical functionsJournal of Physics: Conference Series, 2014
- On Ziv's rounding testACM Transactions on Mathematical Software, 2013
- Handbook of Floating-Point ArithmeticPublished by Springer Science and Business Media LLC ,2010
- Efficient polynomial L-approximations18th IEEE Symposium on Computer Arithmetic (ARITH '07), 2007
- Fast and correctly rounded logarithms in double-precisionRAIRO - Theoretical Informatics and Applications, 2007
- An accurate elementary mathematical library for the IEEE floating point standardACM Transactions on Mathematical Software, 1991
- Table-driven implementation of the exponential function in IEEE floating-point arithmeticACM Transactions on Mathematical Software, 1989
- Radian reduction for trigonometric functionsACM SIGNUM Newsletter, 1983