Introduction

Il est essentiel de comprendre le format de précision à utiliser pour un calcul, mais cela peut parfois ressembler à un exercice d'équilibriste : la précision du calcul en double précision semble concurrencer la valeur des performances de son homologue en simple précision. Ces deux méthodes garantissent la précision et repoussent les limites des valeurs numériques, mais chaque technique est associée à un objectif et un coût opérationnel uniques.

Ici, nous allons examiner de près chaque format, en quoi ils diffèrent les uns des autres et en quoi la combinaison de différents niveaux de précision peut vous aider à maintenir votre efficacité sans perdre en exactitude.

Le rôle de la précision dans l'informatique

Pour comprendre la différence entre le calcul en simple précision et le calcul en double précision, il est important de comprendre le rôle de la précision dans l'informatique. Imaginez que vous effectuez un calcul à l'aide d'un nombre irrationnel (comme pi) et que vous n'incluez que deux chiffres à droite de la virgule (3,14). Vous obtiendrez un résultat plus précis si vous effectuez le calcul en incluant dix chiffres à droite de la virgule (3,1415926535).

Pour les ordinateurs, c'est ce qu'on appelle la précision, et elle est mesurée en chiffres binaires (bits) au lieu de décimales. Plus le nombre de bits utilisés est élevé, plus la précision est élevée.

Man on computer in a dim room with a city view.

Représentation des nombres à virgule flottante, norme IEEE

La représentation de grands nombres en binaire informatique nécessite une norme pour s'assurer qu'il n'y a pas d'incohérences importantes dans les calculs. Ainsi, l'IEEE (Institute of Electrical and Electronics Engineers) a développé la norme IEEE pour l'arithmétique à virgule flottante (IEEE 754)

La norme IEEE 754 comprend trois éléments :

  1. La base : 0 représente un nombre positif ; 1 représente un nombre négatif. 
  2. L'exposant biaisé : l'exposant est utilisé pour représenter à la fois les exposants positifs et négatifs. Par conséquent, un biais doit être ajouté à l'exposant réel pour obtenir l'exposant stocké. 
  3. La mantisse : également appelée significande, la mantisse représente les bits de précision du nombre.

Grâce à ces éléments, la norme IEEE 754 représente les nombres à virgule flottante de deux manières : le format simple précision et le format double précision. Bien qu'il existe d'autres façons de représenter les nombres à virgule flottante, la norme IEEE 754 est la plus courante, car elle est généralement la représentation la plus efficace des valeurs numériques. 

Blue abstract data dots

Représentation des nombres à virgule flottante, norme IEEE

La représentation de grands nombres en binaire informatique nécessite une norme pour s'assurer qu'il n'y a pas d'incohérences importantes dans les calculs. Ainsi, l'IEEE (Institute of Electrical and Electronics Engineers) a développé la norme IEEE pour l'arithmétique à virgule flottante (IEEE 754)

La norme IEEE 754 comprend trois éléments :

  1. La base : 0 représente un nombre positif ; 1 représente un nombre négatif. 
  2. L'exposant biaisé : l'exposant est utilisé pour représenter à la fois les exposants positifs et négatifs. Par conséquent, un biais doit être ajouté à l'exposant réel pour obtenir l'exposant stocké. 
  3. La mantisse : également appelée significande, la mantisse représente les bits de précision du nombre.

Grâce à ces éléments, la norme IEEE 754 représente les nombres à virgule flottante de deux manières : le format simple précision et le format double précision. Bien qu'il existe d'autres façons de représenter les nombres à virgule flottante, la norme IEEE 754 est la plus courante, car elle est généralement la représentation la plus efficace des valeurs numériques. 

Qu'est-ce que le format à virgule flottante simple précision ?

Le format à virgule flottante simple précision utilise 32 bits de mémoire d'ordinateur et peut représenter une large gamme de valeurs numériques. Souvent appelé FP32, ce format est idéal pour les calculs qui peuvent supporter une approximation.

Qu'est-ce que le format à virgule flottante double précision ?

Le format à virgule flottante double précision, quant à lui, occupe 64 bits de mémoire d'ordinateur et est beaucoup plus précis que le format simple précision. Ce format est souvent appelé FP64 et utilisé pour représenter les valeurs qui nécessitent une plage plus grande ou un calcul plus précis.

Bien que la double précision autorise une plus grande précision, elle nécessite également plus de ressources de calcul, de stockage mémoire et de transfert de données. Le coût d'utilisation de ce format n'est pas toujours justifié pour chaque calcul.

