Analyse des performances
Les compteurs de performance révèlent un très grand nombre d'erreurs de prédiction de branchement. Quelle méthode d'amélioration convient ?
- AAjouter davantage de branchements dans la boucle
- BTrier les données pour rendre l'issue des branchements plus prévisible, ou supprimer les branchements eux-mêmes par sélection conditionnelle ou calcul
- CRéduire la capacité du cache
Afficher la réponse et l'explication
Réponse : B. Trier les données pour rendre l'issue des branchements plus prévisible, ou supprimer les branchements eux-mêmes par sélection conditionnelle ou calcul
En cas d'erreur de prédiction de branchement, le CPU abandonne les instructions exécutées de manière spéculative et recommence, perdant à chaque fois une dizaine de cycles ou plus. Avec des données aléatoires, l'issue d'un branchement du type « si la valeur est supérieure ou égale à 128 » est imprévisible. Trier les données au préalable regroupe les issues et rend la prédiction juste, tandis qu'une écriture avec instructions de sélection conditionnelle ou opérations bit à bit supprime le branchement. On peut aussi inciter le compilateur à effectuer ces transformations.