49 votes

Déterminer si un jeu est limité par le CPU ou le GPU.

Quel est un moyen fiable, mais pas trop long, de déterminer si un certain jeu est limité par la carte graphique ou par la vitesse du processeur ?

J'ai quelques idées préconçues quant à savoir si je suis surtout limité par le GPU ou le CPU, mais j'aimerais vérifier si j'ai raison à ce sujet. J'ai quelques idées sur la manière dont je pourrais tester cela, mais l'exécution de benchmarks précis est notoirement délicate et je n'ai pas beaucoup d'expérience en la matière.

Je me demande donc quel serait un moyen facile de déterminer le goulot d'étranglement, en n'ayant qu'un seul ordinateur avec une certaine configuration disponible ? Quels outils utiliserais-je à cette fin ?

Il serait également intéressant de déterminer si la quantité de VRAM de ma carte graphique est un facteur limitant.

4 votes

J'aimerais pouvoir noter cette question plus d'une fois, car j'aimerais voir une bonne réponse à cette question.

1 votes

Une chose que j'ai remarquée, c'est que le WC3 insane L'IA dépend de la vitesse de votre processeur. Je peux généralement en vaincre deux sur mon ordinateur lent, mais pas sur mon ordinateur rapide :D

0 votes

28voto

Andrew Aylett Points 381

Deux règles de base que j'avais l'habitude d'utiliser :

Si l'augmentation de la résolution entraîne une baisse importante de la fréquence d'images, cela peut indiquer que le jeu est lié au GPU, car l'augmentation de la résolution fait travailler la carte vidéo beaucoup plus et, par conséquent, prend plus de temps pour que chaque image sorte.

En revanche, si l'augmentation de la résolution n'entraînait qu'une baisse négligeable de la fréquence d'images (ou pas de baisse du tout), cela indiquait que le jeu était lié au CPU, car la complexité vidéo supplémentaire était facilement gérée par la capacité de traitement de la carte vidéo, alors que la logique de traitement du jeu principal était déjà liée au CPU. Dans cette situation, le moteur du jeu est trop occupé pour pouvoir donner suffisamment de travail au sous-système vidéo.

Cependant, je ne pense pas que les jeux d'aujourd'hui soient si simples que les performances soient facilement limitées de la sorte. Depuis de nombreuses années, les GPU sont devenus plus complexes et les développeurs trouvent des moyens de leur confier davantage de travail, de sorte qu'il y a beaucoup de travail qui peut être fait d'un côté comme de l'autre... c'est pourquoi je n'utilise plus beaucoup ces règles empiriques - elles ne s'appliquent pas vraiment. L'hypothèse était que l'augmentation de la résolution ne causait pas de travail supplémentaire sur le CPU.

Si vous suiviez religieusement les benchmarks de cartes vidéo du Tom's Hardware Guide au début des années 2000, vous pouviez parfois le constater - en lançant par exemple Quake 3 avec une carte vidéo "moderne", vous obteniez de nombreux diagrammes à barres qui s'aplatissaient.

Si vous pouvez mesurer la fréquence d'images de votre jeu, faites un essai et voyez ce qui se passe.

5 votes

C'est le meilleur conseil que nous ayons reçu jusqu'à présent.

4voto

ErsatzStoat Points 141

Si vous souhaitez obtenir une estimation rapide et précise, voici deux tests que vous pouvez effectuer :

  1. Utilisez un moniteur système ou un outil de profilage pour comparer l'utilisation du CPU et du GPU. et voyez si l'un d'eux est nettement sous-utilisé. Ma suggestion est la suivante GPUView .
  2. Effectuez tous les tests de goulot d'étranglement du GPU en même temps et voyez si les performances s'améliorent :
    • Réduire la profondeur des bits des tampons de couleur et de profondeur.
    • Utilisez les textures de niveau mip le plus élevé (résolution la plus faible).
    • Réduire la résolution.
    • Simplifier le vertex shader.
    • Réduire la taille du format des sommets.

