Hyperthreading réduit-il les performances uniques
Hyperthreading réduit-il les performances uniques?
C’est une question qui se pose souvent lorsque vous discutez des avantages et des inconvénients de l’hyperthreading. L’hyperthreading est une technologie qui permet à un seul noyau physique d’agir comme deux cœurs logiques, doublant efficacement le nombre de threads qu’un processeur peut gérer. Cependant, il y a un débat sur la question de savoir si l’hyperthreading améliore réellement les performances ou si elle peut potentiellement entraver les performances du noyau unique. Explorons ce sujet plus loin.
Premièrement, il est important de comprendre comment fonctionne l’hyperthreading. Lorsqu’un seul noyau est hyperthread, il est divisé en deux noyaux virtuels, chacun capable d’exécuter son propre ensemble d’instructions. Cela permet au processeur de gérer plusieurs threads simultanément, améliorant les performances globales multitâches. Cependant, cela ne signifie pas nécessairement que les performances d’un seul noyau seront améliorées.
En fait, certains soutiennent que l’hyperthreading peut réellement réduire les performances uniques. En effet. Cela peut entraîner une affirmation accrue pour ces ressources, ralentissant potentiellement l’exécution de threads individuels.
De plus, l’hyperthreading peut ne pas donner un coup de pouce significatif aux performances des applications qui ne sont pas optimisées pour profiter de plusieurs threads. De nombreux jeux, par exemple, sont principalement un seuls à thread et peuvent ne pas voir une amélioration notable de l’hyperthreading.
Cependant, il convient de noter que l’impact de l’hyperthreading sur les performances uniques peut varier en fonction de la charge de travail spécifique et de l’architecture du processeur. Dans certains cas, l’hyperthreading peut réellement améliorer les performances uniques en permettant au processeur de mieux utiliser les ressources disponibles.
Il n’y a pas de réponse définitive à la question de savoir si l’hyperthreading réduit les performances à cœur. Cela dépend en grande partie des circonstances et de la charge de travail spécifiques. Certains utilisateurs peuvent choisir de désactiver l’hyperthreading dans certains scénarios où les performances uniques sont une priorité, tandis que d’autres peuvent préférer le laisser permis de profiter de l’augmentation des capacités multitâches.
Voici quelques plats clés:
- L’hyperthreading est une technologie qui permet à un seul noyau physique d’agir comme deux cœurs logiques.
- L’hyperthreading peut améliorer les performances multitâches en permettant au processeur de gérer plusieurs threads simultanément.
- Certains soutiennent que l’hyperthreading peut potentiellement réduire les performances uniques en augmentant les affirmations pour les ressources partagées.
- L’hyperthreading peut ne pas fournir un coup de pouce significatif des performances pour les applications qui ne sont pas optimisées pour plusieurs threads.
- L’impact de l’hyperthreading sur les performances uniques peut varier en fonction de la charge de travail et de l’architecture du processeur.
- Il n’y a pas de réponse définitive à la réduction de l’hyperthreading réduit les performances uniques, car cela dépend en grande partie des circonstances spécifiques.
Voici quelques questions basées sur le texte:
- Qu’est-ce que l’hyperthreading?
- L’hyperthreading améliore-t-il les performances multitâches?
- Hyperthreading peut-il potentiellement réduire les performances uniques?
- Toutes les applications bénéficient de l’hyperthreading?
- Comment l’impact de l’hyperthreading sur les performances uniques varie-t-il?
- Y a-t-il une réponse définitive à la réduction de l’hyperthreading réduit les performances à cœur?
- Quels facteurs doivent être pris en compte lors de la décision d’activer ou de désactiver l’hyperthreading?
- Les jeux sont-ils généralement optimisés pour plusieurs threads?
- Hyperthreading peut-il améliorer les performances multiples globales?
- Quels sont les inconvénients potentiels de l’hyperthreading?
- Existe-t-il un consensus sur la question de savoir si l’hyperthreading est bénéfique ou préjudiciable aux performances de noyau unique?
- La désactivation de l’hyperthreading peut améliorer les performances uniques?
- Hyperthreading peut-il améliorer l’utilisation des ressources disponibles?
- Si l’hyperthreading doit être activé ou désactivé pour le jeu?
- Sont des processeurs AMD inférieurs aux processeurs Intel en termes de performance d’hyperthreading?
- L’hyperthreading offre-t-il des avantages pour le jeu?
L’hyperthreading est une technologie qui permet à un seul noyau physique d’agir comme deux cœurs logiques.
Oui, l’hyperthreading peut améliorer les performances multitâches en permettant au processeur de gérer plusieurs threads simultanément.
Oui, certains soutiennent que l’hyperthreading peut potentiellement réduire les performances à un seul noyau en augmentant les affirmations pour les ressources partagées.
Non, l’hyperthreading peut ne pas fournir un coup de pouce significatif des performances pour les applications qui ne sont pas optimisées pour plusieurs threads.
L’impact de l’hyperthreading sur les performances uniques peut varier en fonction de la charge de travail et de l’architecture du processeur.
Non, il n’y a pas de réponse définitive car cela dépend en grande partie des circonstances spécifiques.
Des facteurs tels que la charge de travail spécifique et la priorité accordé aux performances uniques doivent être prises en compte lors de la décision d’activer ou de désactiver l’hyperthread.
Non, de nombreux jeux sont principalement à thread unique et peuvent ne pas voir une amélioration notable de l’hyperthreading.
Oui, l’hyperthreading peut améliorer les performances multiples globales en permettant au processeur de gérer plusieurs threads simultanément.
Certains inconvénients potentiels de l’hyperthreading comprennent une affirmation accrue pour les ressources partagées et le ralentissement potentiel de l’exécution de threads individuels.
Non, il n’y a pas de consensus car cela dépend en grande partie des circonstances et de la charge de travail spécifiques.
Dans certains cas, la désactivation de l’hyperthreading peut améliorer les performances uniques en réduisant les affirmations pour les ressources partagées.
Oui, dans certains cas, l’hyperthreading peut améliorer l’utilisation des ressources disponibles en permettant au processeur de mieux les allouer.
Cela dépend du jeu spécifique et s’il est optimisé pour plusieurs threads. Certains jeux peuvent bénéficier de l’hyperthreading, tandis que d’autres peuvent ne pas voir une amélioration notable.
Il n’y a pas de réponse définitive à cette question car les performances des processeurs AMD et Intel peuvent varier en fonction des circonstances spécifiques et de la charge de travail.
L’hyperthreading peut offrir des avantages pour les jeux dans certains scénarios où le jeu est optimisé pour plusieurs threads et peut profiter de l’augmentation des capacités multitâches.
Hyperthreading réduit-il les performances uniques
En acceptant tous les cookies, vous acceptez notre utilisation des cookies pour fournir et maintenir nos services et notre site, améliorer la qualité de Reddit, personnaliser le contenu et la publicité Reddit, et mesurer l’efficacité de la publicité.
Hyperthreading réduit-il les performances uniques
Cela n’a aucun sens du tout, essentiellement tout ce qui est fait ici peut être géré via Windows ou même Unix lui-même.
Premièrement: l’hyperthreading est en soi une amélioration massive des performances, alors pourquoi pour quelque raison que ce soit le désactiver? Je veux dire que si un titre a des problèmes, vous pouvez définir non seulement l’affinité de traitement, mais aussi l’affinité principale via le gestionnaire de tâches. Si vous avez un concept sur le fonctionnement du multithreading, vous saurez que les microprocesseurs modernes sont capables d’écrire plusieurs instructions par cycle d’horloge, et en plus, en utilisant plusieurs threads du même processus.
Je ne vois aucune raison pour le but de cet outil, tout peut être fait dans le gestionnaire de tâches.
En outre, il ne devrait pas être théoriquement ne devrait pas améliorer les performances sans augmenter directement la vitesse de traitement de la puce, ni améliorer l’utilisation (ou l’adaptation) des instructions de la puce de processeur elle-même.
Visizizzazione di 16 – 30 commenti su 48
6 LUG 2015, ORE 23:21
Messaggio Originale di Timdimmdrive:
Messaggio Originale di yumri:
comment et / ou pourquoi hyperthreading aide-t-il ou blesserait les jeux? Vraiment, la plupart des jeux n’utilisent que 1 ~ 4 cœurs maintenant et l’hyperthreading fera un spectacle à double noyau comme 4 cœurs qui, selon la façon dont il gère, il pourrait être mieux peut être pire, mais à partir d’une siture électrique, il ne va pas aider à l’éteindre car il est ensuite dévoué entre 2 cœurs au lieu de 2 cœurs de 4 threads . L’hyperthreading est en baisse en ayant 1 core Run 2 threads comment il m’est expliqué de toute façon si vous ne pouvez pas avoir le même noyau sur les pièces ajustées ayant une charge électronique, donc pourquoi ce n’est que 2 threads au lieu de 4 chacun, mais parce qu’ils ont 4 parties que vous pouvez avoir 2 en marche à la fois et pourquoi Hyper Thirking blessait du tout du tout ?
Imaginez un noyau de processe. Imaginez maintenant qu’elle possède 1 de ces ceintures de convoyeur avec 1 client, et la caissière sonne ce client. Le caissier attrape 1 morceau de nourriture, le sonne, puis en attrape 1 de plus. Le client et leur nourriture = jeux / programmes, et le caissier = CPU Core.
Imaginez maintenant le même caissier, mais au lieu de 1 tapis roulant avec 1 client, le caissier a 2 courroies de convoyeur, chacune avec son propre client. Alors maintenant, le caissier peut sonner deux clients en même temps. Cependant, la caissière ne peut entendre que 1 morceau de nourriture à la fois. Ainsi, le caissier attrape 1 morceau de nourriture du client A, puis 1 pièce du client B, et un autre morceau du client A, etc. C’est ainsi que fonctionne l’hyperthreading (en un mot). L’Hyperthread est le deuxième tapis roulant avec le deuxième client.
Alors maintenant, imaginez maintenant que vous devez acheter 100 morceaux de nourriture. Lequel est plus vite? 2 ceintures de convoyeur séparées, chacune allant dans son propre caissier, ou 1 caissier avec 2 ceintures de convoyeur?
La réponse est 2 ceintures de convoyeur, chacune se rendant dans leur propre caissier. Aka 2 cœurs de processeur. Étant donné que 1 caissier ne peut que prendre le départ d’un article à la fois, indépendamment de 2 ceintures de convoyeur, tandis que 2 caissiers peuvent faire deux fois le travail comme 1.
C’est pourquoi, si vous avez la possibilité de choisir, faites toujours être sur votre jeu sur des cœurs de processe.
ok je reçois votre anologie cependant que l’anologie signifie que les jeux ne fonctionneraient donc pas aussi bien sur le processeur AMD après avoir été transformés en modules? Alors que les modules divisaient les 2 premières cellules des 2 dernières cellules pour fabriquer 2 noyaux partiels à l’intérieur d’un module d’un noyau complet ? C’est la même chose dans le concept que l’hyper de filetage d’Intel fait juste des Intels hyperthreading le fait sur une seule ligne au lieu de 2 lignes de cellules, donc comment le faire sur 2 lignes de cellules est meilleur ou pire que de le faire sur 1 ligne de cellules? ou voulez-vous dire que les processeurs AMD sont tous inférieurs à tous les processeurs Intel ?
J’obtiens votre ananolgie et oui si c’était autre chose que l’électronité, elle s’appliquerait, mais des lignes de cellules passant une tension de 1V USSualy d’une cellule à une autre, donc la partie de ne pas être en mesure de le faire être côte à côte avec l’instruction en même temps qu’Intel le fait, donc votre programme ne fonctionnera pas aussi bien si à tout le monde sur AMD CPU. Cela a du sens à un niveau de réflexion logiciel oui, tout simplement pas à un niveau de pensée matériel est tout.
Si cela fonctionne si merveilleusement, expliquez-moi comment et pourquoi comme je ne comprends pas et je n’achèterai pas avant que je ne comprenne.
6 LUG 2015, ORE 23:30
^ Je ne vais pas citer le aussi pour raison..
Pas de cellules AMD FX ne sont pas * divisées *,
Les puces AMD FX sont une base modulaire oui, comme ils ont 2 noyaux physiques avant un modulaire. Cependant, ce que des cœurs partagent un aspect de la matrice, comme FPU, etc..
La dose AMD FX a en fait 8 noyaux physiques, 1 fil par un noyau..
La chose avec Intel HT est qu’il dose 2 thread par un noyau.. Et les deux fils doivent partager tous les aspects du noyau et du processeur. Quelle est l’une des raisons pour lesquelles AMD FX OUT PRÉFORMES Intel ht, dans plusieurs threads, application multi-cœurs..
BEACUSE AMD FX Les noyaux doivent partager FPU ECT avec dans un modulaire bien qu’ils soient complets classés par Intel dans un seul thread, Préformes. Ceci est excellent vrai si HT est désactivé.. Vous pouvez désactiver les noyaux dans les puces AMD FX pour correspondre à 1 noyau par 1 modulaire et ensuite rien à partager entre eux excepter le cache L3
Pour AMD, c’est l’une des plus grandes raisons pour lesquelles Half Coreboost est plus rapide puis le coup de pied complet.
Sur mon CPU 8120 Normal est 3.1 GHz, le noyau complet (8 cœurs) est 3.4 GHz et demi-noyau (4x cœurs, 1 par modulaire) est 4.0 GHz
Si vous désactivez HT sur Intel, vous pouvez également occuper la puce que HT a également activé.
Ultima Modifica da Maddoggyca; 6 LUG 2015, ORE 23:36
7 LUG 2015, ORE 1:34
Je n’ai jamais côté AMD “Split” Cellules J’ai dit qu’AMD utilise une ligne pour les étapes 1 et 2, puis une autre ligne pour les étapes 3 et 4 tandis qu’Intel utilise la même ligne d’alliage de silicium pour les étapes 1, 2, 3 et 4 n’ayant pas le fonctionnement de la boucle et le fonctionnement de la boucle est pourquoi et comment les modules AMD fonctionnent et la ligne droite est la façon dont l’hyperthread.
Je ne comprends toujours pas pourquoi HT dégraderait le jeu de la préformation probale. C’est plus à faire pour plus de cœurs que nécessaire que de l’avoir sur le même cœur. Idem avec les noyaux AMD la charge électroïque dans la façon dont ils font les noyaux.
Comme vous l’avez dit, la préformance unique est meilleure avec Intel pas un seul thread, mais un seul noyau n’est que rien ne fait un seul thread et non Intel et non AMD tous les deux font des threads à plusieurs étapes par cycle d’horloge.
Je suis désolé que cela n’aie pas de sens pour moi, mais s’il est vrai, alors c’est et quoi que ce soit à des vitesses plus élevées sur celle de 3 GHz, cela ne cesse d’importer car aucun jeu ne voit le problème différent de cette vitesse à ce moment-là et si vous pouvez simplement désactiver cette option, j’oublie ce qu’il a été, mais cela a fait que mon CPU est toujours à la vitesse overclock Bo ne fonctionne pas bien avec l’hyperthreading.
7 LUG 2015, minerai 2:03
Hmm no AMD et Intel ne font pas plusieurs threads par cycle d’horloge. Seul Intel avec HT a activé Dose 2 Threads par cycle d’horloge.. Un cycle d’horloge est également comme .000000001.. AKA REALLLLY RAPIDE. * c’est MHz, ghz entre. Plus le ghz est rapide, plus le cycle de l’horloge. Plus le cycle est rapide, signifie plus de fils dans et hors du processeur.. AKA vos données s’allument plus rapidement, et plus de données sont calculées dans le même temps, puis un processeur plus lent
C’est le schéma le meilleur et le plus simples à suivre l’explication du cycle d’horloge, du cycle de thread et Intel HT .
Core à noyau, un seul cycle = 1 cycle, le fil démarre et se termine en même temps que le cycle d’horloge démarre / se termine
Core unique, hyper thread = 1 cycle.. HT est lorsque 1 noyau exécute 2 threads, on commence à la mendicité du cycle d’horloge et se termine à la fin du cycle de l’horloge. Le 2ème fil commence à mi-chemin du cycle d’horloge et se termine à mi-chemin du cycle suivant.. (répéter)
Intel ht dose ne démarrer pas 2 filetage en même temps, ni la dose de démarrer 2 filet. Il y a pour la raison pour la raison en solo qu’un thread en théorie n’a pas à attendre un autre fil pour terminer en utilisant le reste du CPU. Cependant, ce n’est pas le cas .. La collite de threads se produit tout le temps, bien que vous ne le verriez pas personnellement, et que vous ne le verriez jamais, et que vous dosez rarement l’effet du PC ou du système d’exploitation et vous avez environ 1: 1000000000000000 de chances.. mais sa dose entraîne toujours des problèmes de préformatique que l’opération à un seul noyau, un seul thread n’a pas à gérer
C’est une des raisons pour lesquelles les jeux et l’application unique fonctionnent un peu plus rapidement sur la puce Intel qui ont handicapé. il y a de la chance d’un fil devant attendre un autre pour terminer.
Quant aux jeux qui sont multiples compatibles, il vaut mieux les décharger à des noyaux dédiés qui gèrent 1 fil par cycle pour éviter que un fil d’attente sur un autre pour terminer ce qu’il puisse faire..
Cela semble tout réintégré et légèrement rédiculé lorsque vous pensez à la vitesse d’un cycle et à la vitesse à laquelle l’électricité / les données traversent votre matériel. Mais les gens se soucient réellement d’obtenir la vitesse la plus rapide possible de leur matériel. Même si ce sont quelques milascondes de gain.
Ultima Modifica da Maddoggyca; 7 LUG 2015, minerai 2:23
7 LUG 2015, minerai 3:55
ok je pense que tu as ce que le hyper file. L’hyper threading permet de faire des instructions multiples par le même noyau en même temps si les deux instructions prédisant au même thread sont inraductives. Oui 1 cycle d’horloge est très rapide autour de 1 nanoseconde environ pour 1 cycle d’horloge, mais les instructions multiples peuvent être effectuées en 1 cycle d’horloge, donc une partie de la meilleure façon de la AMD dans la préformance à un seul noyau, mais je ne suis pas sûr qui est meilleur à la préformation multi-noyau multi-noyau. Si un programme est le seul programme sur un noyau, alors oui, il pourra utiliser le noyau chaque fois qu’il doit utiliser ce noyau et s’il s’agit d’un véritable noyau, donc de ne pas dire que l’utilisation de ce vieil astuce de 2003 n’est plus bon que je dis simplement que je ne vois plus de bénéfice de l’utilisation lorsque le système d’exploitation et le processeur lui-même le font déjà pour vous (S) comme l’hypothèse est minimal en fonction du mieux sur la vitesse du noyau (S) FORESS.
7 LUG 2015, minerai 4:08
Voici l’image des œuvres intérieures d’un CPU réel et pourquoi je dis ce que je dis
http: // www.cbtricks.com / radios / président / George / Graphics / George_Main_Sch.gif
Votre image est trop simplifiée pour les utilisateurs qui ne comprennent pas l’ingénierie électronique et qui en ont besoin, mais ce que vous dites n’a pas de sens car vous pouvez exécuter des instructions Mulple par cycle d’horloge en ce que (George) CPU, ce n’est pas une forme de processe
Votre logique fonctionne si elle se déroulait dans un cercle droit oui, mais quand il ne va pas du tout dans un cycle ni un modèle défini, mais une méthode définie par la quantité d’atomes inonisés à l’intérieur d’une résistance à cette nanoseconde, les choses fonctionnent diffenrelty et hyperthreading ursualy améliore la préformance . Oui, si vous exécutez un jeu à double noyau et que le deuxième noyau termine les instructions avant le premier noyau, vous obtiendrez probablement un écran bleu car le deuxième noyau sera dans la même ligne que le premier noyau mais derrière et fait pour aller à un même rythme pas plus rapide et pas plus lent mais la même vitesse . Les processeurs de Morden peuvent avoir leurs noyaux à des vitesses diffère, sauf indication contraire dans le BIOS ce que ce programme fait supposée, c’est envoyer un message pour exécuter tous les noyaux à une vitesse maximale qui élimine ce “Problrem” et augmente la vitesse ou la vitesse maximale / la vitesse répertoriée car la plupart.2 GHz à 1.8 GHz pour conserver la vie du processeur et conserver la consommation d’énergie.
Ce que vous avez dit dans la dernière partie de “même si c’est quelques miscondes de gain” bien s’il exécute un processeur nouveau ou en dernière génération, sa vitesse de stock à 100% sera 3.0 GHz à 3.2 GHz faisant la différence quelques nanosecondes de gain au maximum au maximum. 12 Nanaosecondes qui est le meilleur cas pour le temps que ce programme vous sauvera en fonctionnant sur un dernier processeur de génération de processeur ou celui précédent à des vitesses de stock est indétectable par le cerveau humain que notre cerveau a besoin d’environ 150 milles pour 200 misescondes pour préserver tout ce qui est encore rapide mais pas aussi rapide que 12 nanoscondes.
Ce programme est conçu pour le matériel bas de gamme et donc pas pour moi peut-être pour vous mais pas pour moi.
7 LUG 2015, minerai 7:07
Messaggio Originale di Timdimmdrive:
La réponse est vraiment facile:
L’hyperthreading n’est pas un vrai processeur. Au lieu de cela, c’est un CPU virtualisé. Si vous jouez à un jeu qui ne peut utiliser que 2 threads CPU à la fois, vous obtiendrez de bien meilleures performances en lui donnant 2 cœurs de processe. Donc, ce que fait CPOCORE, c’est garantir qu’un jeu n’utilise pas d’hyperthreading, et n’utilise plutôt que des cœurs réels. Remarque: Ceci est une option dans le logiciel. Vous pouvez l’activer / le désactiver sur une base permanque. Voici une bonne lecture sur ce qu’est l’hyperthreading: https: // en.Wikipédia.org / wiki / hyper-threading
“Tout peut être fait dans le gestionnaire de tâches. “
Ce n’est pas correct. Certaines des vidéos et descriptions de ce que les CPOCORORont l’expliqueront davantage. Par exemple, il ne touche pas seulement le jeu réel lui-même. Il identifie et modifie la façon dont vos processus OS sont en cours d’exécution, vos processus sans jeu, votre jeu lui-même, et enveloppe le tout dans un programme extrêmement facile à utiliser Steam.
“Théoriquement, ce n’est pas un moyen d’améliorer les performances sans augmenter directement la vitesse de traitement de la puce”
Ce n’est pas correct. La façon la plus simple de le comprendre est ceci: ce qui est mieux pour un jeu? 70% CPU d’un noyau, ou 100% CPU d’un noyau? C’est exactement ce que feront les CPOCORE – il nettoiera ce que sont les processus et présentent un noyau de près de 100% propre et inutilisé pour votre jeu à vapeur. (Entre autres caractéristiques des cpucores).
J’ai quelques vidéos de cpucores utilisées par certains jeux réels. Je vous encourage à vérifier cela: http: // SteamCommunity.com / app / 384300 / discussions /
J’espère que cela vous aidera à comprendre les choses.
Tim, s’il vous plaît élaborer certaines choses pour moi. Comment exactement les CPORORES permettent-ils à un jeu qui fonctionne à 70% Core (je n’ai honnêtement jamais vu un jeu correctement construit qui n’utilise pas 100% Core) pour fonctionner à 100% Core? Vous ne pouvez pas forcer un programme à utiliser plus de chargement de CPU. Je ne crois pas que la fermeture des processus ait un effet sur les performances du jeu (j’ai testé cette théorie plusieurs fois dans le passé). Il est également à noter que 95% des processus supplémentaires qui s’exécutent à côté de votre jeu sont nécessaires par Ran par Windows et que tout processus supplémentaire est nécessaire, tels que les gestionnaires audio, les programmes spécifiques aux conducteurs, etc. Un autre exemple: lorsque je lance GTA V, j’ai besoin que le processus du club social reste actif afin de jouer au jeu. Mais les seuls processus “supplémentaires” qui s’exécutent lorsque je suis un gestionnaire de téléchargement, FOOBAR2000 et une console de commutation matérielle MSI. J’ai testé cette théorie tout en étant entre en écrivant ceci et j’ai remarqué absolument aucune différence de performance ou de douceur de mon jeu après avoir fermé ces processus supplémentaires.
Je suis d’accord cependant, l’hyper-threading a une tendance à rendre les choses instables. Je ne suis pas d’accord que l’hyper-threading dégradera les performances. Tout ce que l’hyper-threading est censé faire est de gérer efficacement le chargement d’un processeur. Certaines applications de chargement fortement telles que les éditeurs photo / vidéo et les jeux vidéo sont adaptées pour s’exécuter avec l’hyper-threading activé et le désactiver pour n’importe quelle raison peut entraîner plus de problèmes qu’il ne résout.
J’ai également lu quelque part (je n’ai aucune expérience personnelle) que la désactivation de l’hyper-threading entraînera un chargement de texture lourde (comme Tes: Skyrim) pour prendre un coup massif dans le temps de chargement.
Tim, je suis un utilisateur de PC expérimenté. Mon expérience dépasse 10 ans et plus sans compter les heures de recherche infinies sur des sujets comme celui-ci. J’ai besoin que tu me dises quelque chose que je ne sais pas.
Ultima modifica da ketonasarus; 7 LUG 2015, minerai 7:20
7 LUG 2015, ORE 13:01
Finnally une personne qui obtient l’hyperthreading . Aussi dans votre lien ci-dessus, il semble que si le CPU est assez rapide comme 3 GHz ou plus rapidement, la désactivation de l’hyperthreading ne donnera aucun coup de pouce du tout à moins que vous n’overclockez également, mais ce programme n’est pas pour l’overclocking.
Et oui, je vois votre point . en ce que vous pouvez cependant faire réfléchir à Windows et dire que c’est et inciter le processeur à utiliser des fonctionnalités supplémentaires pour se faire aller vite que la vitesse du stock et / ou à la vitesse du stock parce que l’ulisation augmente ainsi l’augmentation de la vitesse que les personnes pensent que ce programme leur donne.
Ultima modifica da yumri; 7 LUG 2015, ORE 13:05
8 LUG 2015, ORE 11:41
Messaggio Originale di Gs-r:
Tout ce que l’hyper-threading est censé faire est de gérer efficacement le chargement d’un processeur. Certaines applications de chargement fortement telles que les éditeurs photo / vidéo et les jeux vidéo sont adaptées pour s’exécuter avec l’hyper-threading activé et le désactiver pour n’importe quelle raison peut entraîner plus de problèmes qu’il ne résout.
Oui. C’est “tout ce qu’il est censé faire”, mais je reçois la suspicion fausse que vous interprétez mal ce qu’est le «chargement» réel, voici et comment cela fonctionne ou ne fonctionne pas.
Ce que fait l’hyper-threading, c’est qu’il divise un noyau physique en deux cœurs logiques. Ces deux noyaux logiques ont un état d’exécution distinct afin qu’ils peut Exécutez des tâches en parallèle, mais ils doivent partager et faire face à des ressources comme un bus système ou des caches de mémoire CPU afin qu’ils ne peut pas toujours courir en parallèle.
C’est d’une importance extrêmement importante à comprendre. Vous devez exécuter un logiciel écrit d’une manière particulière pour profiter des astuces de planification que l’hyper-threading active sans l’un des noyaux logiques d’une paire bloquant l’autre.
L’exemple le plus simple est un thread exécutant des travaux de calcul lourds sur un noyau logique, tandis que son noyau logique sœur est en train de relancer les données vers le RAM principal et d’attirer de nouvelles données pour d’autres calculs.
Quel type de logiciel fonctionne principalement de cette façon? Logiciel qui effectue des calculs sur les flux de données. Les exemples canoniques de ce type sont un logiciel de codage audio et vidéo ou de décodage.
Dans la pratique. Il y aura des collisions. Beaucoup, beaucoup d’entre eux, plus en une seule seconde que vous ne pouvez compter sur les mains collectives du public dans un film emballé.
Cependant, plusieurs courtes périodes d’opérations parallèles sans collision, sans collision, sont encore plus rapides que de n’avoir aucune opération parallèle. Et donc l’exécution de threads Mulitple avec hyper-threading est encore plus rapide que d’exécuter un seul fil à la fois sans hyper-threading, où le planificateur du système d’exploitation doit entrer en jeu et vous pouvez payer la pénalité complète de la commutation de contexte.
Alors, comment cela affecte-t-il les jeux?
Bien. Cela dépend de la plus grande partie du nombre de cœurs physiques que votre processe.
Les anciens jeux sont généralement à thread unique et sont donc beaucoup de jeux indépendants de développeurs de démarrage qui n’ont pas encore une bonne compréhension du multi-threading (ou qui construisent quelque chose de suffisamment léger pour qu’il n’ait pas besoin du multi-threading). Pour obtenir le plus de performances d’un tel jeu, vous voulez exécuter le fil unique du jeu sur l’un des processeurs logiques et garder tout autant que possible de l’autre. Assurez-vous qu’un processeur logique n’est jamais bloqué par quoi que ce soit que l’autre peut vouloir faire.
Pour les jeux multi-thread et les systèmes multi-cœurs, le même principe est valable: idéalement, vous voulez que chaque fil actif dans le jeu fonctionne sur un processeur logique et garde sa sœur sans activité afin qu’il ne puisse pas bloquer le premier.
Là où ça devient intéressant, c’est quand vous avez moins de noyaux physiques que le jeu a des fils.
Dans ces cas, il peut être très avantageux de s’exécuter avec un hyper de filetage activé et les deux noyaux logiques jumelés sous un noyau physique sous pleine charge. Même si les processeurs logiques peuvent entrer en collision à l’occasion et ralentir les uns les autres, ils auront généralement également des périodes exécutées en parallèle, et dans l’ensemble, le système d’exploitation doit planifier deux threads sur le même noyau et subir des coûts complets de la commutation de contexte.
Les avantages exacts varieront toujours selon le jeu: cela dépend de la façon dont chaque fil reste en dehors des autres. Il variera également avec le particulier génération du CPU que vous utilisez. Intel s’est amélioré de mieux en mieux pour effectuer des optimisations et des astuces de planification avec chaque nouvelle génération de processeurs et un i3 ou i7 moderne subira en moyenne moins de collisions exécutant le même logiciel qu’une plus ancienne génération de i3 ou i7.
Jeux antérieurs
qui utilisé du multi-threading n’utiliserait généralement que deux threads simultanés, car les CPU plus anciens n’avaient généralement que deux noyaux physiques à épargner. Même lors de l’exécution de ces jeux sur un i3, si l’hyper-threading activé (créant quatre noyaux logiques à partir de ses deux noyaux physiques), il est plus que susceptible de réduire les performances dues aux collisions. Sauf si vous planifiez explicitement ces deux threads à exécuter sur des noyaux physiques séparés. La plupart des anciens jeux ne font pas cela, car le système d’exploitation Windows n’avait aucun moyen de discerner quels noyaux logiques étaient des paires jusqu’à Windows 7. C’est là que des logiciels comme CPORORES peuvent le forcer pour vous.
Jeux modernes
Utilisez généralement quatre cœurs. Les raisons sont un peu plus variées. Cela peut être dû au fait que les développeurs de moteurs de jeu n’ont pas réussi à gérer une scission plus granulaire ou parce que les consoles de jeu RNODERN n’ont que quatre cœurs disponibles et le jeu est une version multi-plateaux.
Pour un i3 exécutant ces jeux, c’est généralement un bien idée d’activer l’hyper-threading et de garder les quatre noyaux logiques sous pleine charge afin que vous atteigniez la quantité maximale de parallélisation pour ce système. Alors que pour un i7 (quatre noyaux physiques, huit cœurs logiques), il est généralement mauvais d’activer l’hyper-threading, sauf si vous isolez les fils sur des noyaux physiques séparés.
Les jeux modernes écrits sur les moteurs modernes savent également comment interroger pour quels noyaux sont logiques et lesquels sont associés et le feront lorsqu’ils exécutent sur un système d’exploitation Windows moderne qui peut signaler ce type d’informations. (C’est-à-dire: Windows 7 et plus.) Iirc Unreal Engine 3 a ce type de technologie à bord.
Lorsque vous traitez avec un jeu écrit sur un tel moteur, il n’a pas beaucoup de sens de «désactiver l’hyper-threading» (lire; isoler un jeu aux processeurs logiques disjoints) pour Cpucores, car le jeu gèrera déjà cela lui-même.
Hyperthreading réduit-il les performances uniques
Reddit et ses partenaires utilisent des cookies et des technologies similaires pour vous offrir une meilleure expérience.
En acceptant tous les cookies, vous acceptez notre utilisation des cookies pour fournir et maintenir nos services et notre site, améliorer la qualité de Reddit, personnaliser le contenu et la publicité Reddit, et mesurer l’efficacité de la publicité.
En rejetant des cookies non essentiels, Reddit peut toujours utiliser certains cookies pour assurer la bonne fonctionnalité de notre plateforme.
Pour plus d’informations, veuillez consulter notre avis de cookie et notre politique de confidentialité .
[Résolu] Hyperthreading affecte-t-il les performances?
Vous utilisez un navigateur obsolète. Il peut ne pas afficher correctement ceci ou d’autres sites Web.
Vous devez mettre à niveau ou utiliser un navigateur alternatif.
Mangasoy
8 novembre 2021 61 2 35
Mon ami me demande, lequel est le meilleur entre i5 4690 et i7 3770. Les i7 ont une hyperthreading alors que i5 ne. Alors est le i5 pire que i7?
Il veut construire un PC de jeu bon marché, et ce PC sera offert comme cadeau d’anniversaire pour le frère de mes amis, donc j’espère que les réponses seraient utiles
kanewolf
Moi et mon ami conscient des différences de socket, nous voulons juste savoir si l’hyper filetage aidera à la performance.
Pour la plupart des logiciels, oui. Les logiciels écrits pour utiliser pleinement les CPU physiques peuvent bénéficier de la désactivation de l’hyperthreading. Le logiciel commercial n’est pas écrit de cette façon. Pourquoi? Parce que les logiciels commerciaux doivent fonctionner sur des dizaines de CPU différents. Si vous écriviez un logiciel personnalisé pour YouTube, par exemple, vous pouvez l’optimiser pour des processeurs spécifiques. YouTube aurait des milliers du même matériel. En optimisant pour ce matériel, puis en comparaison, vous pouvez déterminer si l’hyperthreading sur ou désactiver a de meilleures performances. J’ai été ingénieur sur les systèmes où une étape de configuration de base.
Lutfij
Titan
Modérateur
7 octobre 2009 49 405 3 748 153,390
Quel genre de jeux veut-il taxer le système avec?
drea.drechsler
Champion
16 octobre 2017 9 449 2474 52 290
Combien cela affecte les performances peut être à la fois discutable et conditionnelle, mais tout le reste égal, oui il le fait.
Johnbonhamshost
Glorieux
14 janvier 2016 6 970 1 078 49,190
L’hyper-threading affecte-t-il les performances?
Tout dépend du logiciel spécifique impliqué.
Certains utilisent l’hyper-threading, certains des noyaux CPU plus dédiés, certains seulement de noyau unique.
Quel prix paierait-il pour cet ancien processeur de la 3e ou 4e génération?
Il veut construire
Ce type de conversation est toujours plus facile avec l’acheteur / constructeur réel.
Demandez-leur de se contacter via ce fil ou en créant un nouveau.
Mangasoy
8 novembre 2021 61 2 35
Quel genre de jeux veut-il taxer le système avec?
Des jeux comme Minecraft, GTA V, CS Go, ce genre de jeux
Mangasoy
8 novembre 2021 61 2 35
Tout dépend du logiciel spécifique impliqué.
Certains utilisent l’hyper-threading, certains des noyaux CPU plus dédiés, certains seulement de noyau unique.
Quel prix paierait-il pour cet ancien processeur de la 3e ou 4e génération?
Ce type de conversation est toujours plus facile avec l’acheteur / constructeur réel.
Demandez-leur de se contacter à travers ce fil ou en créant un nouveau.
Les deux sont un processeur d’occasion à environ 20 dollars, le i5 est de 21 dollars et i7 est de 24 dollars dans un magasin d’ordinateurs local
Johnbonhamshost
Glorieux
14 janvier 2016 6 970 1 078 49,190
i5 est 21 dollars et i7 est 24
achetez-les tous les deux.
Mangasoy
8 novembre 2021 61 2 35
achetez-les tous les deux.
lequel devrait-il utiliser dans le PC?
Et j’ai oublié de mentionner, il cherche un processeur à jumeler avec son ancien GTX 950
Nighthawk117
Honorable
27 sept. 2021 2 029 633 10 540
Mon ami me demande, lequel est le meilleur entre i5 4690 et i7 3770. Les i7 ont une hyperthreading alors que i5 ne. Alors est le i5 pire que i7?
Il veut construire un PC de jeu bon marché, et ce PC sera offert comme cadeau d’anniversaire pour le frère de mes amis, donc j’espère que les réponses seraient utiles
Hyper Fileing fait une différence significative dans la plupart des jeux modernes et bénéficiant à plusieurs tâches. Le 3770 est le meilleur CPU, mais veuillez noter qu’ils n’utilisent pas la même prise.
Mangasoy
8 novembre 2021 61 2 35
Hyper Fileing fait une différence significative dans la plupart des jeux modernes et bénéficiant à plusieurs tâches. Le 3770 est le meilleur CPU, mais veuillez noter qu’ils n’utilisent pas la même prise.
Moi et mon ami conscient des différences de socket, nous voulons juste savoir si l’hyper filetage aidera à la performance.
Nighthawk117
Honorable
27 sept. 2021 2 029 633 10 540
Moi et mon ami conscient des différences de socket, nous voulons juste savoir si l’hyper filetage aidera à la performance.
Cela dépend du logiciel mais de l’expérience en règle générale, je choisirais toujours la puce hyper filetée. Les différences de noyau unique sont petites, l’hyper filetage offrira une meilleure expérience PC et rendra le gameplay plus lisse dans les jeux modernes. Si vous vouliez jouer à Battlefield V par exemple, le 3770 est la meilleure puce pour cela car il utilisera les 8 fils. Certains de ces jeux ne sont pas très lisses sur les plus anciennes puces 4C / 4T.
kanewolf
Titan
Modérateur
29 mai 2013 35 821 2 774 153 790
Moi et mon ami conscient des différences de socket, nous voulons juste savoir si l’hyper filetage aidera à la performance.
Pour la plupart des logiciels, oui. Les logiciels écrits pour utiliser pleinement les CPU physiques peuvent bénéficier de la désactivation de l’hyperthreading. Le logiciel commercial n’est pas écrit de cette façon. Pourquoi? Parce que les logiciels commerciaux doivent fonctionner sur des dizaines de CPU différents. Si vous écriviez un logiciel personnalisé pour YouTube, par exemple, vous pouvez l’optimiser pour des processeurs spécifiques. YouTube aurait des milliers du même matériel. En optimisant pour ce matériel, puis en comparaison, vous pouvez déterminer si l’hyperthreading sur ou désactiver a de meilleures performances. J’ai été ingénieur sur les systèmes où une étape de configuration de base consistait à désactiver l’hyperthreading dans le BIOS.
Si vous avez un logiciel spécifique qui doit fonctionner au maximum, vous le comparez dans les deux sens et exécutez avec les meilleures performances.
L’hyper-lancement ralentit-il les deux fils sur un noyau?
Cela peut déjà être répondu dans un autre fil, mais c’est de toute façon. Supposons que j’ai un processeur à 4 noyaux avec 8 threads d’hyper. Prenons l’exemple d’Intel i7-4770k. Le fait qu’il y a deux threads s’exécutant simultanément sur un seul noyau lent ou les deux fils vers le bas par rapport à ce qu’un seul thread fonctionnait sur un seul noyau. Je parle du débit net d’un seul thread, pas du débit large du système. Il me semble que si un processeur s’exécute en mode hyper-threading, il devrait passer beaucoup de temps à gérer des ressources partagées comme les caches, les unités d’exécution, les pipelines, etc. En d’autres termes, il semble que les “performances par thread” soient inférieures à celle d’un processeur avec 4 cœurs et 4 fils que sur un processeur avec 4 cœurs et 8 fils. Veuillez éclairer, expliquer et élaborer.
Plus d’options
leader
Ars legatus legionis
Cela dépend de la façon dont il est implémenté et de ce que font réellement les fils (E.g. se battent-ils sur Cache en expulsant la mémoire de l’autre ou quelque chose comme ça). Mais en général, non. Des choses comme le cache et autres ne sont pas vraiment “gérées”, du point de vue du matériel; Une valeur de mémoire est une valeur de mémoire, peu importe d’où elle vient. Pour les instructions dans le pipeline, vous devez garder une trace de quel ensemble de registres chaque instruction fait référence (puisque chaque thread aura le sien), mais sur un processeur x86 moderne, vous devez le faire de toute façon car vous aurez en effet de nombreuses copies du registre du thread en raison de l’exécution hors ordre et enregistrerez le célèbre.
La chose intéressante à propos de SMT est à quel point il s’inscrit naturellement dans ce qu’un processeur supercalar large doit déjà faire.
Plus d’options
Tom Dunkerton
Ars Praefectus
Merci redleader. Je ne sais pas pourquoi, mais je pense simplement qu’un quatre noyaux sans hyper-threading serait plus rapide par fil qu’un double noyau avec hyper-threading. Qu’est-ce que je rate?
Plus d’options
brace
Ars Praefectus
Le seul cas où j’ai rencontré où l’hyperthreading dégrade mesurablement les performances est les mathématiques numériques. Si vous croquez des données bien organisées, vous pourriez être en mesure de garder le noyau occupé. Et si vous travaillez avec beaucoup, vous pouvez devenir trop grand pour le cache. Vous souhaitez donc diffuser vos calculs sur les noyaux afin que vous obteniez le cache de tout le monde (tout en minimisant la communication. c’est un art!). En général, vous avez à moitié autant de bande passante pour “ quoi que ce soit ‘par le cœur si vous avez des hyperthreads, mais je ne suis pas sûr que beaucoup de gens exécutent souvent des codes liés à la bande passante.
Je pense que ce que vous manquez, c’est que les noyaux sont si incroyablement rapides qu’ils attendent presque toujours des données de toute façon, à moins que votre code ne soit très soigneusement réglé. C’est un problème de latence, vous pourriez aussi bien avoir un autre fil à déterminer ce qu’il demandera pendant que le premier attend.
Cela dit, vous avez essentiellement raison que 4 cœurs réels sont plus rapides que 2 réels / 2 hyper. C’est juste que 2 réel / 2 hyper est plus rapide que 2 réels seuls, toutes les autres choses étant égales.
Je suppose également que, puisque les hyperthreads partagent du matériel, ils pourraient partager des données via le cache. Je suppose donc que si vous aviez deux fils avec un tas de communication, ils pourraient être plus heureux sur une fois le noyau. Je ne sais pas comment cela fonctionne dans la pratique. On dirait que ce serait une combinaison étrange de bon et mauvais réglage (s’il y a suffisamment de communication pour que ce soit bon, ils ne devraient peut-être pas être deux fils je suppose?)
Edit: La ligne directrice se souvient vaguement de voir avoir été lancée autour est que, maintenir le nombre de cœurs réels constants, l’hyperthreading est bon pour environ 30% et changer de performance supplémentaire. Pas 100%.
Plus d’options
leader
Ars legatus legionis
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29436487 # P29436487: KLBS68DB a déclaré:
Tom Dunkerton [/ url] “: klbs68db] Je ne sais pas pourquoi, mais je pense juste qu’un quatre noyaux sans hyper-threading serait plus rapide par fil qu’un double noyau avec hyper-threading. Qu’est-ce que je rate?
Je suppose que vous n’avez pas une grande compréhension de la façon dont un ordinateur fonctionne. ARS Technica avait un certain nombre de très bons articles sur ce sujet il y a environ dix ans. Pourrait valoir la peine de les creuser.
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29438331 # P29438331: KLBS68DB a déclaré:
BRREZE [/ url] “: klbs68db]
Cela dit, vous avez essentiellement raison que 4 cœurs réels sont plus rapides que 2 réels / 2 hyper. C’est juste que 2 réel / 2 hyper est plus rapide que 2 réels seuls, toutes les autres choses étant égales.
Ce n’est pas “2 réel / 2hyper”. Vous avez encore exactement 2 cœurs, c’est juste que chacun peut exécuter 2 fils à la fois. Aucun de ceux-ci n’est plus “réel” que l’autre.
Plus d’options
continuum
Ars legatus legionis
Modérateur
Nous avons juste eu une discussion à ce sujet, pourrait aider?
Plus d’options
Tom Dunkerton
Ars Praefectus
[url = http: // arstechnica.com / civis / Viewtopic.php?p = 29439557 # p29439557: 1cd9ud67 a dit:
Continuum [/ url] “: 1cd9ud67] Nous venons d’avoir une discussion à ce sujet, pourrait aider?
Plus d’options
brace
Ars Praefectus
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29439055 # P29439055: 172MK6GH a dit:
Redleader [/ url] “: 172mk6gh]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29436487 # P29436487: 172MK6GH a dit:
Tom Dunkerton [/ url] “: 172MK6GH] Je ne sais pas pourquoi, mais je pense simplement qu’un quatre noyaux sans hyper-threading serait plus rapide par fil qu’un double noyau avec hyper-threading. Qu’est-ce que je rate?
Je suppose que vous n’avez pas une grande compréhension de la façon dont un ordinateur fonctionne. ARS Technica avait un certain nombre de très bons articles sur ce sujet il y a environ dix ans. Pourrait valoir la peine de les creuser.
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29438331 # P29438331: 172MK6GH a dit:
BRREZE [/ url] “: 172MK6GH]
Cela dit, vous avez essentiellement raison que 4 cœurs réels sont plus rapides que 2 réels / 2 hyper. C’est juste que 2 réel / 2 hyper est plus rapide que 2 réels seuls, toutes les autres choses étant égales.
Ce n’est pas “2 réel / 2hyper”. Vous avez encore exactement 2 cœurs, c’est juste que chacun peut exécuter 2 fils à la fois. Aucun de ceux-ci n’est plus “réel” que l’autre.
Eh bien, il n’a pas tort que quatre vrais noyaux soient généralement plus rapides que deux avec l’hyperthreading (je, d’autre part, implicite à tort qu’il existe deux types différents de fils sur un système d’hyperthreading, oups)
Plus d’options
Jlarja
Ars Centurion
Pour autant que je puisse lire, l’affiche d’origine demande particulièrement si le débit d’un seul thread est affecté par un autre thread fonctionnant sur le même noyau. Bien sûr, c’est énormément! Pourquoi Intel ou quelqu’un d’autre ferait-il même des processeurs à double noyau ou quad-core, si vous pouviez obtenir la même performance avec un simple noyau ou un double cœur?
Plus d’options
mettre en forme
Ars legatus legionis
Indicateur++
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29440315 # P29440315: ISM45JMP a déclaré:
Jlarja [/ url] “: ism45jmp] pour autant que je puisse lire, l’affiche originale demande particulièrement si le débit d’un seul thread est affecté par un autre thread exécutant sur le même noyau. Bien sûr, c’est énormément!
Cela dépend de ce que font les fils. Deux threads en concurrence pour les mêmes ressources matérielles (les deux FPU lourds, les deux liés à la mémoire, etc.) Mais deux fils qui ne sont pas tellement en compétition (un thread FPU Heavy, l’autre sans pratiquement pas de FPU, par exemple, et les deux se comportant assez bien par rapport au cache) n’aura pas de compétition aussi importante.
La nomenclature normale pour en discuter est 4c / 8t (quatre cœurs, huit threads), 2c / 4t (deux cœurs, quatre fils), etc. Il n’y a pas de différence dans les processeurs modernes entre les deux threads (ou plus) par noyau pour une désignation “deux noyaux, deux hyper”.
Plus d’options
Byosys
Ars Praefectus
Indicateur++
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29441313 # P29441313: 26MIAQLU a déclaré:
Fitten [/ url] “: 26Miaqlu]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29440315 # P29440315: 26MIAQLU a déclaré:
Jlarja [/ url] “: 26Miaqlu] Pour autant que je puisse lire, l’affiche originale demande particulièrement si le débit d’un seul thread est affecté par un autre thread exécutant sur le même noyau. Bien sûr, c’est énormément!
Cela dépend de ce que font les fils. Deux threads en concurrence pour les mêmes ressources matérielles (les deux FPU lourds, les deux liés à la mémoire, etc.) Mais deux fils qui ne sont pas tellement en compétition (un thread FPU Heavy, l’autre sans pratiquement pas de FPU, par exemple, et les deux se comportant assez bien par rapport au cache) n’aura pas de compétition aussi importante.
La nomenclature normale pour en discuter est 4c / 8t (quatre cœurs, huit threads), 2c / 4t (deux cœurs, quatre fils), etc. Il n’y a pas de différence dans les processeurs modernes entre les deux threads (ou plus) par noyau pour une désignation “deux noyaux, deux hyper”.
Bien que l’hyperthreading ne puisse pas aider les performances d’un seul fil, ses frais généraux sont généralement très petits. En dehors de quelques cas comme le décrit FITTEN, l’hyperthreading est généralement assez bon pour utiliser des parties inutilisées du processeur exécutez plusieurs threads en parallèle sur le même noyau physique, accélérant les choses. Par exemple, l’utilisation d’un deuxième thread sur des parties inutilisées d’un noyau physique pourrait empêcher le planificateur de nécessiter une interruption de la tâche qui vous tient à gérer.
Plus d’options
Monstre du chapeau
Ars legatus legionis
Indicateur
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29441313 # P29441313: 3JXFynh2 a dit:
Fitten [/ url] “: 3jxfynh2]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29440315 # P29440315: 3JXFynh2 a dit:
Jlarja [/ url] “: 3jxfynh2] pour autant que je puisse lire, l’affiche originale demande particulièrement si le débit d’un seul thread est affecté par un autre thread exécutant sur le même noyau. Bien sûr, c’est énormément!
La nomenclature normale pour en discuter est 4c / 8t (quatre cœurs, huit threads), 2c / 4t (deux cœurs, quatre fils), etc. Il n’y a pas de différence dans les processeurs modernes entre les deux threads (ou plus) par noyau pour une désignation “deux noyaux, deux hyper”.
Oui il y a. Le CPU s’identifie comme des processeurs “physiques” et “logiques” – chaque noyau est physique + logique. Le système d’exploitation est normalement (sauf si la gestion de l’alimentation intervient). Android (appareils Nexus, pas de fantaisie.Peu de choses), par exemple, nécessite une certaine charge et une certaine horloge minimale atteinte avant qu’elle ne réveille un autre noyau.
Plus d’options
brace
Ars Praefectus
Avec Hyper Fileing, la machine en a 2 (ou 4 [quelqu’un a déjà vu 3?]) fils par noyau physique. La cartographie des threads utilisés -> les threads dépend de l’environnement. Selon la charge de travail, il peut être logique de planifier les tâches sur les threads sur des noyaux physiques séparés. OpenMP par exemple ne le fait pas, mais vous pouvez le forcer à.
Il semble plus probable que votre système d’exploitation fait une distinction arbitraire entre les fils, que certains de vos fils sont spéciaux. Il est logique de marquer arbitrairement un thread par noyau comme «Extra.”De cette façon, le programmeur peut dire” commencer à planifier des tâches sur les vrais threads “quand ils signifient vraiment” attribuer des threads un par noyau.”
Plus d’options
leader
Ars legatus legionis
[url = http: // arstechnica.com / civis / Viewtopic.php?p = 29443099 # p29443099: 2856vwww a déclaré:
BREZE [/ url] “: 2856vwww] avec hyper file, la machine en a 2 (ou 4 [quelqu’un a déjà vu 3?])
Bien sûr, Qualcomm Hexagon est SMT à 3 voies.
Plus d’options
leader
Ars legatus legionis
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29442833 # P29442833: Zynp60yg a dit:
Chapeau monstre [/ url] “: zynp60yg]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29441313 # P29441313: ZYNP60YG a déclaré:
FITTEN [/ url] “: zynp60yg]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29440315 # P29440315: Zynp60yg a dit:
Jlarja [/ url] “: zynp60yg] pour autant que je puisse lire, l’affiche originale demande particulièrement si le débit d’un seul thread est affecté par un autre thread exécutant sur le même noyau. Bien sûr, c’est énormément!
La nomenclature normale pour en discuter est 4c / 8t (quatre cœurs, huit threads), 2c / 4t (deux cœurs, quatre fils), etc. Il n’y a pas de différence dans les processeurs modernes entre les deux threads (ou plus) par noyau pour une désignation “deux noyaux, deux hyper”.
Oui il y a. Le CPU s’identifie comme des processeurs “physiques” et “logiques” – chaque noyau est physique + logique.
Pour autant que je sache, c’est juste une chose organisationnelle pour aider le système d’exploitation à allouer correctement. Le choix de lequel est “physique” est arbitraire.
Plus d’options
Netmasteroc3
Ars Praefectus
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29442833 # P29442833: 3RSJ3EOD a dit:
Chapeau monstre [/ url] “: 3rsj3eod]
Oui il y a. Le CPU s’identifie comme des processeurs “physiques” et “logiques” – chaque noyau est physique + logique.
Euh, ce n’est pas ainsi que les processeurs Intel présentent des informations ou, afaik, fonctionnent électriquement. Tous les threads sont logiques, il n’y a pas de concept de thread physique ou de fil logique car vous les décrivez. Un noyau peut exécuter 1 ou plus (2, 4 dans le cas des threads Xeon Phis). C’est l’étendue de la visibilité que vous avez dans le système. En interne, le matériel de décodage / répartition / calendrier avant avant n’est rien spécial, et il n’a pas besoin, il ne suit simplement N-threads jusqu’à la limite autorisée.
Les informations CPUID reflètent ce (s) thread (s) logique (s) en tant que concept d’enfant à un noyau physique. Le système d’exploitation peut évidemment suivre les threads qui s’exécutent sur quel CPU, mais il n’y a pas de visibilité dans le planificateur ou les unités d’exécution du noyau au-delà.
Plus d’options
Monstre du chapeau
Ars legatus legionis
Indicateur
Je n’ai rien dit sur les “threads physiques” ou “threads logiques”. J’ai dit qu’un noyau CPU se présente au système d’exploitation en tant que processeur physique et logique. Cela aide le planificateur du système d’exploitation à économiser de l’énergie (ne vous réveillez pas un autre noyau si un noyau smting peut prendre un autre fil) ou fonctionner mieux (utilisez deux cœurs au lieu d’un).
En ce qui concerne les fils, ils “fonctionnent”. Aucun des deux n’a priorité sur l’autre, ils obtiennent des ressources au fur et à mesure que le répartiteur du processeur décide.
Plus d’options
Netmasteroc3
Ars Praefectus
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29446355 # P29446355: 7E0SH86S a dit:
Hat Monster [/ url] “: 7E0SH86S]
J’ai dit qu’un noyau CPU se présente au système d’exploitation en tant que processeur physique et logique. J’ai dit qu’un noyau CPU se présente au système d’exploitation en tant que processeur physique et logique.
Je ne sais pas si nous nous parlons ou non. Bien que votre nitpick soit entièrement tangentiel au point que je faisais.
Ce que je dis, c’est que, du moins pour Intel, la relation physique-logique est hiérarchique et que le matériel ne dessine ni ne présente une distinction comme vous. Un processeur physique est un noyau; Chaque noyau contient 1 ou plusieurs processeurs logiques. Cela a été le cas qui remonte au moins aux P4 pour autant que je sache des données du CPUID que j’ai.
La distinction que vous dessinez ne correspond pas à la réalité, du moins pas dans la façon dont je (et il semble que Redleader) l’interprète.
Du point de vue du matériel, les processeurs logiques sont des balises dans la logique qui suit les fichiers et les instructions d’enregistrement. Du point de vue du logiciel, un processeur physique n’est qu’un conteneur qui regroupe les processeurs logiques et les caches afin que le système d’exploitation sache la disposition physique du silicium.
Plus d’options
mettre en forme
Ars legatus legionis
Indicateur++
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29446355 # P29446355: Mrito0bp a dit:
Chapeau monstre [/ url] “: mrito0bp] ni l’un ni l’autre ne prend la priorité sur l’autre, ils obtiennent des ressources au fur et à mesure que le répartiteur du processeur décide.
C’est ce que j’ai dit
Plus d’options
Jimbopalmer
Ars Tribunus angusticlavius
Indicateur
Je vais prendre un autre point de vue sur ce que l’OP a demandé.
Dans un hyperthreading très précoce, il y avait des charges de travail où elle était plus lente que la même tâche avec elle désactivée.
Ce n’est pas vrai depuis des années.
Si vous avez une seule tâche, elle fonctionnera aussi vite avec l’hyperthreading allumé comme avec elle éteinte.
Si, à titre d’exemple, vous avez un processeur avec deux cœurs et capable de 4 threads, il exécutera un seul fil aussi rapidement qu’un seul noyau, CPU à fil unique à la même vitesse d’horloge. Si vous démarrez un deuxième thread, il sera très probablement affecté au deuxième noyau, et à moins que les goulots d’étranglement de mémoire, les deux fonctionneront à la même vitesse que l’utilisation de deux PC à la même vitesse d’horloge. Le débit augmente de 100%
Une fois que vous avez démarré le troisième thread (pas le troisième fil!) Un noyau commencera l’hyperthreading, ce qui améliore généralement le débit de seulement 30%, donc chaque noyau est ralenti de 35%, en moyenne. (Encore une fois, cela dépend de la charge de travail, différents algorithmes peuvent déjà attendre les ressources 35% du temps. Certains algorithmes peuvent être si liés à la mémoire que deux cœurs exécutant seulement deux threads peuvent entrer en conflit)
Une fois les quatre fils utilisés, vous obtenez environ 2.6 fois le débit d’un seul thread, ainsi par rapport à ce fil unique fonctionnant sur la même machine, il ne sera probablement que 65% plus rapidement qu’il l’était. Mais il n’a pas résolu à cause de l’hyerthreading, cela a ralenti parce que vous avez demandé à votre ordinateur de faire 4 tâches de séparations. Si vous demandiez un processeur fileté unique à un seul noyau pour effectuer 4 tâches liées à calculer, le ne serait que 25% aussi rapide que la tâche unique.
L’hyperthreading est une victoire chaque fois que le fabricant manque d’espace pour ajouter des noyaux. Dans un avenir avec des matrices plus petites et des résolutions plus fines, plus de noyaux et d’hyperthreading seront de plus en plus courants. Presque la seule autre chose pour laquelle ils utilisent des transistors sont des caches de plus en plus grandes, ce qui aide les charges de travail à ne pas entrer en conflit.
Plus d’options
Jlarja
Ars Centurion
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29441313 # P29441313: Jvvftvyo a dit:
FITTEN [/ url] “: jvvftvyo]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29440315 # P29440315: Jvvftvyo a dit:
Jlarja [/ url] “: jvvftvyo] pour autant que je puisse lire, l’affiche originale demande particulièrement si le débit d’un seul thread est affecté par un autre thread exécutant sur le même noyau. Bien sûr, c’est énormément!
Cela dépend de ce que font les fils. Deux threads en concurrence pour les mêmes ressources matérielles (les deux FPU lourds, les deux liés à la mémoire, etc.) Mais deux fils qui ne sont pas tellement en compétition (un thread FPU Heavy, l’autre sans pratiquement pas de FPU, par exemple, et les deux se comportant assez bien par rapport au cache) n’aura pas de compétition aussi importante.
La nomenclature normale pour en discuter est 4c / 8t (quatre cœurs, huit threads), 2c / 4t (deux cœurs, quatre fils), etc. Il n’y a pas de différence dans les processeurs modernes entre les deux threads (ou plus) par noyau pour une désignation “deux noyaux, deux hyper”.
C’est une belle théorie (et fait de grands diagrammes dans les diapositives de marketing), mais j’aimerais vraiment le voir testé quelque part. La dernière fois que j’ai vu un test de site d’examen, c’était à l’ère P4, alors que l’hyper-threading était une nouvelle chose. Ils ne pouvaient pas vraiment trouver une paire de charges de travail qui fonctionnent bien ensemble, bien que compte tenu de l’architecture de P4, ce n’est pas vraiment surprenant.
Quelqu’un sait-il si cela a été testé récemment? Surtout Haswell semble que cela pourrait bien se produire dans un tel test, bien qu’il se porte déjà assez bien dans de nombreux tests en entier unique.
Au fait, j’aime l’hyper-threading. C’est idéal pour compiler les grandes bases de code C (++), c’est ce que je fais tout le temps au travail. Mais il ne fait aucun doute que le double nombre de noyaux serait encore meilleur.
Plus d’options
mettre en forme
Ars legatus legionis
Indicateur++
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29450801 # P29450801: 1CF23TGA a dit:
Jlarja [/ url] “: 1cf23tga]
Quelqu’un sait-il si cela a été testé récemment?
Il a été beaucoup testé au fil des ans (facilement trouvé en recherchant Google). Les résultats varient en fonction des charges de travail et des algorithmes. Comme mentionné ci-dessus, les threads qui rivalisent pour les mêmes ressources peuvent présenter un certain nombre de comportements différents tandis que d’autres scénarios se déroulent favorablement (jusqu’à 20% de temps d’exécution globale de processus plus rapide dans les tests favorables à HT). Il existe des cas particuliers où HT peut avoir un ralentissement significatif (concurrence sévère des ressources) mais la plupart du temps, les ralentissements semblent se situer dans la marge d’erreur des tests. Comme toujours, il est important de trouver des tests similaires aux tâches que l’on s’attend à effectuer pour déterminer les effets de HT sur les performances globales et si cela vaut la peine d’avoir activé ou non.
Plus d’options
leader
Ars legatus legionis
Sur Haswell, le backend est beaucoup plus large (7 ports), et plus d’entre eux peuvent effectuer des opérations entières, donc probablement la mise à l’échelle est un peu différente car elles seront moins affrontées pour les ports d’exécution:
Avec 4 ports pour la charge / les magasins, 4 pour entier et 2 pour la branche, même deux threads exécutant des charges de travail entières identiques n’introduisent probablement pas beaucoup de controverse.
Plus d’options
Jlarja
Ars Centurion
[url = http: // arstechnica.com / civis / Viewtopic.php?p = 29453201 # p29453201: 1g7fy5rl a dit:
FITTEN [/ url] “: 1g7fy5rl]
[url = http: // arstechnica.com / civis / Viewtopic.php?p = 29450801 # p29450801: 1g7fy5rl a dit:
Jlarja [/ url] “: 1g7fy5rl]
Quelqu’un sait-il si cela a été testé récemment?
Il a été beaucoup testé au fil des ans (facilement trouvé en recherchant Google). Les résultats varient en fonction des charges de travail et des algorithmes. Comme mentionné ci-dessus, les threads qui rivalisent pour les mêmes ressources peuvent présenter un certain nombre de comportements différents tandis que d’autres scénarios se déroulent favorablement (jusqu’à 20% de temps d’exécution globale de processus plus rapide dans les tests favorables à HT). Il existe des cas particuliers où HT peut avoir un ralentissement significatif (concurrence sévère des ressources) mais la plupart du temps, les ralentissements semblent se situer dans la marge d’erreur des tests. Comme toujours, il est important de trouver des tests similaires aux tâches que l’on s’attend à effectuer pour déterminer les effets de HT sur les performances globales et si cela vaut la peine d’avoir activé ou non.
Je ne voulais pas dire exécuter une charge de travail avec ou sans hyper-threading. C’est testé tout le temps (Core i5 vs i7). Je voulais dire exécuter deux charges de travail différentes (quelque chose de point flottant lourd comme Raytracing et Integer Heavy comme la compilation C ++ parallèle), où nous pourrions éventuellement voir ces résultats de “ne pas ralentir les autres threads”.
De votre réponse ci-dessus (20% de processus global plus rapide) Je vois que nous parlons toujours de différentes choses. Parfois, vous ne vous souciez pas des progrès globaux, mais d’une seule tâche (qui peut être un ou plusieurs fils, n’a pas vraiment d’importance, tant qu’il ne peut pas creuser l’ensemble du processeur).
Avant l’hyper-lancement, vous pouvez exécuter des projets informatiques distribués tout le temps en arrière-plan. Ils ont été courus avec une priorité inactive, donc ils n’ont pas ralenti les choses (du moins pas tellement que vous remarqueriez). De nos jours, cela ne fonctionne pas, car avoir des fils DC qui courent avec d’autres trucs sur des noyaux hyper-thread ralentira les autres choses.
Un autre exemple de Real Life: sur mon DVR basé sur MythTV, j’ai dû limiter la détection commerciale d’arrière-plan pour utiliser un seul fil sur un 4C / 8T i7 4771, car l’utilisation de plus n’interfère avec la lecture HD, qui pèse presque entièrement quatre threads (je ne sais pas pourquoi il n’utilise que quatre threads seulement. Peut-être que celui qui le codait ne fait pas confiance à l’hyper-threading. S’il utilisait les 8 threads, il n’y aurait pas de problème). N’aide pas que la détection commerciale soit exécutée avec des valeurs élevées élevées, elle vole toujours du temps à la tâche de premier plan plus importante d’obtenir des images en douceur à la télévision.
Je crois que c’est le genre de situation que l’affiche originale demandait sur. Dans cette situation, l’hyper-threading ralentit les choses d’une manière qu’il ne fait pas dans le cas non-lancement d’hyper. Vous pouvez blâmer l’utilisateur d’être stupide ou d’être stupide et de dire que tout fonctionne comme conçu. Je ne suis pas en désaccord et je ne m’en soucie pas. J’essaye juste de répondre à la question originale .
Plus d’options
Netmasteroc3
Ars Praefectus
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29457345 # P29457345: TCEZXJMB a déclaré:
Jlarja [/ url] “: tcezxjmb]
Un autre exemple de Real Life: sur mon DVR basé sur MythTV, j’ai dû limiter la détection commerciale d’arrière-plan pour utiliser un seul fil sur un 4C / 8T i7 4771, car l’utilisation de plus n’interfère avec la lecture HD, qui pèse presque entièrement quatre threads (je ne sais pas pourquoi il n’utilise que quatre threads seulement.
La plus grande question dans mon esprit, c’est pourquoi cela prend-il 4 fils et beaucoup de temps pour lire le contenu HD.
Lecture de 1080 h.264 et h.265 Le contenu n’est pas si exigeant, et vous avez beaucoup de beaucoup de CPU pour le gérer. Ou parlez-le autrement, la lecture du contenu 1080p sur mon ordinateur ne mange que 10% de mon temps de CPU (i5-2500k) et je peux encoder du contenu 1080p en temps réel et regarder le contenu 1080p en même temps et la lecture reste fluide et l’encoder reste la façon dont il devrait être. L’affaire est essentiellement la même sur mon i7-4980hq dans mon MBP.
Plus d’options
Jlarja
Ars Centurion
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29457527 # P29457527: CKO73P2V a déclaré:
NetmasteroC3 [/ url] “: cko73p2v]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29457345 # P29457345: CKO73P2V a déclaré:
Jlarja [/ url] “: cko73p2v]
Un autre exemple de Real Life: sur mon DVR basé sur MythTV, j’ai dû limiter la détection commerciale d’arrière-plan pour utiliser un seul fil sur un 4C / 8T i7 4771, car l’utilisation de plus n’interfère avec la lecture HD, qui pèse presque entièrement quatre threads (je ne sais pas pourquoi il n’utilise que quatre threads seulement.
La plus grande question dans mon esprit, c’est pourquoi cela prend-il 4 fils et beaucoup de temps pour lire le contenu HD.
Lecture de 1080 h.264 et h.265 Le contenu n’est pas si exigeant, et vous avez beaucoup de beaucoup de CPU pour le gérer. Ou parlez-le autrement, la lecture du contenu 1080p sur mon ordinateur ne mange que 10% de mon temps de CPU (i5-2500k) et je peux encoder du contenu 1080p en temps réel et regarder le contenu 1080p en même temps et la lecture reste fluide et l’encoder reste la façon dont il devrait être. L’affaire est essentiellement la même sur mon i7-4980hq dans mon MBP.
Il n’utilise pas la méthode la plus optimale (car cela ne peut apparemment pas gérer le H cassé.264 qui sort du connecteur de télévision par câble de temps en temps) et il fait également un autre traitement (la déterisation est probablement l’étape la plus exigeante). Aucune accélération matérielle (partie de ce “n’utilisant pas la méthode la plus optimale”). De plus, le débit binaire est souvent plus élevé que ce que vous voyez dans le contenu diffusé ou téléchargeable (4-5 gb / heure est tout à fait normal je pense).
Edit: généralement la charge est d’environ deux threads entièrement utilisés, soit dit en passant. Le boîtier à quatre fils se produit juste assez souvent pour être gênant. D’autant plus qu’il ne saute pas simplement les cadres ou ne bégaiement pas, il met souvent fin à la lecture (peut-être que MythTV pense que l’enregistrement s’est terminé, je ne sais pas).
La lecture des mêmes fichiers avec VLC fonctionne beaucoup mieux, sauf lorsque VLC refuse de les jouer. C’est incroyablement difficile de regarder la télévision ces jours-ci.
Plus d’options
mettre en forme
Ars legatus legionis
Indicateur++
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29457345 # P29457345: 2MVY04FA a dit:
Jlarja [/ url] “: 2mvy04fa]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29453201 # P29453201: 2MVY04FA a dit:
FITTEN [/ url] “: 2mvy04fa]
[url = http: // arstechnica.com / civis / Viewtopic.php?P = 29450801 # P29450801: 2MVY04FA a dit:
Jlarja [/ url] “: 2mvy04fa]
Quelqu’un sait-il si cela a été testé récemment?
Il a été beaucoup testé au fil des ans (facilement trouvé en recherchant Google). Les résultats varient en fonction des charges de travail et des algorithmes. Comme mentionné ci-dessus, les threads qui rivalisent pour les mêmes ressources peuvent présenter un certain nombre de comportements différents tandis que d’autres scénarios se déroulent favorablement (jusqu’à 20% de temps d’exécution globale de processus plus rapide dans les tests favorables à HT). Il existe des cas particuliers où HT peut avoir un ralentissement significatif (concurrence sévère des ressources) mais la plupart du temps, les ralentissements semblent se situer dans la marge d’erreur des tests. Comme toujours, il est important de trouver des tests similaires aux tâches que l’on s’attend à effectuer pour déterminer les effets de HT sur les performances globales et si cela vaut la peine d’avoir activé ou non.
Je ne voulais pas dire exécuter une charge de travail avec ou sans hyper-threading. C’est testé tout le temps (Core i5 vs i7). Je voulais dire exécuter deux charges de travail différentes (quelque chose de point flottant lourd comme Raytracing et Integer Heavy comme la compilation C ++ parallèle), où nous pourrions éventuellement voir ces résultats de “ne pas ralentir les autres threads”.
De votre réponse ci-dessus (20% de processus global plus rapide) Je vois que nous parlons toujours de différentes choses. Parfois, vous ne vous souciez pas des progrès globaux, mais d’une seule tâche (qui peut être un ou plusieurs fils, n’a pas vraiment d’importance, tant qu’il ne peut pas creuser l’ensemble du processeur).
Avant l’hyper-lancement, vous pouvez exécuter des projets informatiques distribués tout le temps en arrière-plan. Ils ont été courus avec une priorité inactive, donc ils n’ont pas ralenti les choses (du moins pas tellement que vous remarqueriez). De nos jours, cela ne fonctionne pas, car avoir des fils DC qui courent avec d’autres trucs sur des noyaux hyper-thread ralentira les autres choses.
Un autre exemple de Real Life: sur mon DVR basé sur MythTV, j’ai dû limiter la détection commerciale d’arrière-plan pour utiliser un seul fil sur un 4C / 8T i7 4771, car l’utilisation de plus n’interfère avec la lecture HD, qui pèse presque entièrement quatre threads (je ne sais pas pourquoi il n’utilise que quatre threads seulement. Peut-être que celui qui le codait ne fait pas confiance à l’hyper-threading. S’il utilisait les 8 threads, il n’y aurait pas de problème). N’aide pas que la détection commerciale soit exécutée avec des valeurs élevées élevées, elle vole toujours du temps à la tâche de premier plan plus importante d’obtenir des images en douceur à la télévision.
Je crois que c’est le genre de situation que l’affiche originale demandait sur. Dans cette situation, l’hyper-threading ralentit les choses d’une manière qu’il ne fait pas dans le cas non-lancement d’hyper. Vous pouvez blâmer l’utilisateur d’être stupide ou d’être stupide et de dire que tout fonctionne comme conçu. Je ne suis pas en désaccord et je ne m’en soucie pas. J’essaye juste de répondre à la question originale .
J’avais en fait tapé un peu à ce sujet dans l’autre message mais je l’ai supprimé. Stokes a des présentations HT ici sur ARS qui sont bonnes à lire / regarder. Cependant, dans l’explication la plus simple, les instructions des deux flux d’instructions HT sont émises pour combler les «lacunes» dans les ressources inactives du processeur. Certaines des instructions des deux flux auront besoin des mêmes ressources en même temps. Lorsque cela se produit, cette affirmation deviendra nécessairement sérialisée pour ces instructions. Dans un monde parfait (ou avec suffisamment de ressources), ils pourraient être émis en parallèle et aucun impact ne sera vu. Cependant, si chaque noyau avait simplement 2x les ressources dont il avait besoin, ce serait effectivement deux noyaux physiques distincts, alors pourquoi ne pas simplement faire deux cœurs séparés?
Pensez au vieux temps de découpage de temps simple sur un seul noyau (noyau fileté). Si le fil cachait un io attendez, par exemple, le système d’exploitation pourrait préempter ce fil et en planifier un autre. Tout cela était au niveau du système d’exploitation. Cependant, le système d’exploitation ne pouvait pas vraiment voir au niveau du cache, et il ne voulait pas non plus, car les frais généraux pour planifier une autre tâche de découpage du temps sont énormes par rapport à une miss de cache, par exemple. Alors maintenant, nous avons SMT / HT qui est dans le matériel et * peut * voir au niveau des ratés de cache uniformes et des stands de danger d’exécution (cycles d’horloge à un chiffre) et peut émettre des instructions à partir de plusieurs threads / contextes matériels pour profiter des ressources matérielles de base inactive.
Alors étendez-vous (un ensemble idéalisé d’exemples simplifiés. Supposons que toutes les ressources de base sont les mêmes. Comme toutes les ressources de type entier, ignorez le point flottant ou autres). Si vous avez deux threads identiques qui fonctionnent de manière à ce qu’il n’y ait pas de stands (données ou autres) et que le noyau n’a pas de ressources supplémentaires sur ce qu’un thread peut utiliser (ce n’est pas le cas avec les processeurs HT actuels. Ils en ont plus) alors les fils prendront chacun de façon hypothétique 2x aussi longtemps, Wallclock, en supposant une planification parfaitement juste (prendre une instruction d’un flux, puis l’un de l’autre, répéter) pour terminer car c’est comme mélangeant deux decks de cartes ensemble dans un mélange parfait. Le jeu de cartes final est 2x aussi haut que l’un des decks d’origine car maintenant il y a 2x le nombre de cartes dans le deck résultant (comparable à 2x le temps d’exécution WallClock).
Maintenant, plus il y a de stands qui se produisent (ou plus un noyau a de ressources. ou les deux) signifier plus que plus les ressources peuvent être inactives pour un thread où l’autre thread pourrait s’exécuter sans affecter l’exécution du premier thread. Vous pouvez ensuite entrer dans une situation où l’exécution du deuxième thread n’a eu aucun impact sur l’exécution du premier thread jusqu’à la durée d’exécution de bout en bout de ce que le premier thread aurait rencontré même si le deuxième thread n’existait pas. Le fil aurait connu le même temps d’exécution WallClock exactement avec ou sans l’exécution de l’autre thread HT. Ce deuxième scénario serait également le même que d’avoir deux noyaux physiques, chacun avec un seul contexte (comme nous l’avons dans plusieurs processeurs non-HT aujourd’hui) ou un noyau 1C / 2T avec deux fois les ressources de base que tout fil pourrait utiliser, ou une quantité parfaite de stands / missions de cache, etc.
La réalité est donc quelque part entre les deux, mais nous pouvons concevoir des scénarios (peut-être artificiels) où le meilleur cas de la pénalité de temps d’exécution de Wallclock est de 0% et le pire est, disons, à 100%. Ce que l’on peut vivre dans l’exécution de Wallclock d’un seul thread dépend fortement des ressources de base et des deux flux d’instructions du thread. Les processeurs HT n’ont pas tendance à avoir 2x la quantité de ressources qu’un seul thread pourrait jamais utiliser. Les flux d’instructions n’ont pas un ensemble parfait de besoins de ressources / stands / missions de cache afin que plusieurs flux d’instructions puissent être entrelacés d’une manière qu’aucun thread n’est affecté par les autres. D’un autre côté, les processeurs HT peuvent profiter d’une granularité “d’attente” dans un processeur qui n’est pas visible au niveau du système d’exploitation et qui serait trop coûteux pour profiter, en tout cas (découpage de temps), afin d’améliorer le débit de plusieurs threads d’exécution. Bien que tout fil donné puisse ressentir un temps d’exécution WallClock plus long, la tâche globale (les deux / tous les fils ensemble) peut ressentir un temps d’exécution Wallclock plus court par rapport à ne pas avoir HT. Étant donné le très dépendant de la nature de la charge de travail de la question, j’hésiterais à tenter de deviner à n’importe quel nombre sur le ralentissement de Wallclock à un thread, même en essayant de construire un cas “moyen”.
Cependant. Je dirais que si vous êtes préoccupé par le temps d’exécution de Wallclock d’un seul fil, alors désactiver (ou ne pas avoir) HT serait probablement la voie à suivre. Si vous êtes préoccupé par les performances globales du système, le temps d’exécution de Wallclock d’une tâche ou de plusieurs tâches simultanées, alors l’activation de HT serait probablement la voie à suivre. Je sais par expérience personnelle que les machines virtuelles, par exemple, bénéficient très bien de HT. J’ai également écrit un certain nombre d’applications où la frai d’autant de threads que les contextes HT dans un environnement HT montre également de belles augmentations de débit par rapport à la planification uniquement du nombre de threads en tant que noyaux physiques sur le même système. Cependant, à partir du monde du HPC, je sais que même les codes FPU “lourds” ont tendance à être réellement moins lourds qu’on ne le pense (40% des instructions FPU du flux d’instructions sur un code de résolution. les instructions de reste entier). Cependant, dans ces codes, l’utilisation du cache serait un facteur important (réviser efficacement votre cache lorsque vous partagez des threads avec HT) et les missions de cache à la mémoire principale pourraient commencer à être un facteur plus important (algorithmes adaptatifs de taille de cache pourraient y aider, cependant) cependant).