Pourquoi les fabricants de CPU ont-ils cessé d'augmenter la vitesse d'horloge de leurs processeurs? [fermé]


63

J'ai lu que les fabricants avaient cessé de se concentrer sur les vitesses d'horloge plus élevées et travaillaient maintenant sur d'autres choses pour améliorer les performances.

Avec

  • un ancien ordinateur de bureau avec processeur Intel® Xeon® E3110 avec une vitesse d'horloge de 3,0 GHz
  • et un nouveau serveur équipé du processeur AMD Opteron (TM) 6272 avec une vitesse d'horloge de 2,1 GHz

lorsqu’il est effectué une simple comparaison de chiffrement avec (single threaded)

 openssl aes256c

le bureau fonctionnait bien mieux que le serveur.

Ainsi, même avec la dernière optimisation, pourquoi le processeur avec la meilleure vitesse d'horloge fonctionne-t-il mieux?


57
La puce de bureau est un dual-core; le serveur est un processeur 16 cœurs. L'utilisation d'un test de performance à thread unique n'est PAS appropriée.
MSalters

@learner - Parce que la vitesse des processeurs ne peut pas augmenter avec l'augmentation de la quantité de tension requise, ce qui réduit la chaleur. En se concentrant sur la consommation d'énergie, ils pourront théoriquement augmenter la vitesse du processeur à l'avenir.
Ramhound

1
Veuillez citer des cas réels de "fabricants" "même en réduisant" les vitesses d'horloge (sans comparer les pommes et les oranges) ou limiter le titre de votre question à "ne pas augmenter".
Jan Doggen

8
La vitesse d'horloge entre AMD et Intel n'est pas une comparaison juste depuis l'époque du K6 / Pentium. AMD a commercialisé les processeurs Athlon sous la forme 2500+ ou 3000+ lorsque leurs horloges principales étaient respectivement de 1,8 ou de 2,1, mais ils se sont généralement comparés respectivement aux puces Intel ayant une fréquence réelle de 2,5 ou 3 GHz. Il y a tout simplement chemin trop de différences entre les architectures maintenant pour faire une comparaison simple sur les taux d'horloge.
KeithS

Réponses:


72

La raison pour laquelle les fabricants ont cessé de se concentrer sur l’augmentation de la vitesse d’horloge est qu’il n’est plus possible de refroidir les processeurs assez rapidement pour que cela soit viable. Plus la vitesse d'horloge est élevée, plus la chaleur générée est importante, et nous avons maintenant atteint un stade où il n'est plus efficace d'augmenter la vitesse du processeur en raison de la quantité d'énergie nécessaire à son refroidissement.

Une autre réponse explique en détail pourquoi une vitesse d'horloge plus élevée ne signifie pas de meilleures performances dans tous les domaines.


1
Il me semble que j'ai acheté ma machine juste au moment où ce mur a été touché. Mon P4 3,4 GHz, âgé de 8 ans, est probablement le plus rapide en termes de vitesse d'horloge, lorsque je regarde une vaste majorité du marché (non OC).
Karthik T

2
notez que la consommation électrique poserait également un problème. Si vous aviez un cœur à 3 GHz à 16 cœurs, cela consommerait probablement plus de 200 watts, ce que les sources d’alimentation les plus courantes peuvent à peine supporter en combinaison avec le reste du système.
Mixxiphoid

9
@Mixxiphoid Vous devez également intégrer ces 200+ W dans le processeur, à une tension que les circuits peuvent gérer. C’est une tâche non triviale en soi.
un CVn

1
Non seulement cela, pour augmenter l’horloge de la CPU, ils ont besoin d’augmenter le pipeline, mais chaque fois que vous devez insérer du code, modifier le contexte, sauter ou vider la mémoire, vous effacez tout le pipeline, et vous devez le remplir à nouveau pour donner un résultat pour cette instruction, il est donc préférable de réduire le pipeline et la fréquence de la CPU, de sorte que chaque fois que vous devez changer de contexte, vous ne devez pas attendre longtemps pour remplir à nouveau le pipeline.
Lefsler

