Comment les CPU modernes prédisent efficacement les boucles des interpréteurs de bytecode

2025-07-05

Lors de l'investigation des performances d'un nouvel interpréteur Python, l'auteur a découvert que les CPU modernes peuvent prédire efficacement les sauts indirects dans les boucles des interpréteurs de bytecode. Ceci est réalisé grâce à des prédicteurs de branchement avancés tels que TAGE et ITTAGE. Ces prédicteurs mappent le compteur de programme (PC) et son historique au comportement d'exécution passé, utilisant plusieurs tables avec des longueurs d'historique croissant géométriquement pour choisir dynamiquement la meilleure prédiction. L'auteur explore l'application des principes d'ITTAGE au fuzzing guidé par la couverture et à l'exploration de l'état du programme, suggérant que cela pourrait mener à une meilleure compréhension et exploration des interpréteurs et des programmes similaires.