La gestion des fréquences de processeurs est quelque chose de compliqué : même quand un fabricant donne une fréquence de base pour ses puces — ce qui n'est pas le cas d'Apple —, la réalité est souvent différente de la théorie. Et dans le cas des puces Apple, Howard Oakley vient de remarquer une chose : les cœurs efficients (E) des puces M4 sont plus rapides dans la variante de base (M4) que dans les autres (M4 Pro, notamment).
Sur une page dédiée, il recueille les valeurs liées aux fréquences maximales des cœurs, qu'il est possible d'obtenir avec la commande sudo powermetrics -n 1 -s cpu_power
. Cette dernière liste les différents paliers avec les fréquences associées. Pour un Mac mini M4 Pro, voici par exemple le résultat pour les cœurs E (basse consommation). La fréquence maximale est donc de 2 592 MHz.
E-Cluster HW active residency: 100.00% (1020 MHz: .04% 1404 MHz: .02% 1788 MHz: .04% 2112 MHz: .03% 2352 MHz: .02% 2532 MHz: .03% 2592 MHz: 100%)
Pour un Mac mini M4 classique, elle est plus élevée : 2 892 MHz. Dans les tâches que macOS va envoyer sur les cœurs basse consommation, le M4 peut donc paradoxalement être plus efficace que le M4 Pro, car il propose deux cœurs E de plus (six contre quatre) et une fréquence maximale environ 11 % plus élevée. Pour les tâches qui font appel aux cœurs performants, c'est le contraire : les puces M4 Pro ont plus de cœurs P (huit ou dix contre quatre) et ils sont plus rapides de façon marginale (4 512 MHz contre 4 464 MHz, soit environ 1 % de différence).
C'est un changement a priori assez récent dans la gamme d'Apple : dans les puces M1, par exemple, la fréquence des cœurs E ne varie pas et les différences entre cœurs P sont minimes (moins de 0,01 %, 24 MHz).
La fréquence dépend de la consommation et de nombreux paramètres
Il faut faire attention à une chose tout de même : la fréquence maximale n'est qu'un indicateur. Elle n'est pas nécessairement atteinte, même en charge, et les processeurs disposent de sondes internes et de mécanismes pour permettre (ou pas) de passer un palier. C'est très visible dans les puces Intel, car la marque documente (un peu) ce point, contrairement à Apple qui ne donne généralement pas la fréquence de ses processeurs. Si nous prenons un Core i9 13900KS, sa fréquence de base est de 3,2 GHz pour les cœurs P, et de 6 GHz au maximum. Mais dans la pratique, il ne fonctionnera généralement ni à 3,2 GHz… ni à 6 GHz. La fréquence réelle va dépendre de la consommation (elle ne doit pas dépasser le TDP fixé), des éventuels dépassements de TDP (permis par l'inertie thermique), du nombre de cœurs actifs — plus il y en a, plus la fréquence maximale diminue — et du cœur choisi. En effet, Intel sélectionne certains cœurs qui peuvent atteindre la fréquence maximale… contrairement à d'autres. Si le système d'exploitation n'assigne pas la tâche au bon cœur, le mécanisme ne fonctionne donc pas. En pratique, la fréquence est comprise entre 3,2 GHz et 6 GHz, et plus proche de la seconde valeur que de la première.
Dans le cas des processeurs Apple, tous ces mécanismes ne peuvent être caractérisés qu'empiriquement, car il n'y a pas de documentation publique et peu de réglages possibles.