mad (fonction)

Effectue une opération de multiplication/ajout arithmétique sur trois valeurs.

Syntaxe

numeric mad(
  in numeric mvalue,
  in numeric avalue,
  in numeric bvalue
);

Paramètres

mvalue [in]

Type : numérique

Valeur de multiplication.

avalue [in]

Type : numérique

Première valeur d’addition.

bvalue [in]

Type : numérique

Deuxième valeur d’addition.

Valeur retournée

Type : numérique

Résultat de mvalue * avalue + bvalue.

Notes

Modèle de nuanceur minimal

Cette fonction est prise en charge dans les modèles de nuanceur suivants.

Modèle de nuanceur Prise en charge
Modèle de nuanceur 5 et modèles de nuanceur supérieurs Oui

 

Cette fonction est prise en charge dans les types de nuanceurs suivants :

Sommet Coque Domain Géométrie Pixel Compute
x x x x x x

 

Les auteurs du nuanceur peuvent utiliser l’instrinsèque mad pour cibler explicitement l’instruction matérielle mad dans la sortie du nuanceur compilée, ce qui est particulièrement utile avec les nuanceurs qui marquent les résultats avec le mot clé précis. L’instruction mad peut être implémentée dans le matériel en tant que « fusionnée », ce qui offre une précision supérieure à celle d’une instruction mul suivie d’une instruction d’ajout, ou en tantqu’ajout demul + .

Si les auteurs du nuanceur utilisent l’instrinsèque mad pour calculer un résultat que le nuanceur a marqué comme précis, ils indiquent au matériel d’utiliser toute implémentation valide de l’instruction mad (fusionnée ou non) tant que l’implémentation est cohérente pour toutes les utilisations de cette intrinsèque mad dans n’importe quel nuanceur sur ce matériel. Les nuanceurs peuvent ensuite tirer parti des améliorations potentielles des performances en utilisant une instruction native mad (par opposition àl’ajoutmul + ) sur certains matériels. Le résultat de l’exécution d’une instruction matérielle native peut être ou non différent de l’exécution d’un mul suivi d’un ajout. Toutefois, quel que soit le résultat, le résultat doit être cohérent pour que la même opération se produise dans plusieurs nuanceurs ou différentes parties d’un nuanceur.

Voir aussi

Fonctions intrinsèques

Modèle de nuanceur 5