1
@demonofnight: Ce serait trop dire "chaque fois que tu as besoin de (...) sauter". Des branches directes inconditionnelles ne posent aucun risque de contrôle, elles ne comptent donc pas dans les branches conditionnelles. Différentes techniques permettent de prédire environ 95% à 99% (données basées sur du papier basé sur SPEC). Les branches directes posent problème si la cible n’est pas encore inscrite et si elle est mal prédite. Je ne suis pas sûr de ce que vous entendez par «fourrer le code» ou «effacer la mémoire», mais les commutateurs de contextes ne doivent pas être exécutés aussi souvent (interruptions et éventuellement E / S).
Maciej Piechotka

37

La vitesse de traitement est beaucoup plus complexe que la fréquence d'horloge.

  • Différentes unités centrales peuvent effectuer différentes quantités dans le même nombre de cycles d'horloge, en raison des différentes variantes d'arrangement de pipeline et de plusieurs unités de composants (additionneurs, etc.) dans chaque cœur. Ce n’est pas le cas dans votre test, mais vous constaterez souvent qu’une puce "plus lente" peut faire plus que des puces rapides (mesurées uniquement par le taux d’horloge) car elle permet d’en faire plus par tick.

  • Le test que vous avez effectué peut être très sensible aux différences d'architecture de processeur: il peut être optimisé pour une architecture spécifique. Vous constaterez peut-être qu'il fonctionne différemment, non seulement entre les puces Intel et AMD, mais également entre les puces Intel (ou AMD) de familles différentes. Il utilise probablement un seul thread et ne profite donc pas des multiples cœurs des processeurs.

  • Il existe une tendance à la réduction des fréquences d'horloge pour des raisons de gestion de l'énergie et de la gestion de la chaleur: l'augmentation de la fréquence d'horloge n'a pas d'effet linéaire sur la consommation d'énergie et la puissance calorifique.

  • En raison de la relation non linéaire décrite ci-dessus, il est beaucoup plus efficace pour les besoins actuels de disposer de plusieurs unités de traitement que de pousser la vitesse d'une unité de plus en plus haute. Cela permet également des astuces astucieuses pour économiser de l'énergie, comme éteindre des noyaux individuels lorsqu'ils ne sont pas utilisés et les rétablir à mesure que la demande augmente à nouveau. Bien sûr, plusieurs cœurs n'aident pas un algorithme à un seul thread, bien que ce serait le cas si vous en exécutiez plusieurs instances en même temps.


Alors, quelle est la relation entre la fréquence d'horloge et la consommation d'énergie?
user84207

$ P = CV ^ 2f $. Vous voudrez peut-être aussi lire ceci .
Zakkak

19

Pourquoi pensez-vous que les fabricants réduisent réellement la vitesse d'horloge en ne comparant que deux processeurs?

  1. Le 6272 a une vitesse de Turbo de 3Ghz. La vitesse de base inférieure sert uniquement à réduire la puissance moyenne et à conserver un TDP acceptable pour un workloard lorsque tous les cœurs sont sollicités.
  2. La prochaine puce haute performance pour PC de bureau d'AMD, la FX-9590 atteindra 5 Ghz.

De plus, la vitesse d'horloge n'est pas la même que la performance par cycle d'horloge. Vous pouvez avoir un P4 de 3,8 Ghz contre un noyau de 3,2 Ghz d’un i7-3930K, mais cela ne signifie pas que le noyau P4 est plus rapide.

Tout ce qui est dit ici sur la consommation d'énergie est également parfaitement valable et valable pour une conception à 16 cœurs, où vous devez naturellement vous soucier davantage des problèmes liés au TDP.

De plus, votre méthode de test qui vient de tester openssl est un peu trop simple pour donner des nombres réels. Peut-être devriez-vous essayer une suite de tests de chiffrement.


3
Juste pour ajouter une analogie à horloge-vitesse = erreur de performance. Imaginez une personne qui fait de très petits pas mais très rapidement (vitesse d'horloge élevée), par rapport à une autre personne qui fait de très grands pas à une vitesse légèrement plus lente (fréquence d'horloge inférieure). La personne qui fait de grands pas peut avancer beaucoup plus rapidement.
Martin Konecny

@MartinKonecny: Excellente visualisation!
Zach Latta

2
@MartinKonecny ​​D'après ce que je comprends, la plupart des instructions pour l'assembleur (ADD, MOV, IMUL, etc.) sont exécutées au cours d'un cycle. Ainsi, avec ces nouveaux processeurs, plusieurs instructions sont-elles exécutées en un seul cycle?
Nialsh