Ce qu'ils veulent dire :

  • Profondeur de bit plus faible signifie moins de ressources utilisées par pixel, ce qui révèle les goulots d'étranglement au niveau du framebuffer. Corrections possibles :
    • Rendu de la profondeur d'abord
    • Utilisez moins l'alpha blending
    • Désactiver les écritures en profondeur lorsque cela est possible
    • Éviter les vidages de tampon inutiles
    • Optimiser la skybox (rendre en dernier avec un z-out précoce, ou en premier sans r/w de profondeur)
    • Utiliser des tampons avec des profondeurs de bits plus petites
  • Textures plus petites signifie moins de ressources et moins de recherches, ce qui révèle des goulots d'étranglement dans la bande passante des textures. Corrections possibles :
    • Utilisez des textures plus petites
    • Utiliser des profondeurs de bits de texture plus petites
    • Compresser les textures
    • Utiliser le mipmapping
  • Résolution réduite signifie moins de pixels à traiter, ce qui révèle des goulots d'étranglement au niveau du framebuffer et du fragment shader. Corrections possibles :
    • Rendu de la profondeur en premier
    • Déplacement du travail du fragment shader au vertex shader
    • Éviter une normalisation excessive
    • Éviter un filtrage excessif et coûteux des textures
    • Réduire la complexité du fragment shader :(
  • Un vertex shader plus petit signifie moins de traitement par sommet, ce qui révèle des goulots d'étranglement au niveau du traitement des sommets. Corrections possibles :
    • Réduire le nombre de sommets traités !
    • Déplacer les calculs par objet du côté du CPU
    • Utiliser LOD
    • Effectuez moins de transformations en commençant par des espaces de coordonnées corrects
  • Formats de sommets plus petits signifie moins de données à transférer, ce qui révèle des goulots d'étranglement au niveau du transfert des sommets/index. Corrections possibles :
    • Utilisez des formats de vertex plus petits (si les vôtres sont inutilement gros).
    • Utiliser des formats de sommets plus petits (en dérivant les attributs des petits types au lieu de stocker les plus grands)
    • Utiliser des types d'index plus petits
    • Accéder aux données des sommets et des index de manière séquentielle.

Si tout cela est fait et que vous ne voyez pas d'amélioration des performances, il est probablement sûr de dire que vous êtes lié au processeur. Corrections possibles :

  • Plus de batching
  • Moins de verrouillage
  • Faire le travail plus loin dans le tuyau
  • Soyez plus réaliste quant à votre projet

Si cette quantité de tests GPU est encore trop importante pour vous, vous pouvez choisir les réglages les plus simples (comme la réduction de la résolution) et espérer qu'ils vous disent quelque chose, mais vos résultats seront évidemment moins concluants, puisque cela ne révélera pas les goulots d'étranglement à certaines étapes du pipeline GPU.

Si vous êtes lié au GPU, pour isoler davantage les goulots d'étranglement du côté du GPU, vous voudrez effectuer ces tests un par un, en commençant par le bas (fin du pipeline) et en remontant (framebuffer -> texture -> fragment shading -> vertex processing -> vertex transfer).

NOTE : Ceci suppose bien sûr que vous avez accès aux paramètres qui vous permettent d'effectuer ces modifications, ou que vous êtes un développeur et qu'il s'agit d'un jeu pour lequel vous avez accès au code source.

2 votes

Bienvenue sur Gaming.SE ! Belle première réponse :D

3voto

Chris Jester-Young Points 102876

Comme la réduction de la résolution de l'écran et/ou des options de détails de la texture est pratiquement garantie pour améliorer les performances de n'importe quel jeu, cela ne peut pas être utilisé pour déterminer si le jeu est lié au GPU ou non. Vous pouvez chercher à savoir quel est le niveau de résolution/de détail de texture le plus élevé disponible pour votre système.

Si vous pouviez réduire les performances de votre processeur (underclocking ?), alors ceci pourrait vous donne une indication sur le fait que le jeu était lié au CPU - mais encore une fois, je ne pense pas que ce soit fiable à 100%.

Il y a également une confusion entre ce qui est fait par le moteur de jeu (CPU) et ce qui est fait par le moteur de rendu (GPU). À la fin des années 1990 et au début des années 2000, la physique des jeux était effectuée par le CPU, mais les cartes graphiques ont commencé à être capables d'effectuer ces calculs sur du matériel dédié, ce qui les a accélérés et a amélioré les performances. Cela signifie que le nombre d'objets en mouvement à l'écran (par exemple) ne peut pas servir de guide pour déterminer la puissance du processeur dont vous disposez, car une grande partie du mouvement est contrôlée par le moteur physique basé sur le GPU.

Il faut garder à l'esprit qu'en raison de la grande variété de matériel sur lequel les jeux PC doivent tourner, les développeurs de jeux seront à l'affût de toute astuce permettant d'améliorer les performances et le jeu se dégradera (espérons-le) de manière à être jouable sur les machines de bas de gamme. Cela signifie que si vous disposez du matériel nécessaire, il sera utilisé, si ce n'est pas au maximum, du moins presque.

0 votes

Le terme "underclocking" est correct.

3voto

user4424 Points 21

D'un point de vue purement observationnel (sans vérifier d'autres applications, etc.), je pense que si vous êtes lié au CPU, vous constaterez qu'il y a beaucoup plus de bégaiements d'images car le GPU attend le CPU, alors que si vous êtes lié au GPU, l'expérience sera plus cohérente, bien que lente et décalée.

Mais tout cela pourrait être du pipeau.

2voto

kristof Points 18322

Vous pouvez ouvrir le gestionnaire des tâches de Windows (celui que vous pouvez faire apparaître en utilisant les touches Contrôle+Alt+Suppression), puis le réduire et jouer à votre jeu pendant un moment. Ensuite, quittez le jeu et regardez l'utilisation du processeur dans l'onglet Performances (vous pouvez redimensionner l'écran pour mieux voir la tendance). Vérifiez si l'utilisation du processeur semble rester autour de 100 % ou beaucoup moins.

Je sais qu'il existe d'autres utilitaires qui vous permettent de visualiser l'utilisation du processeur, ainsi que l'utilisation de la RAM et des entrées-sorties du disque, que vous pouvez essayer. Je ne sais pas s'il en existe un pour surveiller les performances de la carte graphique.

0 votes

Cela dépend des cartes graphiques, mais pour les raisons mentionnées dans d'autres questions, ce n'est pas un bon moyen d'identifier les goulots d'étranglement d'un jeu.

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X