Impact de l'optimisation du compilateur sur le code lié à la mémoire : -O3 n'est pas toujours le roi

2025-06-01
Impact de l'optimisation du compilateur sur le code lié à la mémoire : -O3 n'est pas toujours le roi

Une recherche de Johnny's Software Lab montre que les avantages des optimisations du compilateur (comme -O3 de GCC) ne sont pas toujours significatifs dans le code lié à la mémoire. Ils ont testé deux noyaux : l'un avec un parallélisme de niveau instruction (ILP) élevé, l'autre avec un ILP faible. Les résultats ont montré une accélération de 3x pour le noyau à ILP élevé avec -O3. Cependant, pour le noyau à ILP faible, l'optimisation a apporté des gains minimes car l'accès à la mémoire est devenu le goulot d'étranglement. Cela démontre que dans les scénarios fortement liés à la mémoire, même avec moins d'instructions, les améliorations de performance sont limitées par le faible ILP, nécessitant des stratégies d'optimisation adaptées aux caractéristiques du code.