4
@nialsh Ce n'est pas du tout vrai pour les ordinateurs CISC (en fait, l'un des éléments déterminants de l'ICCA est que les instructions prennent plusieurs cycles), si toutes les instructions prenaient un cycle, l'instruction la plus lente prendrait le même temps d'exécution que la plus rapide. instruction.
Scott Chamberlain

Les processeurs x86 nécessitaient auparavant plusieurs cycles d'horloge par instruction, mais ils peuvent désormais exécuter plusieurs instructions par cycle d'horloge.
Oskar Skog

13

Votre scénario de test (chiffrement aes-256) est très sensible aux optimisations spécifiques au processeur.

Divers processeurs disposent d'instructions spéciales destinées à accélérer les opérations de cryptage / décryptage. Non seulement ces instructions spéciales peuvent être présentes uniquement sur votre bureau, mais il se peut également que le processeur AMD dispose d'instructions spéciales différentes. En outre, openssl pourrait prendre en charge ces instructions spéciales uniquement pour le processeur Intel. Avez-vous vérifié si c'était le cas?

Pour savoir quel système est le plus rapide, utilisez une suite de tests "appropriée" - ou mieux, utilisez simplement votre charge de travail habituelle.


Où se passe la traduction de cette instruction spéciale? Je ne sais pas s'il existe différents compilateurs pour différents jeux d'instructions.
Shubham

Les compilateurs ont des options pour cibler différents jeux d'instructions et / ou des "fonctions intrinsèques" spéciales qui correspondent étroitement aux instructions spécifiques à la CPU. Il est possible qu'un seul exécutable vérifie la famille de processeurs sur laquelle il s'exécute et sélectionne un chemin de code différent en fonction de celui-ci.
Russell Borogove

10

Simple: La puce AMD est beaucoup, beaucoup plus rapide car il s’agit d’une puce à 16 cœurs. À 115 watts, cela signifie que chaque noyau produit environ 7 watts. Cela ne serait pas réalisable si chaque cœur fonctionnait à 3 Ghz. Pour atteindre ce chiffre de 7 watts, AMD a abaissé la fréquence d'horloge. Réduire la fréquence d'horloge de 10% réduit la consommation d'énergie de 20%, ce qui vous permet d'ajouter 25% de cœurs supplémentaires sur une puce.


10

Comme d'autres l'ont dit, nous ne pouvons plus refroidir efficacement les processeurs si nous devions pousser la tension requise pour les mêmes augmentations de fréquence d'horloge relatives par le passé. Il fut un temps (époque P4 et antérieure) où vous pouviez acheter un nouveau processeur et voir qu'un gain "immédiat" était lié à la vitesse, car la fréquence d'horloge avait été considérablement augmentée par rapport à la génération précédente. Nous avons maintenant frappé un mur thermique, en quelque sorte.

Chaque nouvelle génération moderne de processeurs augmente très légèrement la fréquence d'horloge, mais ceci est également lié à la capacité de les refroidir de manière appropriée. Les fabricants de puces, tels qu'Intel, s'efforcent en permanence de réduire la taille des puces du processeur afin de les rendre plus efficaces en énergie et de produire moins de chaleur aux mêmes horloges. Il est à noter que la taille réduite de ces matrices rend ceux-ci plus enclins à mourir de surtension plutôt que de surchauffe. Cela signifie également qu'il limite également la fréquence d'horloge maximale de tous les processeurs de la génération actuelle sans autres optimisations du fabricant de puces.

L'augmentation du nombre de cœurs sur la puce est un autre domaine sur lequel les fabricants de puces se concentrent. Cela prend en compte des augmentations significatives de la puissance de calcul, mais uniquement lorsque vous utilisez un logiciel qui tire parti de plusieurs cœurs. Notez la différence entre la puissance de calcul et la vitesse ici. En termes simples, la vitesse désigne la rapidité avec laquelle un ordinateur peut exécuter une instruction unique, tandis que la puissance de calcul désigne le nombre de calculs qu'un ordinateur peut effectuer dans un laps de temps donné. Les systèmes d’exploitation modernes et la plupart des logiciels modernes tirent parti de plusieurs cœurs. Le problème est que la programmation simultanée / parallèle est plus difficile que le paradigme de la programmation linéaire standard. Cela a augmenté le temps nécessaire à de nombreux programmes sur le marché pour tirer pleinement parti de ces nouveaux processeurs, car de nombreux développeurs n'étaient pas habitués à écrire des programmes de cette façon. Il existe encore sur le marché des programmes (modernes ou hérités) qui ne tirent pas parti des multi-cœurs ou du multi-threading. Le programme de cryptage que vous avez cité en est un exemple.

