Un nouvel ensemble de correctifs a été publié aujourd’hui pour permettre la planification de cluster pour les processeurs hybrides x86. À son tour, cette dernière tentative de planification de cluster pour les processeurs Core modernes d’Alder Lake et plus récents offre de petits avantages en termes de performances par rapport au code actuel.
La planification des clusters a déjà été tentée par les ingénieurs d’Intel pour Linux, mais elle a fini par provoquer des régressions… J’ai mis en évidence le problème en 2021 avec la nouvelle planification des clusters de Linux 5.16, qui cause une régression et fait encore plus mal à Alder Lake. Maintenant, bien que cette dernière planification de cluster x86 pour les processeurs hybrides devrait être en meilleure forme.
L’ingénieur Intel Tim Chen a publié la série de correctifs d’aujourd’hui et y a commenté :
“Le domaine de planification de cluster n’est pas activé sur les processeurs hybrides x86 car la logique l’est manquant pour effectuer un équilibrage de charge approprié entre un cluster avec des processeurs SMT en un seul cœur et un cluster avec plusieurs processeurs Atom.
Ricardo a récemment introduit une série de correctifs qui ont considérablement amélioré la logique d’équilibrage de charge entre les cœurs P et les cœurs E sur les processeurs hybrides x86.
https://lore.kernel.org/lkml/[email protected]/T/#m16ebc8de64dbf4c54adebab701b42b47805105f4Cependant, cette série de correctifs n’est pas suffisante pour permettre l’activation de la planification de cluster sur les processeurs hybrides x86. Cette série de correctifs fournit quelques correctifs supplémentaires nécessaires à l’équilibrage de charge entre les clusters groupe sched composé de processeurs SMT de gros cœurs et groupe sched cluster composé de processeurs Atom.Avec ces correctifs appliqués au-dessus de la série de correctifs de Ricardo, la charge est correctement équilibrée entre les clusters P-core et E-core. Les CPU inactifs sont utilisés dans le bon ordre :
1) CPU SMT sur un P-core inactif,
2) E-core inactif,
3) CPU SMT inutilisé avec un frère occupé.”
Avec ces nouveaux correctifs, l’ingénieur d’Intel a trouvé jusqu’à quelques pour cent d’amélioration avec ses tests de CPU hybrides P/E :
“J’ai testé quelques benchmarks à thread unique dans Suite Phoronix qui affichait auparavant des régressions lors de la première activation de la planification de cluster. La planification de cluster à l’aide de cette série de correctifs fonctionne aussi bien que le noyau vanille.
Single Threaded 6.3-rc5 avec amélioration du cluster
Planification de référence dans les performances
(écart d’exécution)
——————————————————————————————-
tjbench (+/-0,08%) (+/-0,23%)-0,23%
PhPbench (+/-0.31%) (+/-0.89%)-0.39%
flac (+/-0.58%) (+/-0.22%) +0.17%
pybench (+/-3.16%) (+/-0.27 %) +2,55 %Pour les benchmarks multi-threads, j’ai essayé kernel build et tensor flow lite. La planification des clusters a fonctionné le mieux pour le cas de 10 threads où 6 threads s’exécutent sur les cœurs P, 2 threads sur un cluster Atom et 2 threads sur l’autre cluster Atom. Alors que le noyau vanille aura 6 threads sur les cœurs P, 4 threads sur un cluster Atom. Bien que les différences soient minimes et relèvent des variations de course.
Multi Threaded 6.3-rc5 avec amélioration du cluster
Planification de référence dans les performances
(-#threads) (écart d’exécution)
——————————————————————————————-
Kbuild-8 (+/-2,90%) (+/-1,16%)-0,76 %
Kbuild-10 (+/-3,08 %) (+/-3,09 %) +0,64 %
Kbuild-12 (+/-3,28 %) (+/-3,55 %) +0,91 %
Tensor Lite-8 (+/-4,84%) (+/-4,61%)-0,23%
Tensor Lite-10 (+/-0,87%) (+/-1,45%) +0,47%
Tensor Lite-12 (+/-1,37 %) (+/-1,04 %)-0,12 %”
Il sera intéressant de voir comment cette nouvelle tentative de planification de cluster se déroulera, même si c’est trop tard pour voir dans le cycle v6.4, donc ne serait pas mis en ligne maintenant avant au moins la v6.5. En tout cas, comme j’ai le temps de tester les nouveaux correctifs, je vais les essayer sur Alder Lake et Raptor Lake pour voir son impact sur les performances de Linux sur une plus large gamme de charges de travail.
Voir ce fil de discussion de la liste de diffusion du noyau si vous êtes intéressé par ce dernier travail de planification de cluster pour les processeurs hybrides Intel.