Exemple d implantation de fonction mathématique sur ST240



Documents pareils
Chapitre 10 Arithmétique réelle

IFT2880 Organisation des ordinateurs et systèmes

De l arithmétique d intervalles à la certification de programmes

Conversion d un entier. Méthode par soustraction

CCP PSI Mathématiques 1 : un corrigé

Table des matières. I Mise à niveau 11. Préface

Informatique Générale

Résolution d équations non linéaires

Logiciel de Base. I. Représentation des nombres

Représentation des Nombres

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Calcul scientifique précis et efficace sur le processeur CELL

Arithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Représentation d un nombre en machine, erreurs d arrondis

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Sites web éducatifs et ressources en mathématiques

Preuves formelles en arithmétiques à virgule flottante

Programmation C. Apprendre à développer des programmes simples dans le langage C

Maple: premiers calculs et premières applications

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

Nouveau Barème W.B.F. de points de victoire 4 à 48 donnes

Quelques tests de primalité

Organisation des Ordinateurs

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Calcul Scientifique et Symbolique, Logiciels Licence Mathématiques UE N1MA3003. Alain Yger

Introduction à l étude des Corps Finis

Sanity Check. bgcolor mgcolor fgcolor

Classe de première L

Système binaire. Algèbre booléenne

Compte rendu de LA37 B, TP numéro 1. Evolution de la température et du degrée d'hydratation

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Codage d information. Codage d information : -Définition-

Puissances d un nombre relatif

Chp. 4. Minimisation d une fonction d une variable

Nombres premiers. Comment reconnaître un nombre premier? Mais...

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

I. Polynômes de Tchebychev

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

1 Recherche en table par balayage

Architecture de l ordinateur

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Polynômes à plusieurs variables. Résultant

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Calculateur quantique: factorisation des entiers

LES TYPES DE DONNÉES DU LANGAGE PASCAL

V- Manipulations de nombres en binaire

Exprimer ce coefficient de proportionnalité sous forme de pourcentage : 3,5 %

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

MATHÉMATIQUES FINANCIÈRES

Chapitre VI - Méthodes de factorisation

Introduction à l informatique en BCPST

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU

La survie nette actuelle à long terme Qualités de sept méthodes d estimation

Glossaire des nombres

Complément d information concernant la fiche de concordance

Trouver un vecteur le plus court dans un réseau euclidien

Licence Sciences et Technologies Examen janvier 2010

Asynchronisme : Cadres continu et discret

1. Vocabulaire : Introduction au tableau élémentaire

ALGORITHMIQUE ET PROGRAMMATION En C

INTRODUCTION. 1 k 2. k=1

Nathalie Barbary SANSTABOO. Excel expert. Fonctions, simulations, Groupe Eyrolles, 2011, ISBN :

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot


Présentation du langage et premières fonctions

Correction de l examen de la première session

Date : Note /20 : EVALUATION Nom : Prénom : Classe : Traitement sur mots

Introduction aux Statistiques et à l utilisation du logiciel R

PRESENTATION DES RECOMMANDATIONS DE VANCOUVER

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

Echantillonnage Non uniforme

Coup de Projecteur sur les Réseaux de Neurones

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

IFT1215 Introduction aux systèmes informatiques

DUT Techniques de commercialisation Mathématiques et statistiques appliquées

Fibonacci et les paquerettes

Architecture matérielle des systèmes informatiques

Une méthode de classification supervisée sans paramètre pour l apprentissage sur les grandes bases de données

ANALYSE GÉNÉRALE - PROPOSITION DE CORRIGÉ. Exercice 1

Bureau N301 (Nautile)

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

STAGE IREM 0- Premiers pas en Python

Mathématiques appliquées à l informatique

Introduction au langage C

Séries Statistiques Simples

Gestion des Clés Publiques (PKI)

Évaluation et optimisation de requêtes

Continuité et dérivabilité d une fonction

Correction du baccalauréat STMG Polynésie 17 juin 2014

Chapitre 2. Eléments pour comprendre un énoncé

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Statistiques Descriptives à une dimension

Théorème du point fixe - Théorème de l inversion locale


4.2 Unités d enseignement du M1

CNAM léments de cours Bonus-malus et Crédibilité

Transcription:

Exemple d implantation de fonction mathématique sur ST240 Guillaume Revy Encadrants : Claude-Pierre Jeannerod et Gilles Villard Équipe INRIA Arénaire Laboratoire de l Informatique du Parallélisme - ENS Lyon Réunion EVA-Flo Perpignan, 18-19 octobre 2007 Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 1/13

Contexte et objectifs Bibliothèque FLIP Support logiciel pour l arithmétique flottante simple précision aux processeurs entiers https://lipforge.ens-lyon.fr/projects/flip/ Fonctions mathématiques rapides et précises +,,, /,, 1/,... Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 2/13

