in

Pourquoi les cœurs de processeur ont-ils tous la même vitesse au lieu de différentes?

Si vous avez déjà fait beaucoup de comparaisons pour un nouveau processeur, vous avez peut-être remarqué que les cœurs semblent tous avoir la vitesse plutôt qu’une combinaison de différents. Pourquoi donc? Le post de questions-réponses des super-utilisateurs d’aujourd’hui a la réponse à la question d’un lecteur curieux.

La question

Le lecteur SuperUser Jamie veut savoir pourquoi les cœurs de processeur ont tous la même vitesse au lieu de différents:

En général, si vous achetez un nouvel ordinateur, vous déterminerez le processeur à acheter en fonction de la charge de travail prévue pour l’ordinateur. Les performances dans les jeux vidéo ont tendance à être déterminées par la vitesse d’un seul cœur, tandis que les applications telles que le montage vidéo sont déterminées par le nombre de cœurs. En termes de ce qui est disponible sur le marché, tous les processeurs semblent avoir à peu près la même vitesse, les principales différences étant plus de threads ou plus de cœurs.

Par exemple:

  • Intel Core i5-7600K, fréquence de base 3,80 GHz, 4 cœurs, 4 threads
  • Intel Core i7-7700K, fréquence de base 4,20 GHz, 4 cœurs, 8 threads
  • AMD Ryzen 5 1600X, fréquence de base 3,60 GHz, 6 cœurs, 12 threads
  • AMD Ryzen 7 1800X, fréquence de base 3,60 GHz, 8 cœurs, 16 threads

Pourquoi voyons-nous ce modèle de cœurs croissants, alors que tous les cœurs ont la même vitesse d’horloge? Pourquoi n’y a-t-il pas de variantes avec des vitesses d’horloge différentes? Par exemple, deux «gros» cœurs et beaucoup de petits cœurs.

Au lieu de, disons, quatre cœurs à 4,0 GHz (soit 4 × 4 GHz, 16 GHz maximum), que diriez-vous d’un processeur avec deux cœurs fonctionnant à 4,0 GHz et quatre cœurs fonctionnant à 2,0 GHz (soit 2 × 4,0 GHz + 4 × 2,0 GHz, 16 GHz maximum)? La deuxième option serait-elle tout aussi bonne pour les charges de travail à thread unique, mais potentiellement meilleure pour les charges de travail multi-thread?

Je pose cela comme une question générale et pas spécifiquement en ce qui concerne les processeurs énumérés ci-dessus ou à propos d’une charge de travail spécifique. Je suis simplement curieux de savoir pourquoi le modèle est ce qu’il est.

Pourquoi les cœurs de processeur ont-ils tous la même vitesse au lieu de différents?

La réponse

Le contributeur SuperUser bwDraco a la réponse pour nous:

Ceci est connu sous le nom de multi-traitement hétérogène (HMP) et est largement adopté par les appareils mobiles. Dans les appareils ARM qui implémentent gros petit, le processeur contient des cœurs avec des performances et des profils de puissance différents, c’est-à-dire que certains cœurs fonctionnent vite mais consomment beaucoup d’énergie (architecture plus rapide et / ou horloges plus élevées) tandis que d’autres sont écoénergétiques mais lents (architecture plus lente et / ou horloges plus basses). Ceci est utile car la consommation d’énergie a tendance à augmenter de manière disproportionnée à mesure que vous augmentez les performances une fois que vous avez dépassé un certain point. L’idée ici est d’obtenir des performances lorsque vous en avez besoin et une autonomie de batterie lorsque vous n’en avez pas.

Sur les plates-formes de bureau, la consommation d’énergie est beaucoup moins un problème, ce n’est donc pas vraiment nécessaire. La plupart des applications s’attendent à ce que chaque cœur ait des caractéristiques de performances similaires, et les processus de planification pour les systèmes HMP sont beaucoup plus complexes que la planification pour les systèmes multi-traitements symétriques traditionnels (SMP) (techniquement, Windows 10 prend en charge HMP, mais il est principalement destiné aux mobiles appareils utilisant ARM big.LITTLE).

De plus, la plupart des processeurs de bureau et d’ordinateurs portables d’aujourd’hui ne sont pas limités thermiquement ou électriquement au point où certains cœurs doivent fonctionner plus rapidement que d’autres, même pour de courtes rafales. Nous avons essentiellement frappé un mur sur à quelle vitesse nous pouvons fabriquer des noyaux individuels, donc remplacer certains cœurs par des plus lents ne permettra pas aux cœurs restants de fonctionner plus rapidement.

Bien qu’il existe quelques processeurs de bureau qui ont un ou deux cœurs capables de fonctionner plus rapidement que les autres, cette capacité est actuellement limitée à certains processeurs Intel très haut de gamme (connus sous le nom de Turbo Boost Max Technology 3.0) et n’implique qu’un léger gain en performances pour les cœurs qui peuvent s’exécuter plus rapidement.

S’il est certainement possible de concevoir un processeur x86 traditionnel avec à la fois des cœurs volumineux et rapides et des cœurs plus petits et plus lents pour optimiser les charges de travail fortement threadées, cela ajouterait une complexité considérable à la conception du processeur et il est peu probable que les applications le prennent correctement en charge.

Prenez un processeur hypothétique avec deux rapides Lac Kaby (7e génération) et huit cœurs lents Goldmont (Atom) noyaux. Vous auriez un total de 10 cœurs, et les charges de travail fortement threadées optimisées pour ce type de processeur peuvent voir un gain de performances et d’efficacité par rapport à un processeur Kaby Lake quadricœur normal. Cependant, les différents types de cœurs ont des niveaux de performances extrêmement différents et les cœurs lents ne prennent même pas en charge certaines des instructions prises en charge par les cœurs rapides, comme AVX (ARM évite ce problème en exigeant que les cœurs gros et PETIT supportent les mêmes instructions).

Encore une fois, la plupart des applications multithreads basées sur Windows supposent que chaque cœur a le même ou presque le même niveau de performances et peut exécuter les mêmes instructions, donc ce type d’asymétrie est susceptible d’entraîner des performances moins qu’idéales, peut-être même plante s’il utilise des instructions non prises en charge par les cœurs plus lents. Bien qu’Intel puisse modifier les cœurs lents pour ajouter une prise en charge d’instructions avancées afin que tous les cœurs puissent exécuter toutes les instructions, cela ne résoudrait pas les problèmes de prise en charge logicielle des processeurs hétérogènes.

Une approche différente de la conception des applications, plus proche de ce à quoi vous pensez probablement dans votre question, utiliserait le GPU pour accélérer des parties hautement parallèles d’applications. Cela peut être fait en utilisant des API comme OpenCL et CUDA. En ce qui concerne une solution monopuce, AMD promeut la prise en charge matérielle de l’accélération GPU dans ses APU, qui combine un processeur traditionnel et un GPU intégré hautes performances dans la même puce, comme Architecture système hétérogène, bien que cela n’ait pas été très utilisé par l’industrie en dehors de quelques applications spécialisées.

Avez-vous quelque chose à ajouter à l’explication? Sonnez dans les commentaires. Vous voulez lire plus de réponses d’autres utilisateurs de Stack Exchange férus de technologie? Consultez le fil de discussion complet ici.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment puis-je désactiver les gestes de balayage de Windows 8 sur mon ordinateur portable?

Comment puis-je désactiver les gestes de balayage de Windows 8 sur mon ordinateur portable?

Attribuer une touche de raccourci à l'outil de capture dans Windows

Attribuer une touche de raccourci à l’outil de capture dans Windows