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 et des valeurs traitées. Le mode d'arrond à zéro des nombres dénormalisés ne suffit pas.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 (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 et des valeurs traitées. Le mode d'arrond à zéro des nombres dénormalisés ne suffit pas.
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 (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.
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 (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.
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 (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.