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
Funzioni Trigonometriche Veloci Utilizzando l'Approccio RLIBM
Questo articolo descrive l'esperienza nello sviluppo di approssimazioni polinomiali per funzioni trigonometriche utilizzando il metodo RLIBM, che è in grado di produrre risultati correttamente arrotondati per molteplici rappresentazioni e modalità di arrotondamento. La sfida principale delle funzioni trigonometriche risiede nella riduzione di intervallo che coinvolge π, la quale riduce gli input dal dominio dei numeri in virgola mobile a 32 bit a un dominio più piccolo. Qualsiasi errore di arrotondamento nel valore di π viene amplificato durante il processo di riduzione di intervallo, potenzialmente causando risultati errati. Gli autori descrivono l'esperienza nell'implementazione di tecniche veloci di riduzione di intervallo che mantengono un gran numero di cifre di π sia nei calcoli in virgola mobile che in quelli interi. L'implementazione finale delle funzioni trigonometriche è sia veloce che in grado di produrre risultati correttamente arrotondati per tutti gli input, supportando molteplici rappresentazioni fino a 32 bit con una singola implementazione.
Sfida dell'Arrotondamento Corretto: Il calcolo scientifico utilizza ampiamente funzioni elementari fornite da librerie matematiche, ma produrre risultati correttamente arrotondati per tutti gli input è estremamente difficile (il cosiddetto "dilemma del tabulatore"), e le principali librerie matematiche non riescono a produrre risultati corretti per tutti gli input.
Problemi di Portabilità e Riproducibilità: L'assenza di librerie matematiche correttamente arrotondate causa applicazioni che producono risultati completamente diversi su macchine diverse, compromettendo la portabilità e la riproducibilità.
Necessità di Molteplici Formati di Rappresentazione: Con l'aumento di formati personalizzati (come bfloat16, tensorfloat32, FP8), è necessaria una libreria di riferimento che fornisca risultati corretti per molteplici rappresentazioni e modalità di arrotondamento.
Approssimazione Polinomiale Minimax: I metodi tradizionali generano approssimazioni polinomiali che minimizzano l'errore massimo per tutti gli input, ma quando l'output di valore reale è molto vicino al limite di arrotondamento, i gradi di libertà si riducono significativamente.
Compromesso tra Prestazioni e Correttezza: Le librerie esistenti fanno compromessi tra prestazioni (come l'implementazione di Payne-Hanek) o correttezza (come libm di GCC).
Tecniche Efficienti di Riduzione di Intervallo: Sviluppo di algoritmi efficienti di riduzione di intervallo che combinano calcoli in virgola mobile e interi, mantenendo un numero sufficiente di cifre di π per produrre risultati corretti.
Singola Implementazione per Molteplici Rappresentazioni: Implementazione di una singola approssimazione polinomiale in grado di produrre risultati correttamente arrotondati per rappresentazioni da 10 a 32 bit e per tutte le modalità di arrotondamento standard.
Ottimizzazione delle Prestazioni: La riduzione di intervallo basata su interi migliora le prestazioni del 19% rispetto alla strategia in virgola mobile, con prestazioni complessive più veloci o equivalenti alle librerie principali.
Libreria Trigonometrica Completa: Implementazioni veloci e corrette per le funzioni sin, cos e tan.
L'intuizione chiave del metodo RLIBM è approssimare direttamente il risultato correttamente arrotondato, piuttosto che il valore reale della funzione. Per il risultato correttamente arrotondato di un dato input, esiste un intervallo di valori reali tale che qualsiasi valore all'interno di questo intervallo si arrotonda al risultato corretto. Questo fornisce maggiore libertà rispetto al metodo minimax (1 ULP per tutti gli input).
Per supportare molteplici rappresentazioni, il progetto RLIBM propone di generare approssimazioni polinomiali per rappresentazioni a (n+2) bit, utilizzando la modalità di arrotondamento round-to-odd. I vantaggi di questo approccio sono:
Il risultato round-to-odd conserva tutte le informazioni necessarie per l'arrotondamento diretto alla rappresentazione target
L'arrotondamento successivo a rappresentazioni a larghezza di bit inferiore produce risultati corretti
Utilizzo di 256/π a 80 bit, memorizzato come due valori double
Evita errori di arrotondamento intermedi
Sfrutta il calcolo esatto dei prodotti parziali per generare k e la parte frazionaria r
Gestione di Input Grandi (2^30 ≤ |x|):
Versione 1: Divisione di 256/π in segmenti di 28 bit memorizzati in un array di double, con ogni segmento generato utilizzando la modalità di troncamento
Versione 2: Utilizzo di segmenti di precisione 53 bit, sfruttando l'istruzione fused-multiply-add per ridurre gli errori di arrotondamento
Prova di Fattibilità: Dimostra che è possibile generare implementazioni veloci e corrette per funzioni trigonometriche
Criticità della Riduzione di Intervallo: La riduzione di intervallo efficiente è altrettanto importante quanto l'approssimazione polinomiale di basso grado
Vantaggi dei Calcoli Interi: Le implementazioni basate su interi sono significativamente superiori ai metodi in virgola mobile per input grandi
Questo articolo cita letteratura importante nei campi dell'analisi numerica, dell'aritmetica in virgola mobile e dell'arrotondamento corretto, inclusi:
Libro di riferimento sulle funzioni elementari di Muller
Libreria MPFR ad alta precisione
Algoritmo di riduzione di intervallo di Payne-Hanek
Ricerca correlata allo standard IEEE-754 per la virgola mobile
Questo articolo fornisce un contributo importante al campo del calcolo numerico, trasformando con successo metodi teorici in implementazioni pratiche ad alte prestazioni, fornendo una soluzione efficace al problema dell'arrotondamento corretto nel calcolo scientifico.