Arithmétique des ordinateurs

Quel est l'avantage du calcul de a × b + c par une instruction FMA (multiplication-addition fusionnée) ?

  1. ALe produit intermédiaire n'est pas arrondi et un seul arrondi final est effectué, d'où une erreur plus faible et un calcul plus rapide
  2. BLe produit est toujours converti en entier avant l'addition, si bien qu'aucune erreur ne se produit
  3. CL'addition est omise et seule la multiplication est effectuée, ce qui divise le calcul par deux
Afficher la réponse et l'explication

Réponse : A. Le produit intermédiaire n'est pas arrondi et un seul arrondi final est effectué, d'où une erreur plus faible et un calcul plus rapide

Avec des instructions de multiplication et d'addition séparées, le résultat de a × b est arrondi, puis la somme avec c est de nouveau arrondie : deux arrondis ont lieu. La FMA conserve le produit en interne sans l'arrondir, y ajoute c et n'arrondit qu'une fois à la fin, ce qui réduit l'erreur. Une seule instruction suffit, d'où un gain de vitesse ; elle est très utilisée pour les produits matriciels, l'évaluation de polynômes et les calculs d'IA. Le produit n'est pas converti en entier et l'addition n'est pas omise. Le nombre d'arrondis différant, le résultat peut toutefois légèrement différer d'un calcul séparé.

S'entraîner sur ce thème Retour au thème

Autres questions sur Arithmétique des ordinateurs

  1. Quelle est la principale raison de l'emploi de bfloat16 pour l'entraînement en IA ?
  2. Lors de l'entraînement d'un réseau de neurones en FP16 (demi-précision : 1 bit de signe, 5 d'exposant, 10 de mantisse), quel problème survient fréquemment et se traite en multipliant la perte par un facteur (loss scaling) ?
  3. Quelle est la plus grande valeur finie représentable en FP16 (1 bit de signe, 5 bits d'exposant (biais 15), 10 bits de mantisse) ?
  4. Quelle répartition des deux formats FP8, E4M3 (4 bits d'exposant, 3 de mantisse) et E5M2 (5 bits d'exposant, 2 de mantisse), est courante ?
  5. En inférence d'IA, quel est le principal avantage de la conversion (quantification) des poids de FP32 en INT8 ?