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