6.3.4.1.2 : Cas avec le flag denorm to zero
La figure 86 montre les performances obtenues avec un produit de matrices naïf lorsqu'il traite des tableaux initialisés ou non avec des nombres dénormalisés. On constate que la présence de nombres dénormalisés dégrade fortement les performances quand ceux-ci représentent entre 20 et 90\% des valeurs traitées. Le mode d'arrond à zéro des nombres dénormalisés ne suffit pas.

nothing nothing

Figure 86 : Performances obtenues avec l'optimisation -O3 entre un produit de matrices naïf (+ 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 87 montre les performances obtenues avec un produit de matrices lorsqu'il traite des tableaux initialisés ou non avec des nombres dénormalisés. On constate que la présence de nombres dénormalisés dégrade fortement les performances quand ceux-ci représentent entre 20 et 90\% des valeurs traitées. Le mode d'arrond à zéro des nombres dénormalisés ne suffit pas.

nothing nothing

Figure 87 : Performances obtenues avec l'optimisation -O3 entre un produit de matrices 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 88 montre les performances avec un produit de matrices 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 88 : Performances obtenues avec l'optimisation -O3 entre un produit de matrices 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 89 montre les performances avec un produit de matrices 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 89 : Performances obtenues avec l'optimisation -O3 entre un produit de matrices 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.