Comme des millions de personnes dans le monde, vous utilisez probablement votre PC pour jouer à des jeux vidéo. Vous avez peut-être beaucoup d'expérience dans la construction et la configuration de systèmes informatiques, car les joueurs sur PC sont souvent compétents et enthousiastes en ce qui concerne le matériel. Alors que diriez-vous de combiner les trois? Prenez le savoir-faire informatique, l'amour des jeux et l'intérêt pour les composants, et mélangez-les tous. C'est une recette parfaite pour plonger dans le fonctionnement d'un PC et voir à quel point il fonctionne.
Dans cet article, nous expliquerons comment vous pouvez utiliser des jeux pour comparer votre PC et ce que vous pouvez faire pour analyser les résultats – soit pour vérifier les performances globales, soit pour voir quelle partie de votre ordinateur effectue la majeure partie du travail. Nous verrons la meilleure façon de collecter les données et comment utiliser les outils que nous utilisons pour vérifier le dernier matériel. Il est temps de passer un test!
C'est plus qu'un simple jeu
Lorsque nous avons examiné 20 programmes pour analyser et comparer votre matériel, certains de ceux qui testent spécifiquement les performances graphiques 3D fournissent des graphiques détaillés des performances et offrent des outils de surveillance pour enregistrer le fonctionnement des différentes pièces. Mais aussi bons que soient ces programmes, ils sont finalement une configuration artificielle: nous ne le faisons pas jouer repères. Nous n'achetons pas 2 000 $ de machines juste pour qu'ils puissent exécuter des programmes de test toute la journée (enfin, plus pas nous).
Mais si vous avez un tas de jeux installés sur votre système, vous pouvez facilement les utiliser à la place – les derniers titres poussent souvent le CPU et le GPU à leurs limites absolues de ce qu'ils peuvent faire, donc ils donnent à votre système un tout aussi bon entraînement comme tout programme de référence.
De nombreux titres ont également leur propre mode de test intégré. Les derniers titres d'Ubisoft dans leurs franchises populaires peuvent exécuter un test défini, puis afficher les résultats avec beaucoup de détails. Dans Assassin's Creed Odyssey, par exemple, l'outil est suffisamment avancé pour que les résultats puissent être comparés à une exécution précédente, de sorte que vous pouvez facilement voir quel est l'impact des modifications apportées au matériel ou aux paramètres du jeu.
Dans l'image ci-dessus, nous pouvons voir 3 graphiques: la fréquence d'images, combien de temps il a fallu au processeur pour traiter chaque image pour le rendu, et le temps qu'il a fallu au GPU pour travailler à travers une image. Il y a aussi quelques statistiques de base, avec la moyenne (la moyenne arithmétique) et les chiffres absolus maximum / minimum indiqués.
Pour les jeux avec des modes de référence, ou ceux qui peuvent afficher des fréquences d'images tout en jouant, la simplicité de ces statistiques est le premier problème avec l'utilisation de telles fonctionnalités dans les jeux. Des valeurs absolues peuvent ne se produire que pour une seule image ou ce chiffre peut être frappé plusieurs fois, à intervalles réguliers. Si les résultats peuvent être visualisés dans un graphique, alors c'est facile à voir, mais si tout ce que vous obtenez sont les chiffres, alors les chiffres eux-mêmes sont presque inutiles.
Un autre problème potentiel lié à l'utilisation d'un test intégré est que la charge de travail placée sur le CPU, le GPU, etc. pourrait ne pas être révélatrice de ce que vous pourriez voir pendant le jeu réel. Le traitement en arrière-plan des variables d'entrée, la recherche de chemin, les pistes audio, etc. sera manquant, et le rendu pourrait ne pas avoir des choses comme des explosions ou d'autres effets de particules, ce qui peut souvent ramener une carte graphique à genoux en silicium.
Si vous voulez juste que quelque chose vérifie rapidement votre système avec, cependant, ce genre de tests et les nombres qu'ils collectent sont assez bons. D'un autre côté, si vous voulez tester ce que fait le PC lorsqu'il passe par une charge de travail réelle, vous feriez mieux d'enregistrer les données dans le jeu lui-même – et pour cela, vous devez utiliser le bon outil pour le travail .
Choisis ton arme!
Il existe un nombre raisonnable de programmes, tous disponibles gratuitement, qui peuvent être utilisés pour enregistrer la vitesse de traitement d'un jeu 3D. Pour les systèmes Windows, Afterburner et FRAPS de MSI sont deux des plus populaires. Le premier est un outil complet pour ajuster les vitesses d'horloge et les tensions des cartes graphiques, et fonctionne sur les modèles AMD et Nvidia; il peut également afficher ces informations, ainsi que les températures et les fréquences d'images, dans une superposition lors de la lecture des jeux (toutes ces données peuvent être enregistrées, pour une analyse ultérieure).
FRAPS peut également afficher et enregistrer la fréquence d'images, ainsi que capturer la sortie vidéo et prendre des captures d'écran, mais il n'a pas été mis à jour depuis 2014. Il est préférable de l'utiliser sur les titres plus anciens, qui utilisent Direct3D 10 ou antérieur, mais étant donné qu'Afterburner couvre cela, aussi, ainsi que les derniers jeux, cela ne vaut probablement la peine que si cela fonctionne.
Nous préférons en fait utiliser un outil appelé OCAT (Open Capture and Analysis Tool): il est fait par AMD, dans le cadre de leur projet GPUOpen, une initiative conçue pour donner aux développeurs l'accès à une gamme d'outils logiciels gratuits et d'échantillons de code. OCAT utilise PresentMon d'Intel, qui est également open source.
Les deux outils sont en développement constant, vous rencontrerez donc parfois un problème ou deux, mais pour afficher et enregistrer les données de fréquence d'images dans Direct3D 11, 12 et les jeux basés sur Vulkan, ils sont très bons dans ce qu'ils font. Nvidia propose également FrameView, qui fait la même chose, mais ce n'est pas open source. Enfin, il y a CapFrameX, qui enregistre également un large éventail de données techniques, mais sa meilleure caractéristique est la trousse d'outils complète pour analyser les données et présenter les statistiques.
Comme Afterburner et FRAPS, OCAT offre une fonction de superposition, où la fréquence d'images et les temps d'image sont affichés.
Lors de l'exécution, la superposition affiche quelle API graphique est utilisée et peut afficher les changements de la fréquence d'images via un petit graphique. Cela peut être quelque peu difficile à voir, donc cela ne vaut pas la peine de l'utiliser.
D'autres outils, comme Afterburner, offrent beaucoup plus de détails dans leurs systèmes de superposition (vitesses d'horloge, températures, etc.), donc si vous voulez simplement surveiller ce qui se passe avec votre PC, pendant que vous jouez à des jeux, OCAT ne le fait pas vous donne beaucoup. Cependant, nous l'utilisons car il capture beaucoup d'informations critiques, puis les traitons et les analysons pour nous.
Pour ce faire, définissez un raccourci clavier pour le processus de capture (assurez-vous d'en choisir un que le jeu n'utilise pas) et, si nécessaire, sélectionnez l'emplacement où vous souhaitez enregistrer les données. C'est une bonne idée de limiter le temps de capture à une valeur fixe, mais nous verrons cela dans un instant.
Les résultats sont stockés dans un fichier .csv (valeurs séparées par des virgules), vous n'avez donc pas besoin d'utiliser OCAT pour parcourir les données – Microsoft Excel, les feuilles de Google, Apache OpenOffice, etc. peuvent tous facilement gérer ce format. Un petit avertissement cependant: le fichier contient un lot de données, et broyez facilement votre PC lorsque vous essayez de travailler à travers tout cela.
Son utilisation est très simple – démarrez d'abord OCAT, puis lancez le jeu avec lequel vous allez tester et appuyez sur la touche de raccourci Capture une fois que vous êtes dans le gameplay. Si vous n'avez pas défini de limite de capture de temps, vous devez appuyer à nouveau sur la touche de raccourci pour arrêter l'enregistrement.
Notez que lorsque vous démarrez et terminez la capture, il y a souvent une baisse momentanée des performances du jeu; il n'y a pas grand-chose que vous puissiez faire à ce sujet, mais au moins cela n'affecte les résultats que pendant quelques millisecondes.
Utiliser ou ne pas utiliser – telle est la question
C'est donc l'enregistrement des taux de trame couverts, mais qu'est-ce qui vaut la peine d'être enregistré? Une question que vous voyez souvent sur les forums à propos du matériel PC est "mon goulot d'étranglement CPU ma carte graphique? ' ou vice versa, et les réponses parlent régulièrement de la surveillance de l'utilisation du CPU et du GPU.
Vous pouvez enregistrer ces données à l'aide de HWMonitor ou Afterburner, mais cela vaut la peine de savoir exactement à quoi se réfère réellement le pourcentage d'utilisation. En gros, c'est une mesure de la durée pendant laquelle les threads d'un noyau (séquences d'instructions dans un bloc de code) sont actuellement traités par le CPU / GPU, en pourcentage du temps alloué à ce thread (vérifié par seconde ou autre intervalle de temps).
Les threads peuvent être activement travaillés («occupés») ou en attente de données du cache / de la mémoire («bloqués») ou terminés («inactifs»). Les threads occupés et bloqués sont classés de la même manière, donc un taux d'utilisation élevé ne signifie pas nécessairement que le processeur est travaillé très dur, et la valeur% ne vous indique pas dans quelle mesure les capacités du processeur sont utilisées.
Nous pouvons le voir en exécutant deux benchmarks GPU différents et en enregistrant tout avec HWMonitor. Le premier test est avec Geekbench 5, qui passe par une série de routines de calcul, toutes effectuées sur la carte graphique.
Si nous regardons la colonne Max dans HWMonitor, l'utilisation du GPU a culminé à 96% – mais faites très attention à la valeur de la puissance. Cela a atteint un maximum de 57,29%, ce qui équivaut à environ 140 W de puissance électrique pour cette carte graphique particulière. Notez également que la température du GPU a augmenté de 9 degrés au-dessus du minimum enregistré.
Maintenant, comparez cela à l'utilisation d'un programme conçu pour vraiment stresser la carte graphique. Nous avons utilisé OCCT, mais vous pouvez utiliser une référence graphique ou un jeu à des niveaux de détail maximum.
Ce test a abouti à un taux d'utilisation de 100%, seulement 4% de plus que dans GeekBench 5, mais les valeurs de puissance et de température sont beaucoup supérieur – le premier étant supérieur de 100 W à celui du test précédent. Ensemble, ils montrent que le GPU fonctionnait de manière beaucoup plus approfondie que dans le précédent benchmark, et cela n'est pas évident à la seule vue de la valeur d'utilisation.
La puissance d'enregistrement peut être un moyen utile d'analyser la charge de travail des composants. L'image ci-dessous affiche les valeurs de puissance du processeur, de la mémoire système et du processeur graphique lors de l'exécution de deux sections de la référence Time Spy Extreme dans 3DMark – celle de gauche est le test du processeur, la droite est pour le test graphique 2.
Nous pouvons clairement voir que le GPU fait relativement peu de travail pour le test CPU, tandis que le processeur central est durement touché (comme prévu, mais notez que la RAM fonctionne également). Ensuite, dans le test conçu pour repousser les limites du GPU, la consommation d'énergie de la carte graphique est pleine – oui, le CPU est encore assez élevé, mais le% de puissance du GPU nous dit qu'il fait beaucoup de travail.
Mais est-ce qu'il fait tout du travail? Comment être certain que le CPU n'affecte pas réellement ce qui est censé être un test uniquement graphique? La réponse est simple: nous ne pouvons pas le dire, pas seulement en regardant les chiffres d'utilisation et / ou de puissance.
Ainsi, bien qu'il n'y ait rien de mal à consigner ces informations, il existe de meilleures façons de déterminer à quel point les différents composants sont utilisés. Et pendant que nous examinons quelles données méritent d'être collectées, regardons ce que l'OCAT fait sous son capot.
Qu'est-ce qui est réellement enregistré pour obtenir la fréquence d'images?
Pour comprendre les données collectées par OCAT, vous devez en savoir un peu plus sur le processus de rendu dans un jeu 3D. Vous pouvez lire une brève introduction sur le sujet, si vous êtes intéressé, mais nous laisserons Nvidia nous donner l'aperçu avec ce diagramme, à partir de la documentation de FrameView:
Pour chaque image qui va être créée par la carte graphique, le moteur du jeu élabore toutes les données et instructions nécessaires pour être envoyées au GPU. Une instruction particulière, dans Direct3D, est appelée Présent – cela indique au processeur d'afficher l'image une fois le rendu terminé.
Tout jeu ou programme qui affiche la fréquence d'images mesure l'intervalle de temps entre les instructions Present successives. Dans cet écart, plusieurs choses se produisent:
- L'API graphique (Direct3D, OpenGL, Vulkan, etc.) convertit les instructions générales du moteur de jeu en un ensemble plus détaillé et complexe d'algorithmes
- Le pilote de la carte graphique les convertit ensuite en différents codes pour le GPU
- Ensuite, le GPU fonctionne ensuite à travers tout le code, puis marque le cadre terminé prêt pour l'affichage
- La partie de sortie du GPU envoie ensuite l'image au moniteur, quand dessine le cadre lors du prochain rafraîchissement de l'écran
- Et pendant que cela se passe, le moteur de jeu a déjà commencé, voire terminé, la préparation de la prochaine image
Ainsi, le temps entre les instructions Present () n'est pas une mesure de la vitesse à laquelle le GPU rend le rendu d'une image, ou pas directement, du moins. Cependant, comme ce traitement prend presque toujours beaucoup plus de temps que tout le reste, c'est une estimation assez proche.
PresentMon, OCAT et FrameView mesurent de nombreux intervalles de temps différents, plusieurs fois par seconde, et les enregistre dans le fichier .csv. Nous verrons cela lorsque nous analyserons certains résultats plus tard, mais ce sont les principaux temps enregistrés:
En-tête de colonne CSV | Quel est l'intervalle de temps |
MsInPresentAPI | Le nombre de millisecondes que le code a passé à passer par l'instruction Present () |
MsUntilRenderComplete | Écart, en millisecondes, entre le moment où l'instruction Present () a été émise et le moment où le GPU a terminé le rendu de l'image |
MsUntilDisplayed | Nombre de millisecondes entre l'émission de l'instruction Present () et l'affichage de la trame |
MsBetweenPresent | Combien de millisecondes il y avait entre le dernier Present () émis et le courant |
MsBetweenDisplayChange | Écart de temps entre la dernière image affichée et la photo actuelle affichée, en millisecondes |
Lorsque nous montrons les fréquences d'images, dans les revues de matériel, nous avons utilisé les données MsBetweenPresent; OCAT prend automatiquement cette valeur par défaut, et c'est le même chiffre que celui utilisé par d'autres outils et jeux de journalisation, lorsqu'ils affichent des fréquences d'images.
Mais remarquez comment tout cela est fois: comment cela se transforme-t-il en une fréquence d'images (fps = images par seconde)? Le calcul est simple, car il y a 1000 millisecondes en 1 seconde, vous divisez 1000 par l'heure actuelle.
Par exemple, si la valeur de MsBetweenPresent était une constante de 50 millisecondes, la fréquence d'images affichée serait 1000/50 = 20 ips. Donc, si vous visez 60 fps ou 144 fps, l'intervalle de temps devra être respectivement de 17 et 7 millisecondes.
Adopter l'approche scientifique de l'analyse comparative
Bien que l'analyse comparative de votre PC ne soit pas assez de même que la recherche en physique des particules au CERN, nous pouvons encore utiliser certains aspects fondamentaux de la méthode scientifique pour la collecte et l'analyse des données. La première partie de ceci est de minimiser le nombre de variables qui peuvent changer et avoir un impact sur le résultat du test.
Dans un monde idéal, vous voudriez que l'ordinateur ne fasse rien de plus que d'exécuter le jeu et le logiciel de journalisation – c'est ce que nous faisons lorsque nous testons le dernier matériel, car nos machines de test sont utilisées uniquement pour l'analyse comparative. Cela peut ne pas être possible pour la plupart des ordinateurs personnels, mais vous pouvez faire certaines choses pour aider:
- N'avoir que le nombre minimum de programmes ouverts pour les tests et la surveillance
- Quittez les programmes d'arrière-plan non essentiels, tels que les logiciels de chat ou les services cloud, tels que Discord et OneDrive
- Suspendre les programmes antivirus ou les configurer pour bloquer tout le trafic réseau
- Configurer les mises à jour logicielles ou les systèmes de sauvegarde pour synchroniser leurs actions en dehors du moment de l'analyse comparative
La prochaine chose à faire est de s'assurer que l'environnement de test est le même que celui expérimenté pendant le gameplay normal. Cela peut sembler nous contredire, étant donné ce que nous venons de dire sur la réduction des variables, mais nous faisons référence au fait que le matériel moderne modifie activement les vitesses d'horloge et les tensions de fonctionnement, en fonction de la température à laquelle ils fonctionnent.
Les cartes graphiques sont particulièrement sujettes à cela, car le GPU peut devenir très chaud lorsqu'il fonctionne. Une fois qu'ils ont atteint leurs limites de chaleur prédéterminées, le matériel commencera à abaisser les horloges pour s'assurer que la puce ne surchauffe pas. Nous pouvons le voir clairement dans l'image ci-dessus: à mesure que la température de la puce a augmenté, la vitesse d'horloge a diminué pour maintenir les niveaux de chaleur sous contrôle.
Bien sûr, cela signifie que les performances diminueront également, mais en préchauffant tous les composants clés du PC (CPU, RAM, GPU), les horloges devraient être un peu plus cohérentes. La façon la plus simple de le faire est d'exécuter le jeu que vous allez tester pendant au moins 5 minutes, avant de commencer à enregistrer des données.
Une autre chose à garder à l’esprit est que, même avec toutes les précautions ci-dessus en place, les résultats des tests toujours varier. Cela peut être dû au jeu que vous utilisez, ou à un processus d'arrière-plan normalement dormant, apparaissant pour vous dire bonjour. C'est pourquoi il est important de collecter plusieurs ensembles de données – effectuez plusieurs tests, au moins 3, afin de pouvoir calculer une moyenne.
C'est quelque chose que nous toujours faire dans nos tests de matériel. Faire plus de 3, c'est mieux, mais faire quelque chose comme 10, est peu susceptible de procurer des avantages. C'est parce que les variations elles-mêmes sont généralement assez petites, à condition que l'environnement de test soit contrôlé, et une fois que vous avez plusieurs milliers de données, la valeur impaire impaire n'aura pas beaucoup d'impact sur les statistiques.
La dernière chose à considérer est la quantité de données à collecter à chaque test. Le temps alloué pour la journalisation doit être suffisamment grand pour être représentatif de ce qui se passe normalement, mais pas si grand que vous perdez juste un temps de test précieux. Pour le démontrer, nous avons prélevé 3 échantillons de données de fréquence d'images à l'aide d'Assassin's Creed Syndicate d'Ubisoft.
Nous avons choisi un emplacement dans le jeu qui nous a permis de répéter facilement le test et de configurer l'OCAT pour capturer les données pendant 10, 100 et 1000 secondes. Nous allons vous montrer comment nous avons obtenu les chiffres suivants, et ce qu'ils signifient tous, dans un instant, mais pour l'instant, voici les résultats:
Durée de la collecte des données | 10 secondes | 100 secondes | 1000 secondes |
Fréquence d'images moyenne (fps) | 59,8 | 60,0 | 60,0 |
1% faible (fps) | 33,8 | 54,0 | 54,0 |
99% élevé (fps) | 120,4 | 66,9 | 66,5 |
Écart type de temps de trame (ms) | 2,97 | 0,62 | 0,58 |
Nous pouvons voir qu'il n'y a pratiquement aucune différence dans les fréquences d'images moyennes, mais la séquence de 10 secondes donne apparemment une plage beaucoup plus large (de 33,8 à 120,4 ips). Cette même variation était probablement dans les autres séries, mais parce qu'elles contiennent beaucoup plus de données, la statistique son impact est considérablement réduit. C'est ce que vous obtenez quand vous jouez à des jeux de toute façon – après tout, qui joue pendant seulement 10 secondes?
Cependant, notez que les nombres de 100 et de 1000 secondes sont presque des copies conformes les unes des autres. Donc, pour ce test particulier, la collecte de données pendant plus de 16 minutes a produit des statistiques non différentes de celles de la course 10 fois plus courtes.
Présenté par la lettre S et le chiffre 1
Nous avons mentionné le mot statistiques à plusieurs reprises maintenant, nous devons donc passer à l'obtention de données à analyser avec les mathématiques.
Supposons que nous avons déjà sélectionné un jeu pour tester et capturé toutes les données dont nous avons besoin. Nous pouvons maintenant utiliser OCAT pour analyser les résultats pour nous, et pour ce faire, dirigez-vous vers l'onglet «Visualiser»:
Cliquez simplement à l'endroit où il est écrit «Sélectionnez le fichier de capture à visualiser», sélectionnez le fichier .csv requis, puis appuyez sur le bouton «Visualiser». Nous avons fait un test rapide dans Assassin's Creed Odyssey, enregistrant les différents temps de trame à partir du benchmark intégré du jeu; le test a été configuré à une résolution 4K, avec les paramètres graphiques sur Ultra High.
Par défaut, OCAT affiche les nombres MsBetweenPresent sur la durée de la journalisation sous la forme d'un graphique lissé.
Il pourrait ne pas sembler lissé, mais 2629 points de données ont été collectés et le graphique serait beaucoup plus compliqué s'ils étaient tous affichés. Plus les temps de trame sont bas, meilleures sont les performances.Nous pouvons donc voir que l'indice de référence commence à environ 18 millisecondes (ce qui équivaut à 56 ips) avant de chuter à 26 millisecondes raisonnablement cohérentes (38 ips) pour le reste du test. .
Vous pouvez sélectionner plusieurs fichiers .csv de capture à analyser: il vous suffit d'en charger un pour commencer, puis d'utiliser à nouveau le bouton «Sélectionner le fichier de capture». Cela facilite la comparaison des temps d'image entre différents scénarios ou jeux – par exemple, l'image ci-dessous montre les lectures du dernier MotoGP 20 de Milestone (la ligne verte) et Shadow of the Tomb Raider (ligne orange).
Les deux jeux ont été exécutés à une résolution 4K et avec chaque option graphique réglée à son plus haut niveau, qui comprenait l'utilisation d'ombres DLSS et de rayons tracés pour Tomb Raider. Nous pouvons voir que ce jeu s'exécute lentement à partir des temps d'image, mais notons également à quel point les temps rebondissent. Comparez cela au MotoGP 20, où les images prennent 14 millisecondes très cohérentes.
En plus de tracer les résultats, l'OCAT peut faire une analyse statistique de base pour nous. En cliquant sur le bouton «Capturer les statistiques», nous pouvons voir une variété d'options. Les deux que nous recherchons sont «FPS moyen» et «99e centile». OCAT calcule la moyenne des images par seconde (FPS) en calculant la moyenne arithmétique des temps MsBetweenPresent. Cela se fait en additionnant tous les temps collectés, puis en divisant la somme par le nombre de points de données collectés.
La conversion en fréquence d'images est la même que celle que nous avons décrite précédemment: divisez 1 000 par le temps. Dans ce cas, la moyenne de MsBetweenPresent était de 24,88 millisecondes, ce qui donne la fréquence d'images moyenne suivante:
Le FPS moyen, à lui seul, brosse un très mauvais tableau des données. En effet, la moyenne (dans ce cas, la moyenne arithmétique) n'est qu'une statistique – en particulier, c'est une mesure de quelque chose appelé tendance centrale. Il s'agit d'une valeur autour de laquelle l'échantillon de nombres a tendance à se regrouper.
Il existe d'autres moyennes, telles que la moyenne géométrique, la médiane, les valeurs modales, etc. Cependant, l'OCAT ne les calcule pas, donc si vous êtes intéressé par d'autres mesures de tendance centrales, vous devrez examiner les données avec un autre logiciel.
Le programme d'AMD calcule le 99e centile des temps de trame. Les centiles sont des valeurs qui vous renseignent sur Distribution des nombres, dans l'échantillon. Et dans le cas du 99e centile, la valeur indique que 99% de tous les temps de trame sont inférieur que cette fois – seulement 1% des temps de trame étaient plus élevés que cela.
Dans notre test Assassin's Creed, le 99e centile était de 31,65 millisecondes. Maintenant, rappelez-vous que plus la durée de la trame est longue, plus la trame est lente taux? Donc, si nous transformons cela en une valeur fps, nous obtenons le centile de 1% pour les fréquences d'images et cela revient à 1000 / 31,65 = 31,60 fps (coïncidence, honnête!).
Dans nos revues de matériel, nous appelons cela la valeur «1% bas», et cela vous indique que 99% de la fréquence d'images est plus haute que ce nombre.
Le fps moyen et le bas de 1% sont deux statistiques rapides qui peuvent vous donner un bon aperçu de ce qui se passe dans les coulisses de votre ordinateur. Bien que la fréquence d'images minimale absolue puisse être bien inférieure à 1% de faible valeur, elle ne se produit pas très souvent – seulement 1% du temps! Si de grandes baisses de la fréquence d'images se produisaient plus fréquemment, le nombre de 1% serait inférieur.
Mais que se passe-t-il si nous voulons publier plus de statistiques ou simplement faire votre propre analyse? Eh bien, CapFrameX peut faire un large éventail de statistiques pour vous ou vous pouvez écrire votre propre programme en Python ou R pour ce faire. Vous avez également la possibilité d'utiliser un tableur (comme Excel ou Google Sheets) et pour ceux-ci, voici les fonctions dont vous aurez besoin:
Une fonction | Ce qu'il calcule l'intervalle de temps est |
= min (tableau) | Recherche le minimum absolu dans le tableau de données (le plus petit nombre) |
= max (tableau) | Recherche le maximum absolu dans le tableau de données (le nombre le plus élevé) |
= moyenne (tableau) | Calcule la moyenne arithmétique des valeurs sélectionnées (mesure de tendance centrale) |
= géomée (tableau) | Calcule la moyenne géométrique des valeurs sélectionnées (mesure de tendance centrale) |
= médiane (tableau) | Calcule la médiane des valeurs sélectionnées – quelle valeur se situe exactement au milieu des nombres, lorsqu'elle est classée du plus bas au plus élevé (mesure de tendance centrale) |
= percentile.exc (tableau, k) | Calcule le kème centile du tableau sélectionné (mesure de distribution) |
= stdev.s (tableau) | Détermine l'écart type du tableau, en tant qu'échantillon de la population (mesure de dispersion) |
La moyenne géométrique et la médiane fournissent simplement une vue différente de la moyenne des temps de trame – le premier est mieux utilisé lorsque cela fait une grande différence dans le temps, et le second est bon lorsque les temps ont tendance à se diviser en plusieurs groupes. Pour la plupart des gens, la bonne moyenne arithmétique fait l'affaire.
Nous avons déjà parlé des centiles, mais utilisez la version exclusive, plutôt qu'inclusive, pour ignorer les tout premier et dernier points de données. Le processus de capture peut souvent faire en sorte qu'ils soient inférieurs à ce qu'ils devraient être, en raison de la pause du jeu pendant une fraction de seconde alors que le système active la journalisation puis stocke les données enregistrées.
L'écart type est une autre statistique utile. Cette valeur vous donne une bonne idée de la cohérence des temps de trame, car il s'agit d'une mesure de l'écart moyen entre les temps individuels et la moyenne globale. Plus cette valeur est élevée, plus la variation de la fréquence d'images est grande, donc pour un jeu fluide, vous voudriez que ce soit aussi petit que possible.
Tu ne avoir besoin toutes ces informations mathématiques, cependant, pour pouvoir creuser dans les rumeurs du PC pendant un jeu – la fréquence d'images moyenne et la valeur 1% Low sont de bonnes statistiques avec lesquelles travailler. Il s'agit de la façon dont vous utilisation Les resultats!
Connais ton ennemi!
Il est temps de mettre toutes ces informations et connaissances en pratique. Les résultats de l'analyse comparative de votre PC peuvent vous dire comment la partie de l'ordinateur a le plus d'impact sur les fréquences d'images du jeu. Notre cobaye de test avait comme principaux composants un processeur Intel Core i7-9700K, 16 Go DDR4-3000 et GeForce RTX 2080 Super – il est donc assez puissant, bien qu'il existe des pièces plus rapides / plus performantes.
Pour démontrer un processus d'analyse détaillé, nous avons de nouveau utilisé Assassin's Creed Odyssey pour voir comment son propre outil de référence est géré sur le système ci-dessus. Nous cherchons à juger de quel type de test s'agit-il: cela pousse-t-il dur le processeur ou s'agit-il uniquement du GPU? Nous comparerons également ces résultats aux chiffres recueillis en jouant directement au jeu, ce qui nous donnera une idée de la représentativité de l'outil de référence du comportement réel des performances.
Avec le jeu réglé à une résolution de 1080p (1920 x 1080 pixels) et la qualité graphique à Ultra High, un total de 5 runs a été enregistré. À l'aide d'un tableur, plutôt que d'OCAT, les temps de trame ont été moyennés (avec d'autres statistiques calculées), puis convertis en taux de trame, et finalement tracés dans un diagramme de dispersion.
Maintenant, cela pourrait sembler que la fréquence d'images rebondit partout, et le test a dû être un gâchis bégaiement. Mais ces changements rapides sont séparés par des millisecondes et c'est beaucoup trop rapide pour être observé. L'impression générale du test était qu'il semblait assez lisse.
La fréquence d'images moyenne est assez bonne, à un peu moins de 75 ips, mais l'écart entre le 1% Low, 99% High et la moyenne est assez grand, autour de 22 ips et 40 ips respectivement. Cela suggère fortement que la charge de travail est parfois assez intensive, et il y a un composant au sein du PC qui est en difficulté: est-ce le CPU ou le GPU?
Une façon d'examiner cela est de répéter les tests à différentes résolutions et paramètres graphiques. Changer le premier n'affecte vraiment que le GPU, tandis que changer le dernier affectera le CPU et le GPU (bien que cela dépende du jeu et les effets sont exécutés aux différents niveaux de qualité). Nous avons choisi 5 résolutions et utilisé les niveaux de détail les plus bas / les plus élevés possibles.
Nous ne montrons ici que les fréquences d'images moyennes, car les valeurs de 1% de faible ont suivi des schémas très similaires. À première vue, ces données ne semblent pas nous dire quelque chose que nous ne savons pas déjà: avoir plus de pixels à ombrer ou utiliser des effets de rendu supplémentaires entraîne une fréquence d'images inférieure.
Cependant, changer la résolution produit un linéaire changement de la fréquence d'images (comme indiqué par les lignes de tendance droites). Pour voir la signification de cela, comparons cela aux résultats que nous avons obtenus en exécutant l'un des tests graphiques du benchmark Fire Strike Extreme de 3DMark:
Ce test a profondément courbure lignes de tendance, ce qui nous dit que le changement de résolution a un impact énorme sur les performances. Dans de telles situations, le jeu / test est lié au pixel – c'est-à-dire que la carte graphique est facilement capable de gérer les calculs du shader mais à mesure que le nombre de pixels augmente, la fréquence d'images devient limitée par le taux de sortie des pixels du GPU et la bande passante mémoire.
Considérez-le comme une chaîne de fabrication qui produit un composant simple à un taux fixe. Si l'ordre de fabrication veut 100 articles, la ligne les traversera rapidement, mais si l'ordre est de quelques millions, alors il faudra beaucoup plus de temps pour tout faire – même si chaque article ne prend pas longtemps .
Les lignes droites observées dans les parcours Assassin's Creed indiquent que ce test est soit calculer lié ou bande passante limitée. En d'autres termes, il y a tellement de calculs complexes et longs pour le CPU ou le GPU que les pixels supplémentaires ne font pas une grande différence dans la charge de travail, ou il y a tellement de données à déplacer, la bande passante mémoire du système ne peut pas faire face.
Pour revenir à l'analogie d'usine, un scénario lié au calcul est celui où la fabrication de la pièce n'est pas affectée par la taille de l'ordre de fabrication, mais par sa complexité. Un scénario limité en bande passante serait une usine devant constamment attendre la livraison des matières premières avant de pouvoir démarrer.
Nous pouvons déterminer dans quelle situation nous nous trouvons, en modifiant une variable dans le PC: la vitesse d'horloge de base du GPU. En utilisant Afterburner de MSI, nous avons verrouillé la vitesse de la carte graphique à un taux fixe et avons effectué plusieurs tests sur une large gamme de valeurs d'horloge.
Nous avons choisi 1080p pour cet examen, tout simplement parce que c'était la résolution au milieu des cinq que nous avions vérifiée précédemment. En regardant d'abord la ligne de tendance Ultra High, nous pouvons voir que doubler l'horloge du GPU produit presque un doublement de la fréquence d'images moyenne (le 1% Low était raisonnablement similaire à cela).
Ce n'est pas un saut aussi important que nous l'avons vu dans les vérifications de résolution de 3DMark, mais cela suffit pour suggérer que la référence du jeu est liée au calcul à ces paramètres. La baisse du niveau de qualité vers le bas nous donne le même type de modèle, mais le fait qu'il soit plus incurvé et qu'il ne s'aplatit qu'à environ 1900 MHz, est une preuve supplémentaire que la charge de travail de la référence est fortement chargée sur le GPU.
À ce stade, nous aurions pu exécuter d'autres tests avec la carte graphique, modifier ses horloges de mémoire, ou faire de même avec la mémoire système, mais avec les preuves suggérant qu'il s'agissait d'un problème de calcul et non de données, nous nous sommes tournés vers la recherche à confirmer exactement où dans la chaîne de traitement la charge était.
Pour ce faire, il faut modifier la vitesse d'horloge du processeur et nous avons utilisé Extreme Tuning Utility d'Intel pour ce faire, forçant tous les cœurs du processeur à fonctionner à la même vitesse constante. Si votre système n'est pas en mesure de le faire, alors malheureusement, c'est un chèque qui n'est pas disponible pour vous
À 1080p, avec des paramètres ultra élevés, la modification de la vitesse du processeur sur une plage de 1,4 GHz n'a à peine fait aucune différence. Cela nous indique clairement que notre PC de test était en effet lié au calcul et que ce barrage routier était entièrement au niveau du GPU.
En fait, nous avons dû descendre jusqu'à 720p, avec les détails graphiques au plus bas, pour voir tout changement significatif de la fréquence d'images, avec la vitesse d'horloge du processeur.
Le fait que la ligne de tendance commence à s'aplatir à environ 5 GHz, la même région que la vitesse par défaut du processeur, nous indique que la référence intégrée dans Assassin's Creed Odyssey est vraiment un test de carte graphique. Pourquoi? Parce que les performances du processeur n'ont d'impact sur le résultat du test que lorsque le GPU reçoit le moins quantité de travail possible.
So that's the test analysis done and we have enough information to be confidence in saying that the game's own benchmark pretty much just tests the graphics card, no matter what settings are used. But how does all of this compare to what happens when you're actually in the game? Let's repeat the resolution tests again:
To start with, the frame rates themselves are lower in the game, than we found in the benchmark, but notice how different the trend lines are? At the lowest graphics settings, the performance is essentially the same at 1080p, as it was at 720p — the line is pretty flat between these resolutions. Only with more pixels than this, do we see the fps decrease. The 1% Low results also followed this trend, just as we found in the benchmarking tool.
This tells us that the GPU easily copes with the work, so the performance of the game is being determined by the capabilities of the CPU. Switching to Ultra settings reverses this pattern, and we see a curved trend line, just like saw in the 3DMark test. It doesn't dip as much as in Fire Strike Extreme, but it's enough to indicate that, with these graphics levels, the game is somewhere between being compute and pixel bound.
We re-examined the effects of GPU and CPU clock speeds at Ultra and Low settings and essentially found the same patterns as before — all of this strongly suggests that Assassin's Creed's benchmark is definitely a graphics card test, but it is a reasonably good indicator of what to expect in the game itself.
Big caveat time, though — this is true for this PC, running this particular test, only. It cannot be stressed enough that with less or more capable hardware, the results would be different. A stronger GPU would cope with the compute load better, meaning the CPU would have more sway in the average frame rates, whereas a weaker GPU would fully control the performance.
But whatever system or game is used and checked, the test routine we've just gone through can be applied to tout situation, be it in-game or in-benchmark. Let's summarize the overall process, so it's easier to follow and repeat with your own PC:
- Set the game's graphics details and resolution to the highest the PC will support
- Capture several sets of data and average the results
- Repeat the tests a few times, lowering the resolution for each set
- Plot the findings in a graph: straight lines indicate the game is compute bound (CPU and/or GPU), curves suggest pixel bound (GPU only)
- Pick a resolution and retest, but change the GPU clock speeds
- Plot these results: if the trend is constantly up, then the GPU is limiting the frame rate; if the trend line flattens off, then it's the CPU
- Repeat once more with CPU clock changes (if possible) to confirm the above
This is clearly a lot of work, and this is why testing hardware for reviews takes so much time and effort! However, you can do a simplified version, where the only thing you change is the GPU clocks — set up the game to how you normally have it, and use a tool to drop the speed of the graphics card in stages. Large changes in the average or 1% low frame rates will indicate that it's the GPU that's the limiting factor in the game's performance; if slicing off, say, 25% of the graphics card's speed doesn't make much difference, then it'll be the CPU that's controlling matters.
Windows will now shutdown
If PCs were like consoles, none of what we've been going through would be worth doing (or possible, for that matter). This is because the range of different hardware and software configurations out there is very small. Game developers have a far easier job of ensuring their projects work properly on the Xbox, PlayStation, or Switch than with Windows-based computers.
And it's not hard to see why, when you look at all the different CPUs and GPU models that can be purchased — for example, Nvidia offers nearly 60 products that use their Turing processors and AMD has over 50 CPUs sporting the Zen architecture. Not every combination of the two would be used for gaming, but the count still runs into the thousands, and that's without throwing other processor models, RAM, motherboards, storage, operating systems, and drivers into the mix.
It might seem like it's nothing short of a miracle that developers manage to get their games to work at all on PCs, but they do it by generalizing their approach to how their code is going to run and what hardware support is required. This means there's always some room for improving a game's performance, but it also means that there's a good chance that a particular title might not run well on a specific setup.
This is why using games to benchmark hardware and sharing the results with the world can be so useful — no game developer has direct access to all of the possible hardware configurations, but through our and your hard work, they can collate the information and use it to continually improve their work. Bien, theoretically they can!
Of course, in-depth benchmarking and data analysis isn't everyone's favorite flavor of ice cream; it can often be tedious to do and it rather misses the whole point of having PC games in the first place (i.e. jouer them!). But we hope this article has given you some insight as to how we test hardware and how you can do the same. And if you're wondering about what part of your PC to next upgrade, this is a great way of getting the numbers to help you make that decision.
If you have your own method of testing hardware or know about some neat logging tricks, share them with everyone in the Comments section below.
Tests done, stats calculated, data analyzed — time to shutdown Windows!
Download: 20 Programs to Analyze and Benchmark Your Hardware
Don't Miss: How We Test: CPU Gaming Benchmarks — or: How I Learned to Stop Worrying and Benchmark Using a High-end GPU
Shopping Shortcuts:
- AMD Ryzen 9 3900X on Amazon
- AMD Ryzen 9 3950X on Amazon
- AMD Ryzen 7 3700X on Amazon
- AMD Ryzen 5 3600X on Amazon
- Sabrent 1TB Rocket NVMe PCIe 4.0 SSD on Amazon
- Asus ROG Strix GeForce RTX 2080 Ti on Amazon
- GeForce RTX 2070 Super on Amazon