3.4.4.1.2 : Cas avec le flag denorm to zero

Voyons si convertir les nombres dénormalisés en zéros résoud le problème de performance précédent.



La figure 15 montre les performance obtenues avec un produit de hadamard lorsqu'il traite des tableaux initialisés ou non avec des nombres dénormalisés. On constate que l'arrondi des nombres dénormalisés à zéro permet de régler le problème de performance.

nothing nothing

Figure 15 : Performances obtenues avec l'optimisation -O3 entre un produit de hadamard de référence (+ violet) et la même fonction mais sur des tableaux initialisés aléatoirement avec des nombres dénormalisés, entre 1 (001) et 100\% (1). À gauche, le temps total en nanosecondes en fonctions du nombre d'éléments. À droite, le temps par élément en nanosecondes en fonctions du nombre d'éléments.



La figure 16 montre les performance avec un produit de hadamard vectorisé lorsqu'il traite des tableaux initialisés ou non avec des nombres dénormalisés. On constate que l'arrondi des nombres dénormalisés à zéro permet de régler le problème de performance.

nothing nothing

Figure 16 : Performances obtenues avec l'optimisation -O3 entre un produit de hadamard vectorisé (+ violet) et la même fonction mais sur des tableaux initialisés aléatoirement avec des nombres dénormalisés, entre 1 (001) et 100\% (1). À gauche, le temps total en nanosecondes en fonctions du nombre d'éléments. À droite, le temps par élément en nanosecondes en fonctions du nombre d'éléments.



La figure 17 montre les performance avec un produit de hadamard en fonction intrisèques lorsqu'il traite des tableaux initialisés ou non avec des nombres dénormalisés. On constate que l'arrondi des nombres dénormalisés à zéro permet de régler le problème de performance.

nothing nothing

Figure 17 : Performances obtenues avec l'optimisation -O3 entre un produit de hadamard en fonctions intrisèques (+ violet) et la même fonction mais sur des tableaux initialisés aléatoirement avec des nombres dénormalisés, entre 1 (001) et 100\% (1). À gauche, le temps total en nanosecondes en fonctions du nombre d'éléments. À droite, le temps par élément en nanosecondes en fonctions du nombre d'éléments.