Les nouveaux processeurs AMD Ryzen sont sur le marché et, malheureusement, ils semblent manquer de jeu. Les processeurs Intel sont évidemment encore plus rapides pour les jeux. Bien entendu, les gens n'étaient pas favorables à cela et AMD a déclaré qu'ils mettaient à jour le micrologiciel ou le logiciel permettant d'accélérer l'utilisation de Ryzen pour les jeux.
Corrigez-moi si je me trompe, mais le processeur doit disposer d'un firmware statique pour être compatible avec la norme x64? Si tel est le cas, AMD n'aurait-il pas à optimiser les jeux (logiciels) pour leurs processeurs, ce qui est évidemment impossible? Qu'est-ce qui se passe là-bas pour dire de telles choses s'il semble impossible de voir les conditions sous-jacentes?
Mais je peux me tromper (je l’espère) alors la question est:
Est-il possible d'obtenir une accélération pour un processeur sans changer le matériel sous-jacent? Si c'est possible, comment cela se fait-il? Existe-t-il un logiciel à côté du microprogramme pour le processeur?
Réponses:
Les processeurs modernes sont beaucoup plus compliqués qu'on pourrait le penser. Ils sont incroyablement compliqués, au-delà de la compréhension d'une seule personne. En développant une courte remarque de "horta", on pourrait avoir tout ce qui suit:
Pour commencer, presque tout le matériel interne est configurable dans une large mesure. Il existe des milliers et des milliers de registres de configuration avec des zillions de bits individuels qui doivent être définis pour qu'un processeur puisse fonctionner. Toutes les couches d’interaction entre le processeur et la mémoire cache ont des pipelines configurables, et divers retards de synchronisation ont évidemment une incidence sur les performances globales.
Il y a des centaines de fonctionnalités avancées proposées par les architectes que les ingénieurs n'ont pas eu le temps de valider. Des centaines de fonctionnalités sont donc désactivées ou configurées en mode de sécurité avec des "morceaux de poulet" . Mais ils peuvent être ajustés et activés s’ils sont jugés fonctionnels et utiles. Ces fonctionnalités améliorées sont généralement validées en profondeur dans le temps et peuvent être progressivement activées tout au long de la vie d’un processeur par divers correctifs de microcode.
Toutes les UC récentes disposent de plusieurs unités internes contrôlées par des microprocesseurs indépendants intégrés à la puce de l’UC x86. L'unité apparue publiquement est l'unité centrale. Les processeurs modernes ne peuvent pas fonctionner sans une gestion de puissance agressive, sinon ils vont fondre. Cependant, une gestion de l'alimentation en profondeur est en contradiction avec une stratégie agressive entrée / sortie horloge / tension, et les modifications apportées à la stratégie affectent fortement les performances globales du système. Tous les détails sont contrôlés par l'unité P et peuvent être optimisés / réglés en chargeant un autre patch de microcode, comme expliqué ici.
De nombreux autres aspects de l'interconnexion interne sont contrôlés par divers processeurs intégrés supplémentaires, qui peuvent être corrigés en y chargeant des correctifs de microcode ou en mettant à niveau le BIOS s'il dispose d'un accès à ces ressources de configuration.
En résumé, bien que le matériel de la CPU soit effectivement câblé, la configuration de celui-ci définit en grande partie ses performances et peut être optimisée pour améliorer les performances du système au moyen de mises à jour du BIOS et de correctifs de microcode intégrés.
la source
Divers problèmes logiciels au niveau du système d'exploitation et des applications entraînent des performances sous-optimales.
Les processeurs Ryzen à huit cœurs sont constitués de deux complexes principaux (CCX) dotés chacun de quatre cœurs et de 8 Mo de cache L3. L'accès au cache L3 sur un autre CCX est plus lent en raison de la nécessité de déplacer les données plus loin le long de la structure Infinity Fabric (interconnexion cohérente avec cache propriétaire d'AMD), ce qui signifie que le déplacement de threads d'un CCX à un autre ou la performance réduite. Cette pénalité rappelle ce qui se produirait sur un serveur multi-socket exécutant un système d'exploitation qui n'est pas au courant de NUMA .
Il semble que Windows ait tendance à déplacer simplement les processus autour de différents cœurs et ne reconnaisse pas la pénalité de communication inter-CCX . Cela signifie que Windows peut mettre des threads sur différents CCX même si cela n’est pas nécessaire , ce qui réduit les performances.
Un critique allemand, PC Games Hardware, a testé un Ryzen 7 1800X avec un nombre variable de cœurs désactivés et a constaté qu’avoir deux CCX avec deux cœurs activés produisait des performances plus lentes que si un CCX était activé avec tous ses cœurs intacts:
Ceci en dépit du fait qu’un seul CCX activé signifie que seulement 8 Mo de cache L3 sont disponibles, au lieu des 16 Mo complets. De l'article sur le matériel relatif aux jeux pour PC via Google Translate (caractères gras ajoutés):
Cet article de PC Perspective montre qu'il existe une latence de communication importante entre les cœurs de différents CCX, mais très peu de latence lors de la communication avec des cœurs du même CCX. Notez que cet article suggère que Windows est au courant de la conception de CCX et évite la planification de threads sur différents CCX, mais des résultats contradictoires ont été détectés par les membres de la communauté.
De nombreux tests de jeu (mais pas tous) montrent des performances accrues lorsque SMT est désactivé. Cependant, des rumeurs selon lesquelles Windows ne planifie pas correctement comme si chaque thread matériel était son propre noyau sont incorrectes . Selon AMD, cela est dû au fait que de nombreuses applications sont optimisées uniquement pour les processeurs Intel (ce qui n’est pas surprenant étant donné que AMD est MIA depuis cinq ans sur le marché des processeurs haut de gamme). AMD affirme travailler avec des centaines de développeurs de jeux pour améliorer les performances des processeurs Ryzen. Cependant, je soupçonne qu'une mise à jour Windows peut toujours aider en ajustant plus finement le planificateur en fonction des caractéristiques de l' architecture Zen .
L' exemple suivant de Tom's Hardware illustre une dégradation des performances avec SMT activé:
TechSpot a effectué une analyse approfondie des performances de jeu avec SMT activé et désactivé et a abouti à des résultats très similaires:
Des problèmes de gestion de l'alimentation sont également impliqués dans ces tests. La même déclaration d’AMD indique que Windows n’est pas pleinement au courant des nouvelles fonctionnalités de Ryzen, telles que le stationnement de base et la commutation de fréquence d’horloge rapide. Cela correspond aux améliorations de performances signalées par Tom's Hardware lors de l'utilisation du plan d'alimentation hautes performances (voir le tableau ci-dessus, HP = hautes performances). Une mise à jour vers Windows peut prendre en charge ces fonctionnalités et améliorer les performances.
la source
http://wccftech.com/amd-ryzen-launch-aftermath-gaming-performance-amd-response/
La vraie question n'est donc pas de savoir comment une mise à jour du BIOS / du micrologiciel peut accélérer le traitement d'un processeur (optimisation du microcode, etc.) ... plus
la source
Le BIOS est généralement considéré comme un micrologiciel. Le BIOS peut transformer toutes sortes de bits dans le matériel pour modifier le fonctionnement du système.
Donc, oui, il est tout à fait possible pour eux de sortir de nouveaux microprogrammes et des choses comme la vitesse d'horloge, ou si les prélèvements sont activés, ou si un certain noyau - ou IIO - peut obtenir certaines préférences dans le cache qui pourraient potentiellement améliorer les performances de jeu grâce à à la plupart des jeux étant conçus d'une manière mono-thread.
la source
Ce n'est pas tellement que les mises à jour logicielles vont accélérer le processeur. Tout le monde s’attend à ce que les mises à jour logicielles rendent le logiciel plus adapté à l’architecture de Ryzen et lui permettent de mieux exploiter ses performances.
Presque. Il existe un logiciel dans la CPU (le microcode, comme mentionné ci-dessus) et cela peut influer sur les performances. Fondamentalement, X86 ne spécifie que les résultats des opérations. Le problème des ingénieurs est précisément ce que la CPU obtient pour obtenir ces résultats. Les chances que les ajustements de microcode jouant un rôle majeur avec Ryzen soient minces sont minces, car l’écart de performances semble s’appliquer principalement aux jeux, ce qui suggère que les processeurs fonctionnent bien, mais certains jeux en particulier ne les exploitent pas bien.
Le système d’exploitation est chargé d’essayer de s’assurer que les programmes sont bien répartis sur l’unité centrale, ce qui peut avoir une incidence sur les performances, mais dans l’ensemble, aucun de ces facteurs n’est le principal problème d’une nouvelle architecture. La plupart des améliorations de performances dans de tels cas résultent de l'écriture par les développeurs d'un code mieux adapté à la nouvelle architecture. Cela ne se produit généralement pas entre les générations de processeurs Intel, car les modifications apportées à la conception ne sont pas extrêmement importantes. Par conséquent, ce qui fonctionne bien sur l'un fonctionnera probablement bien sur l'autre.
Cependant, Ryzen est un nouveau design novateur, de sorte que tout ce qui a été écrit pour convenir aux autres processeurs, par définition, n’a pas été écrit pour convenir à Ryzen.
Pour simplifier excessivement la situation, imaginez deux processeurs:
Processor One est sur le marché depuis un certain temps et est (pour une raison quelconque) très très rapide pour ajouter des chiffres. Le logiciel est conçu pour utiliser autant que possible l'addition, afin de tirer parti de cette capacité.
Un processeur concurrent atterrit sur le marché et est plus faible en addition, mais plus fort en multiplication. Tous les logiciels optimisés pour utiliser des instructions plus lourdes d’ajout fonctionnent mal sur le nouveau processeur, mais les logiciels qui n’ont pas été conçus pour utiliser l’addition multiple fonctionnent plus ou moins de la même manière. Certains logiciels peuvent déjà faire beaucoup de multiplication et feront mieux sur les nouveaux processeurs qu'ils ne le feraient sur Processor One, même le jour du lancement.
Quelque temps après le lancement, les développeurs vont commencer à s’adapter, en utilisant davantage de logiciels de multiplication, voire en concevant leurs logiciels de manière à basculer entre des chemins de code très lourds en additions et des chemins de code en multiplication, en fonction de l’architecture de la CPU utilisée.
C'est un peu ce qui se passe avec Ryzen - c'est une nouvelle architecture que les développeurs de logiciels n'ont pas encore optimisée pour s'adapter à leurs caractéristiques. Avec le temps, les développeurs vont commencer à peaufiner leurs logiciels pour mieux les exploiter. Comme la plupart des logiciels sont déjà conçus pour fonctionner correctement sur les processeurs Intel (ils sont très populaires, après tout!), Ils ne bénéficieront probablement pas beaucoup de ces modifications.
Il existe certaines charges de travail pour lesquelles Intel restera simplement plus rapide, et certaines pour lesquelles Ryzen est déjà plus rapide (et deviendra encore plus rapide) en fonction du comportement sous-jacent. Dans la situation que j'ai décrite ci-dessus, un logiciel qui n'a besoin que d'ajouter des éléments fonctionnera toujours mieux avec le premier processeur, et un logiciel devant multiplier les performances fonctionnera toujours mieux avec le second processeur - mais dans la plupart des cas, le logiciel est complexe et complexe. ces différences se résorberont quelque peu.
Il est également intéressant de noter qu'AMD a déclaré à propos des performances de jeu qu'il travaillait avec les développeurs pour optimiser les jeux. Ils envoient des systèmes de développement aux entreprises (il y en a actuellement 300 dans la nature, et ils envisagent d'en installer 1 000 d'ici la fin de l'année) et parlent à ceux dont les jeux fonctionnent mal pour résoudre le problème. À ma connaissance, aucune déclaration n'a été faite selon laquelle AMD optimise les jeux eux-mêmes.
Dans ce cas particulier, Ryzen empêche également Windows de prendre de mauvaises décisions quant aux cœurs à charger, et les BIOS actuels posent problème pour des raisons que je ne prétends tout simplement pas connaître. Cependant, ces problèmes ne peuvent pas être à l'origine de tout l'écart de performances, car il existe des charges de travail dans lesquelles Ryzen surpasse déjà de manière convaincante la performance d'Intel, ce qui suggère que le problème est au moins partiellement (sinon la plupart) affecté aux programmes particuliers exécutés, plutôt que le système d'exploitation ou le BIOS dans son ensemble.
la source
Bien entendu, les logiciels peuvent améliorer les performances du processeur ou même du processeur graphique.
L'un des moyens est l'overclocking ou un autre mécanisme de modification de l'horloge. Deuxièmement, les optimisations de pilote peuvent être. Celles-ci incluent de meilleures méthodes de compression des données, des algorithmes de décodage plus rapides, etc.… en gros des fonctionnalités qui permettent de mieux utiliser davantage de matériel. Ces fonctionnalités peuvent également être mises à jour par des mises à jour de micrologiciels, qui ne sont pas vraiment des logiciels (normaux). Il existe ensuite un logiciel capable de contrôler la solution de refroidissement de votre ordinateur. Cela est très utile pour les processeurs et les GPU qui utilisent des technologies d'augmentation des performances telles que le Turbo boost d'Intel et le boost de GPU de Nvidia. Un tel matériel a certaines limites de température. Ils réduisent donc leurs performances lorsqu'ils sont trop chauds et overclockent de manière dynamique, lorsque les applications exigent une puissance de calcul supérieure, tant qu'elles n'ont pas atteint leur consommation de puissance maximale et qu'elles '
Il y a aussi d'autres options, mais celles-ci couvrent la plupart du temps. Fondamentalement, tant que vous connaissez le problème et que vous pouvez manipuler de manière programmée la manière dont les données sont traitées (comme l'introduction d'un algorithme de décodage intelligent qui remplace une solution du type "force brute") ou manipuler les réactions du processeur face aux différents facteurs clés de sa performance. (par exemple, augmenter le refroidissement de manière plus agressive en cas de surchauffe ou contrôler les demandes de ressources des applications et s'overclocker de manière dynamique lorsque davantage de puissance de traitement est nécessaire), vous pouvez faire beaucoup pour améliorer (ou détériorer) les performances d'une unité de traitement.
Dans le cas d’AMD, il s’agit probablement d’une optimisation de son mécanisme de boosting ou de sa solution de refroidissement. L'un ou les deux ont probablement été modifiés pour réagir plus agressivement à l'augmentation de la charge ou de la température.
TL; DR: Oui, un logiciel peut améliorer les performances d'un processeur. Il existe de nombreuses façons de procéder, telles que l'optimisation des pilotes et des microprogrammes, l'overclockage, etc. Toute modification de logiciel préparant les données de manière à faciliter le traitement ou à mieux faire réagir le matériel à la charge ou ses limitations entraîneront très probablement des performances accrues.
la source
Les mises à jour logicielles peuvent certainement rendre le système (processeur compris) plus rapide.
Les grands ordinateurs mainframe IBM en sont un exemple extrême: vous pouvez acheter plus de temps CPU en ligne, et vous n’obtenez que la clé de licence que vous devez entrer dans votre système d’exploitation, et boom !, votre système fonctionne plus rapidement. Le truc est simple: parfois, le planificateur refuse simplement de planifier des tâches et laisse le processeur en veille, ou même exécute une boucle NO-OP pendant une courte période, pour atteindre un débit moyen global donné. Si vous payez pour une licence plus chère, le planificateur supprime ces NO-OP.
Ou, encore plus radicalement: si vous achetez un système avec seulement 4, 6 ou 8 processeurs, environ 16 à 32 processeurs seront réellement installés. Le système d’exploitation ferme tout simplement certaines d’entre elles et, en entrant une clé de licence, vous pouvez les activer.
De la même manière, les ordinateurs centraux IBM distinguent différents types de processeurs: processeurs Linux, processeurs Java, processeurs Transaction, etc. Ils sont en fait tous identiques, mais le planificateur de système d'exploitation refuse de planifier les tâches Transaction (les plus importantes) à une heure donnée. Processeur Java ou Linux. Seules les machines virtuelles Java seront planifiées sur les processeurs Java et seules les machines virtuelles Linux seront planifiées sur les processeurs Linux. Si vous souhaitez obtenir des performances Transaction supérieures, vous devez acheter des licences pour plusieurs processeurs Transaction: là encore, ce sont exactement les mêmes processeurs. La seule différence est un indicateur de configuration dans le planificateur qui indique "ne planifiez pas de tâches de transaction pour ces processeurs. ".
Les différentes éditions de Windows sont un autre exemple, pas si extrême. Différentes éditions de Windows prennent en charge un nombre différent de cœurs de processeur et différentes quantités de mémoire. Si vous avez une grande mémoire et un grand nombre de processeurs, vous pouvez rendre votre système plus rapide, simplement en passant à une version "plus grande" de Windows. Notez que les éditions ont exactement le même code; il y a juste un commutateur de configuration quelque part qui indique "vous êtes une édition familiale, vous ne supportez qu'un processeur et 128 Go".
la source