Éliminer les branches en fusionnant les instructions IR

Publié 2026-01-01 01:30

Résumé : Les fausses prédictions de la direction entraînent des pénalités de rendement catastrophiques chez les transformateurs modernes, entraînant des pertes de rendement. Bien qu'il existe des prédicteurs matériels et des techniques axées sur les profils, les branches dépendantes des données et présentant des profils irréguliers demeurent difficiles. Traditionnellement, si-conversion élimine les branches par prédication logicielle, mais fait face à des limitations sur les architectures comme x86. Il échoue souvent sur des chemins contenant des instructions de mémoire ou encourt des instructions excessives au-dessus en spéculant complètement les corps de grandes branches. Cet article présente Melding IR Instructions (MERIT), une transformation du compilateur qui élimine les branches en alignant et en fusionnant des opérations similaires à partir de chemins divergents au niveau de l'instruction IR. En observant que les chemins divergents effectuent souvent des opérations structurellement similaires avec des opérandes différents, MERIT adapte l'alignement de séquence pour découvrir des opportunités de fusion et emploie une protection de niveau d'opérande sûre pour assurer une correction sémantique sans prédication matérielle. Implémenté comme un laissez-passer LLVM et évalué sur 102 programmes de quatre suites de référence, MERIT atteint une vitesse moyenne géométrique de 10,9% avec des améliorations de pointe de 32x par rapport au prédicteur de branche matérielle, démontrant l'efficacité avec des frais généraux d'instruction statique réduits.

Éliminer les branches en fusionnant les instructions IR - Résumé : Les fausses prédictions des branches entraînent des pénalités de rendement catastrophiques chez les transformateurs modernes, entraînant des pertes de rendement. Bien qu'il existe des prédicteurs matériels et des techniques axées sur les profils, les branches dépendantes des données et présentant des profils irréguliers demeurent difficiles. Traditionnellement, si-conversion élimine les branches par prédication logicielle, mais fait face à des limitations sur les architectures comme x86.

Il échoue souvent sur des chemins contenant des instructions de mémoire ou encourt des instructions excessives au-dessus en spéculant complètement les corps de grandes branches. Cet article présente Melding IR Instructions (MERIT), une transformation du compilateur qui élimine les branches en alignant et en fusionnant des opérations similaires à partir de chemins divergents au niveau de l'instruction IR.

En observant que les chemins divergents effectuent souvent des opérations structurellement similaires avec des opérandes différents, MERIT adapte l'alignement de séquence pour découvrir des opportunités de fusion et emploie une protection de niveau d'opérande sûre pour assurer une correction sémantique sans prédication matérielle.

Implémenté comme un laissez-passer LLVM et évalué sur 102 programmes de quatre suites de référence, MERIT atteint une vitesse moyenne géométrique de 10,9% avec des améliorations de pointe de 32x par rapport au prédicteur de branche matérielle, démontrant l'efficacité avec des frais généraux d'instruction statique réduits.

Commentaires anonymes

Soyez le premier à commenter.