Contexte et objectifs Bibliothèque FLIP Support logiciel pour l arithmétique flottante simple précision aux processeurs entiers https://lipforge.ens-lyon.fr/projects/flip/ Fonctions mathématiques rapides et précises +,,, /,, 1/,... Objectifs Qualité visée : arrondi correct au plus près, sans nombres dénormalisés Impact dû : à l ajout d autre modes d arrondi à la prise en compte des nombres dénormalisés Extension à d autres formats : medium/high precision (OpenGL ES) Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 2/13

Méthode générale Soit x un nombre flottant simple précision normalisé positif (IEEE-754) : x = m 2 e, avec m = 1.f 1f 2f 3... f 23 [1, 2), et e Z [ 126, 127]. x = m 2 e 2 ( m 2 e 2 = 2m 2 2 e si e est pair, si e est impair. Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 3/13

Méthode générale Soit x un nombre flottant simple précision normalisé positif (IEEE-754) : x = m 2 e, avec m = 1.f 1f 2f 3... f 23 [1, 2), et e Z [ 126, 127]. x = m 2 e 2 ( m 2 e 2 = 2m 2 2 e si e est pair, si e est impair. Finalement : x = l 2 d, avec l = ϕ m, ϕ {1, 2} et d = e 2. Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 3/13

Méthode générale Soit x un nombre flottant simple précision normalisé positif (IEEE-754) : x = m 2 e, avec m = 1.f 1f 2f 3... f 23 [1, 2), et e Z [ 126, 127]. x = m 2 e 2 ( m 2 e 2 = 2m 2 2 e si e est pair, si e est impair. Finalement : x = l 2 d, avec l = ϕ m, ϕ {1, 2} et d = e 2. Avantage : pas de renormalisation en arrondi au plus près m [1, 2) donc `ϕ m [1, 2) ( x) = `ϕ m 2 d Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 3/13

Principales étapes Entrée : un nombre flottant x simple précision normalisé ou une valeur spéciale, dans un registre 32 bits. x = m 2 e ou x {, x < 0, 0, +0, +, NaN} Calcul de (l) Calcul de d Traitement des valeurs spéciales Normalisation RU r = ( l) = (l) 2 d ou r { 0, +0, +, NaN} Sortie : arrondi correct au plus près de x, ou une exception. Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 4/13

Quelle méthode utiliser pour calculer ϕ m? Méthodes directes : restaurante / non-restaurante 1 bit du résultat calculé à chaque itération : 24 itérations méthodes lentes Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 5/13

Quelle méthode utiliser pour calculer ϕ m? Méthodes directes : restaurante / non-restaurante 1 bit du résultat calculé à chaque itération : 24 itérations méthodes lentes Méthodes itératives Newton-Raphson / Goldschmidt première approximation de m ou 1 m en gros, la précision double à chaque itération méthode précédente : 1 itération de Goldschmidt Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 5/13

Quelle méthode utiliser pour calculer ϕ m? Méthodes directes : restaurante / non-restaurante 1 bit du résultat calculé à chaque itération : 24 itérations méthodes lentes Méthodes itératives Newton-Raphson / Goldschmidt première approximation de m ou 1 m en gros, la précision double à chaque itération méthode précédente : 1 itération de Goldschmidt Autres méthodes méthodes SRT, approximations par série entière,... Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 5/13

Quelle méthode utiliser pour calculer ϕ m? Méthodes directes : restaurante / non-restaurante 1 bit du résultat calculé à chaque itération : 24 itérations méthodes lentes Méthodes itératives Newton-Raphson / Goldschmidt première approximation de m ou 1 m en gros, la précision double à chaque itération méthode précédente : 1 itération de Goldschmidt Autres méthodes méthodes SRT, approximations par série entière,... Notre approche méthode à base d évaluation polynomiale approximation de m par un polynôme de degré 8 (avec coefficients structurés) évaluation du polynôme avec un schéma rapide Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 5/13

Quel schéma utiliser pour évaluer ϕa(t) sur ST240? Quelques caractéristiques VLIW 4 voies 4 opérations/cycle (ou 2 multiplications) latences : 3 cycles/multiplication et 1 cycle/addition Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 6/13

Quel schéma utiliser pour évaluer ϕa(t) sur ST240? Quelques caractéristiques VLIW 4 voies 4 opérations/cycle (ou 2 multiplications) latences : 3 cycles/multiplication et 1 cycle/addition h Schéma de Horner ϕa(t) = ϕ `(a i 8t + a 7)t + a 6... t + a 0 schéma séquentiel Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 6/13

Quel schéma utiliser pour évaluer ϕa(t) sur ST240? Quelques caractéristiques VLIW 4 voies 4 opérations/cycle (ou 2 multiplications) latences : 3 cycles/multiplication et 1 cycle/addition h Schéma de Horner ϕa(t) = ϕ `(a i 8t + a 7)t + a 6... t + a 0 schéma séquentiel Voie 1 Voie 2 Voie 3 Voie 4 cycle 1 a 8 t cycle 2 cycle 3 cycle 4 a 8t + a 7 cycle 5 (a 8t + a 7) t cycle 6 cycle 7 cycle 8 (a 8t + a 7) t + a 6 cycle 9... Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 6/13

Quel schéma utiliser pour évaluer ϕa(t) sur ST240? Quelques caractéristiques VLIW 4 voies 4 opérations/cycle (ou 2 multiplications) latences : 3 cycles/multiplication et 1 cycle/addition h Schéma de Horner ϕa(t) = ϕ `(a i 8t + a 7)t + a 6... t + a 0 schéma séquentiel Voie 1 Voie 2 Voie 3 Voie 4 cycle 1 a 8 t cycle 2 a 8t + a 7 cycle 3 (a 8t + a 7) t cycle 4 cycle 5 cycle 6 (a 8t + a 7) t + a 6 cycle 7... cycle 8 cycle 9 Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 6/13

Quel schéma utiliser pour évaluer ϕa(t) sur ST240? Quelques caractéristiques VLIW 4 voies 4 opérations/cycle (ou 2 multiplications) latences : 3 cycles/multiplication et 1 cycle/addition h Schéma de Horner ϕa(t) = ϕ `(a i 8t + a 7)t + a 6... t + a 0 schéma séquentiel utilisation d une seule des 4 voies latence = 29 cycles Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 6/13

Quel schéma utiliser pour évaluer ϕa(t) sur ST240? Quelques caractéristiques VLIW 4 voies 4 opérations/cycle (ou 2 multiplications) latences : 3 cycles/multiplication et 1 cycle/addition h Schéma de Horner ϕa(t) = ϕ `(a i 8t + a 7)t + a 6... t + a 0 Schéma rapide proposé schéma séquentiel utilisation d une seule des 4 voies latence = 29 cycles coefficients positifs et valeurs intermédiaires positives incorporation de la multiplication par ϕ et ajout de 2 25 (utile pour l arrondi) ϕa(t) = `ϕ(a0+a 1t)+2 25 `(a 2 a 3t)+(a 4 a 5t)t 2 ϕt 2 `(a6 a 7t)+(a 8t 2 ) t 4 ϕt 2 Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 6/13

Ordonnancement du schéma d évaluation sur ST240 ϕa(t) = `ϕ(a0+a 1t)+2 25 `(a 2 a 3t)+(a 4 a 5t)t 2 ϕt 2 `(a6 a 7t)+(a 8t 2 ) t 4 ϕt 2 Voie 1 Voie 2 Voie 3 Voie 4 cycle 1 t 2 = t t a 5 t cycle 2 a 7 t a 1 t cycle 3 a 3 t cycle 4 t 4 = t 2 t 2 a 45 = a 4 a 5t cycle 5 a 45 t 2 a 8 t 2 a 67 = a 6 a 7t cycle 6 a 01 = a 0 + a 1t ϕ t 2 a 68 = a 67 + a 8t 2 cycle 7 a 23 = a 2 a 3t a 68 t 4 cycle 8 a 01 ϕ a 25 = a 23 + a 45t 2 cycle 9 a 25 ϕt 2 cycle 10 (a 68t 4 ) ϕt 2 cycle 11 a 01 = a01ϕ + 2 25 cycle 12 a 05 = a 01 a25ϕt2 cycle 13 ϕa(t) = a 05 (a 68t 4 )ϕt 2 Évaluation en 13 cycles ( 2.2 fois plus rapide que Horner) Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 7/13

Ordonnancement du schéma d évaluation sur ST240 ϕa(t) = `ϕ(a0+a 1t)+2 25 `(a 2 a 3t)+(a 4 a 5t)t 2 ϕt 2 `(a6 a 7t)+(a 8t 2 ) t 4 ϕt 2 Voie 1 Voie 2 Voie 3 Voie 4 cycle 1 t 2 = t t a 5 t cycle 2 a 7 t a 1 t cycle 3 a 3 t cycle 4 t 4 = t 2 t 2 a 45 = a 4 a 5t cycle 5 a 45 t 2 a 8 t 2 a 67 = a 6 a 7t cycle 6 a 01 = a 0 + a 1t ϕ t 2 a 68 = a 67 + a 8t 2 cycle 7 a 23 = a 2 a 3t a 68 t 4 cycle 8 a 01 ϕ a 25 = a 23 + a 45t 2 cycle 9 a 25 ϕt 2 cycle 10 (a 68t 4 ) ϕt 2 cycle 11 a 01 = a01ϕ + 2 25 cycle 12 a 05 = a 01 a25ϕt2 cycle 13 ϕa(t) = a 05 (a 68t 4 )ϕt 2 Évaluation en 13 cycles ( 2.2 fois plus rapide que Horner) Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 7/13

Comment vérifier l arrondi correct? Méthode 1 Validation a priori erreur d approximation (Maple, Arenairetools) erreur d évaluation (Gappa) preuve sur papier des méthodes d arrondi Méthode 2 Validation a posteriori tests exhaustifs envisageable uniquement pour les fonctions univariées Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 8/13

Résumé de l approche Comment implanter une fonction? Calculer les coefficients d un bon polynôme d approximation quelle fonction sur quel intervalle? quel degré? quelle structure de coefficients? Proposer un code d évaluation de ce polynôme en virgule fixe quel degré de parallélisme? quelles latences? quel schéma d évaluation? analyse numérique du schéma d évaluation avec Gappa Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 9/13

Résumé de l approche Comment implanter une fonction? Calculer les coefficients d un bon polynôme d approximation quelle fonction sur quel intervalle? quel degré? quelle structure de coefficients? Proposer un code d évaluation de ce polynôme en virgule fixe quel degré de parallélisme? quelles latences? quel schéma d évaluation? analyse numérique du schéma d évaluation avec Gappa BESOIN D AUTOMATISATION Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 9/13

Performances sur ST240 Pour toute entrée x (valeurs spéciales comprises) : RN RU RD/RZ RF Sans dénormalisés 22 22 22 20 Avec dénormalisés 25 25 25 22 TAB.: Timings (cycles) sur ST240, suivant différents modes d arrondi Accélération 55% par rapport à la version précédente Même latence pour les quatre modes d arrondi Surcoût dû à la prise en compte des nombres dénormalisés = 3 cycles (2 cycles en théorie) Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 10/13

Performances sur ST240 Pour toute entrée x (valeurs spéciales comprises) : RN RU RD/RZ RF Sans dénormalisés 22 22 22 20 Avec dénormalisés 25 25 25 22 TAB.: Timings (cycles) sur ST240, suivant différents modes d arrondi Accélération 55% par rapport à la version précédente Même latence pour les quatre modes d arrondi Surcoût dû à la prise en compte des nombres dénormalisés = 3 cycles (2 cycles en théorie) Méthode facilement adaptable : à l arrondi fidèle (RF), mais polynôme trop précis à d autres formats (medium/high precision) Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 10/13

Extension à d autres fonctions... Sans dénormalisés Avec dénormalisés FLIP 1.0 FLIP 0.3 Accélération FLIP 1.0 Surcoût x 22 48 55% 25 3 x 1 2 29 60 52% 31 2 x 1 4 36 38 2 1/x 23 45 49% 28 5 TAB.: Timings en arrondi au plus près sur ST240 Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 11/13

Spécifications de la cible nombre de voies (parallélisme) nombre d opérations par cycle latence des opérations (+, ) taille des registres Spécifications de l arithmétique virgule fixe/flottante précision p Générateur de schéma (et code associé) pour l évaluation de a Polynôme d approximation a degré n du polynôme intervalle d évaluation erreur d approximation coefficients a i (0 i n) Schéma d évaluation + Code C Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 12/13

Spécifications de la cible nombre de voies (parallélisme) nombre d opérations par cycle latence des opérations (+, ) taille des registres Spécifications de l arithmétique virgule fixe/flottante précision p Générateur de schéma (et code associé) pour l évaluation de a Polynôme d approximation a degré n du polynôme intervalle d évaluation erreur d approximation coefficients a i (0 i n) Détermination de tous les schémas d évaluation pour un polynôme de degré n Schéma d évaluation + Code C Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 12/13

Spécifications de la cible nombre de voies (parallélisme) nombre d opérations par cycle latence des opérations (+, ) taille des registres Spécifications de l arithmétique virgule fixe/flottante précision p Générateur de schéma (et code associé) pour l évaluation de a Polynôme d approximation a degré n du polynôme intervalle d évaluation erreur d approximation coefficients a i (0 i n) Détermination d un meilleur ordonnancement sur la cible Détermination de tous les schémas d évaluation pour un polynôme de degré n pour chaque schéma d évaluation Optimisation (structure de coefficients,...) Validation Schéma d évaluation + Code C un meilleur schéma d évaluation Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 12/13

Racine carrée simple précision correctement arrondie Implantation à base d évaluation polynomiale Efficace sur ST240 : accélération de 55% Efficacité de cette méthode pour l implantation d autres fonctions algébriques : racine carrée inverse, racine quatrième inverse... Extension aux autres fonctions de FLIP (inverse, division,...) Besoin d automatiser la conception : des schémas d évaluation et des procédures d arrondi, et plus généralement de fonctions. Réunion EVA-Flo (18-19 octobre 2007) Exemple d implantation de fonction mathématique sur ST240 13/13