Fast Trigonometric Functions using the RLIBM Approach
Park, Nagarakatte
This paper describes our experience developing polynomial approximations for trigonometric functions that produce correctly rounded results for multiple representations and rounding modes using the RLIBM approach. A key challenge with trigonometric functions concerns range reduction with "pi", which reduces a given input in the domain of a 32-bit float to a small domain. Any rounding error in the value of "pi" is amplified during range reduction, which can result in wrong results. We describe our experience implementing fast range reduction techniques that maintain a large number of bits of "pi" both with floating-point and integer computations. The resulting implementations for trigonometric functions are fast and produce correctly rounded results for all inputs for multiple representations up to 32-bits with a single implementation.
academic
Funciones Trigonométricas Rápidas Utilizando el Enfoque RLIBM
Este artículo describe la experiencia en el desarrollo de aproximaciones polinómicas de funciones trigonométricas utilizando el método RLIBM, que puede producir resultados correctamente redondeados para múltiples representaciones y modos de redondeo. El desafío clave de las funciones trigonométricas radica en la reducción de rango que implica π, la cual reduce las entradas del dominio de punto flotante de 32 bits a un dominio pequeño. Cualquier error de redondeo en el valor de π se amplifica durante el proceso de reducción de rango, lo que puede conducir a resultados incorrectos. Los autores describen la experiencia en la implementación de técnicas rápidas de reducción de rango que mantienen una gran cantidad de dígitos de π tanto en cálculos de punto flotante como en enteros. La implementación final de funciones trigonométricas es rápida y produce resultados correctamente redondeados para todas las entradas, soportando múltiples representaciones de hasta 32 bits con una única implementación.
Desafío del Redondeo Correcto: Las bibliotecas matemáticas ampliamente utilizadas en computación científica proporcionan funciones básicas, pero producir resultados correctamente redondeados para todas las entradas es extremadamente difícil (el "dilema del tabulador"), y las bibliotecas matemáticas convencionales no pueden producir resultados correctos para todas las entradas.
Problemas de Portabilidad y Reproducibilidad: La falta de bibliotecas matemáticas correctamente redondeadas causa que las aplicaciones produzcan resultados completamente diferentes en diferentes máquinas, afectando la portabilidad y reproducibilidad.
Necesidad de Múltiples Formatos de Representación: Con el aumento de formatos personalizados (como bfloat16, tensorfloat32, FP8), existe la necesidad de una biblioteca de referencia que proporcione resultados correctos para múltiples representaciones y modos de redondeo.
Aproximación Polinómica Minimax: Los métodos tradicionales generan aproximaciones polinómicas que minimizan el error máximo para todas las entradas, pero cuando la salida de valor real está muy cerca del límite de redondeo, los grados de libertad se reducen significativamente.
Compensación entre Rendimiento y Corrección: Las bibliotecas existentes hacen compromisos en rendimiento (como la implementación de Payne-Hanek) o corrección (como libm de GCC).
Técnicas Eficientes de Reducción de Rango: Desarrollo de algoritmos eficientes de reducción de rango que combinan operaciones de punto flotante e enteras, manteniendo suficientes dígitos de π para producir resultados correctos.
Implementación Única para Múltiples Representaciones: Implementación de una única aproximación polinómica que produce resultados correctamente redondeados para múltiples representaciones de 10 a 32 bits y todos los modos de redondeo estándar.
Optimización de Rendimiento: La reducción de rango basada en enteros mejora el rendimiento en un 19% en comparación con estrategias de punto flotante, siendo en general más rápida o comparable con las bibliotecas convencionales.
Biblioteca Completa de Funciones Trigonométricas: Implementaciones rápidas y correctas para las funciones sin, cos y tan.
La idea clave del método RLIBM es aproximar directamente el resultado correctamente redondeado, en lugar del valor real de la función. Para el resultado correctamente redondeado de una entrada dada, existe un intervalo de valor real dentro del cual cualquier valor se redondeará al resultado correcto. Esto proporciona más grados de libertad que el método minimax (1 ULP para todas las entradas).
Para soportar múltiples representaciones, el proyecto RLIBM propone generar aproximaciones polinómicas de representación de (n+2) bits, utilizando el modo de redondeo round-to-odd. Las ventajas de este enfoque son:
Los resultados round-to-odd preservan toda la información necesaria para redondear directamente a la representación objetivo
El redondeo posterior a representaciones de menor ancho de bits produce resultados correctos
Prueba de Viabilidad: Demuestra que es posible generar implementaciones rápidas y correctas para funciones trigonométricas
Criticidad de la Reducción de Rango: La reducción de rango eficiente es tan importante como la aproximación polinómica de bajo orden
Ventajas de Operaciones Enteras: Las implementaciones basadas en enteros son significativamente superiores a los métodos de punto flotante para entradas grandes
Este artículo cita literatura importante en los campos del análisis numérico, aritmética de punto flotante y redondeo correcto, incluyendo:
Libro de referencia de funciones básicas de Muller
Biblioteca de alta precisión MPFR
Algoritmo de reducción de rango de Payne-Hanek
Investigación relacionada con el estándar IEEE-754 de punto flotante
Este artículo realiza contribuciones importantes en el campo del cálculo numérico, transformando exitosamente métodos teóricos en implementaciones prácticas de alto rendimiento, proporcionando una solución efectiva para el problema del redondeo correcto en computación científica.