La différence entre simple précision et double précision

Le moyen le plus simple de faire la distinction entre le calcul en simple précision et le calcul en double précision consiste à observer le nombre de bits représentant le nombre à virgule flottante. Pour une simple précision, 32 bits sont utilisés pour représenter le nombre à virgule flottante. Pour une double précision, 64 bits sont utilisés pour représenter le nombre à virgule flottante. 

Prenons le nombre d'Euler (e), par exemple. Voici les 50 premiers chiffres décimaux de e : 2.7182818284590452353602874713526624977572470936999.

Voici le nombre d'Euler en binaire, converti en simple précision :  
01000000001011011111100001010100

Voici le nombre d'Euler en binaire, converti en double précision : 
010000000000010110111111 0000101010001011000101000101011101101001

Le premier chiffre représente la base. La série de chiffres suivante (8 pour une simple précision et 11 pour une double précision) représente l'exposant biaisé. La dernière série de chiffres (23 pour une simple précision et 52 pour une double précision) représente la mantisse.

Tableau de comparaison : Simple précision et double précision

 

Simple précision

Double précision

Présentation

Utilise 32 bits de mémoire pour représenter une valeur numérique, l'un des bits représentant le signe de la mantisse

Utilise 64 bits de mémoire pour représenter une valeur numérique, l'un des bits représentant le signe de la mantisse

 

Exposant biaisé

 

8 bits utilisés pour l'exposant

 

11 bits utilisés pour l'exposant

 

Mantisse

 

Utilise 23 bits pour la mantisse (pour représenter la partie fractionnelle)

 

Utilise 52 bits pour la mantisse (pour représenter la partie fractionnelle)

 

Application concrète

Souvent utilisée pour les jeux ou les programmes qui nécessitent une représentation plus large sans un niveau de précision élevé

Souvent utilisée pour les calculs scientifiques et les programmes complexes qui nécessitent un niveau de précision élevé

Calcul en multi-précision ou en précision mixte

En plus du calcul en simple précision et du calcul en double précision, qui sont considérés comme multi-précision, il existe également le calcul en précision mixte.

Le calcul en précision mixte, parfois appelé « transprécision », est couramment utilisé dans le domaine de l'apprentissage automatique. Il effectue des calculs en commençant par des valeurs de demi-précision (16 bits) pour les opérations mathématiques matricielles rapides. Puis, au fur et à mesure que les chiffres sont calculés, ils sont stockés par la machine avec une plus grande précision. 

L'avantage du calcul en précision mixte est qu'il offre des réponses cumulées d'une précision similaire à celle du calcul en double précision, sans nécessiter le même niveau de puissance, d'exécution et de mémoire.

Blue abstract computer chip layout

Avantages de la combinaison de différents niveaux de précision

Les différentes charges de travail nécessitent différents niveaux de précision, car l'exécution des calculs n'est pas une pratique uniforme. Les informaticiens ont besoin de différents formats pour le calcul en fonction des ressources disponibles, du budget, du stockage et d'autres variables. 

Par exemple, en raison de sa précision incroyable, la double précision pourrait être la meilleure pour certaines recherches sur le Big Data ou la modélisation météorologique. Mais le stockage et les ressources nécessaires à ces calculs ne justifient pas toujours leur utilisation. Les développeurs peuvent optimiser l'efficacité et les dépenses de calcul en combinant différents niveaux de précision, selon les besoins. 

Optimisez l'efficacité de vos calculs

La précision des calculs est bien évidemment essentielle, mais il est important de comprendre comment vous pouvez tirer parti de l'utilisation de différents niveaux de précision. Pour garantir l'efficacité opérationnelle sans sacrifier l'exactitude des calculs, vous avez besoin de fonctionnalités flexibles prenant en charge différents formats à virgule flottante.

AMD Vivado™ Design Suite

Les solutions d'AMD AMD Vivado™ ML et System Generator for DSP offrent toutes deux des outils robustes qui prennent en charge diverses précisions à virgule flottante, que ce soit en multi-précision ou en précision mixte. Cette suite d'outils de pointe permet également une précision personnalisée, nécessaire pour accélérer la conception, augmenter la productivité et optimiser l'utilisation des ressources. Découvrez comment AMD Vivado peut améliorer l'efficacité de vos calculs.

Restez connecté

Abonnez-vous pour recevoir les dernières actualités sur les centres de données ou contactez un représentant commercial AMD.