7.3.1 : Performances avec des options basiques
Il faut toujours commencer par faire simple (et après il faut continuer). La figure 1 montre les performances obtenues avec G++ 11.
Figure 1 : Performances d'un produit de Hadamard. En haut : le temps total de calcul en cycles. En bas : le temps par élément en cycles.
La figure 2 compare au options basiques avec C++ 20 et un std::transform .
Figure 2 : Performances d'un produit de Hadamard. En haut : le temps total de calcul en cycles. En bas : le temps par élément en cycles.
Pour le moment, rien de surprenant. -O3 et -Ofast sont les plus rapides. La version std::execution::unseq permet une vectorisation basique sans option avancées, mais on peut faire mieux.