Ces deux domaines d’activité des fabricants de puces sont intrinsèquement liés. En réduisant à la fois la taille de la matrice et la consommation d'énergie d'une puce, ils sont alors en mesure d'augmenter le nombre de cœurs sur ladite puce. Cependant, cela finira par heurter un mur, provoquant un autre changement de paradigme plus radical.

La raison de ce changement de paradigme est due au fait que nous approchons des limites du silicium en tant que matériau de base pour la production de puces. C’est quelque chose que Intel et d’autres travaillent à résoudre depuis un certain temps. Intel a indiqué qu’il disposait actuellement d’une alternative au silicium, que nous commencerons probablement à découvrir après 2017. Outre ce nouveau matériau, Intel étudie également la possibilité de "tripler la puissance de traitement" des transistors 3D. Voici un article mentionnant ces deux idées: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm


2
  • Les pertes de chaleur sont H égales au 4ème degré de fréquence f.

    H ~ f ^ 4

    Ainsi, l'augmentation mineure de la fréquence entraîne des pertes de chaleur importantes.

  • Miniaturisation plus loin

    Une fréquence plus élevée conduit à une minimisation plus grande des cristaux. Pour le moment, nous ne disposons pas de technologies permettant de travailler efficacement avec des matériaux à l'échelle du nanomètre et les nanomètres sont la limite.


2
-1 La quatrième partie puissance n'est pas correcte. La puissance (chaleur générée par seconde) dans les processeurs est (approximativement) linéairement proportionnelle à la fréquence d'horloge, comme P ~ f CV ^ 2 + P0 ( en.wikipedia.org/wiki/CPU_power_dissipation ). La tension attribuée dépend de la vitesse d'horloge (mais pas nécessairement linéaire). Voir: physics.stackexchange.com/questions/34766 Bottomline, la puissance générée par la CPU est à peu près linéaire quadratique sur clockspeed dans la gamme de 1,6 GHz - 5 GHz. (Pas prop à f ^ 4).
dr jimbob

2

Comme indiqué dans quelques autres réponses, les fabricants de CPU souhaitent réduire les vitesses d'horloge afin de contrôler la consommation d'énergie et la dissipation de chaleur. Afin de faire plus de travail à la même vitesse d'horloge, plusieurs stratégies sont utilisées.

Les caches de mémoire sur puce volumineux peuvent conserver plus de données "proches" du processeur, disponibles pour être traitées avec un délai minimal, par opposition à la mémoire principale, qui est beaucoup plus lente à transmettre des données au processeur.

Différentes instructions de la CPU prennent différents nombres de cycles d'horloge. Dans de nombreux cas, vous pouvez utiliser un circuit simple pour implémenter une opération sur plusieurs cycles d'horloge ou un circuit plus complexe pour le faire en moins.

L’exemple le plus frappant de cette évolution de l’évolution d’Intel est le Pentium 4, qui présentait une grande différence de vitesse d’horloge, mais qui n’a pas performé proportionnellement. Les instructions de décalage de bits, qui dans les puces précédentes pouvaient déplacer 32 bits en un seul cycle, utilisaient un circuit beaucoup plus simple dans le Pentium 4, ce qui nécessitait un seul cycle pour chaque décalage de bits. On s’attendait à ce que l’architecture du Pentium 4 soit évolutive à des vitesses d’horloge beaucoup plus élevées en raison de sa simplicité, mais cela n’a pas fonctionné et le circuit de décalage rapide et complexe est revenu dans les architectures Core et ultérieures.


2

De l'IEEE:

Alors pourquoi ne pas pousser l'horloge plus vite? Parce que le coût en énergie consommée et en chaleur dissipée n’en vaut plus la peine. Intel qualifie le compromis vitesse / puissance de "théorème fondamental des processeurs multicœurs", raison pour laquelle il est judicieux d'utiliser deux ou plusieurs zones de traitement, ou cœurs, sur une seule puce.

http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.