Question:
Déterminer si un jeu est limité par CPU ou GPU
Mad Scientist
2010-12-03 01:24:20 UTC
view on stackexchange narkive permalink

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 des idées préconçues sur le fait que je suis plutôt GPU ou CPU limité, mais j'aimerais vérifier si j'ai raison à ce sujet. J'ai quelques idées sur la façon dont je procéderais pour tester cela, mais il est notoirement difficile d'effectuer des tests de référence précis et je n'ai pas beaucoup d'expérience avec cela.

Je me demande donc quel serait un moyen facile de déterminer le goulot d'étranglement, 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 sur ma carte graphique est un facteur limitant.

J'aimerais pouvoir voter pour cette question plus d'une fois, j'aimerais voir une excellente réponse à cela
une chose que j'ai remarquée, c'est que l'IA «insane» WC3 dépend de la vitesse de votre CPU. Je peux généralement en vaincre deux sur mon ordinateur lent mais pas sur mon ordinateur rapide: D
duplication possible de [Quel est le meilleur pour une carte graphique de PC de jeu - plus de RAM, ou GPU plus rapide?] (http://gaming.stackexchange.com/questions/321/which-is-better-for-a-gaming-pc -graphique-carte-plus-ram-ou-plus rapide-gpu)
L'utilisation du processeur est-elle à 100%
@Zommuter ce sont des questions complètement différentes.Cette question concerne le goulot d'étranglement du GPU ou du CPU et comment déterminer lequel est étranglé.Pas ce qui est le plus optimal.
Six réponses:
weiji
2010-12-03 11:11:53 UTC
view on stackexchange narkive permalink

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

Si l'augmentation de la résolution entraînait une forte baisse de la fréquence d'images, cela pourrait indiquer que le jeu était lié au GPU, car l'augmentation de la résolution rend le la carte vidéo fonctionne beaucoup plus dur et, par conséquent, prend plus de temps pour sortir chaque cadre de la porte.

D'un autre côté, si l'augmentation de la résolution n'entraînait qu'une diminution négligeable de la fréquence d'images (ou aucune diminution du tout), alors c'était un indicateur que le jeu était lié au processeur, comme la vidéo supplémentaire la complexité était facilement gérée par la capacité de traitement de la carte vidéo de réserve alors que la logique de traitement du jeu principale fixait déjà le processeur. Dans cette situation, le moteur de jeu est trop occupé pour pouvoir donner suffisamment de travail au sous-système vidéo.

Cependant, je ne pense pas que les jeux de nos jours soient si simples que les performances soient facilement limitées comme ça. Depuis de nombreuses années maintenant, les GPU sont devenus plus complexes et les développeurs trouvent des moyens de leur décharger plus de travail.Il y a donc beaucoup de travail qui pourrait être fait de chaque côté ... c'est pourquoi je n'utilise pas ces règles empiriques. beaucoup plus - ils ne s'appliquent tout simplement pas vraiment. L'hypothèse était que l'augmentation de la résolution n'entraînait pas de travail supplémentaire sur le processeur.

Si vous suiviez religieusement ces repères de carte vidéo du Tom's Hardware Guide au début des années 2000, vous pouviez le voir parfois - en cours d'exécution par exemple. Quake 3 en utilisant une carte vidéo "moderne" et vous obtiendrez tellement de graphiques à barres qui sont juste à plat.

Si vous pouvez mesurer la fréquence d'images de votre jeu, essayez-le et voyez ce qui se passe.

IMO c'est le meilleur conseil à ce jour.
ChrisF
2010-12-03 02:27:56 UTC
view on stackexchange narkive permalink

Étant donné que la réduction des options de résolution d'écran et / ou de détails de texture est à peu près garantie pour améliorer les performances de n'importe quel jeu, cela ne peut pas être utilisé pour déterminer s'il est lié ou non au GPU. Vous pouvez regarder pour voir quel est le niveau de détail de résolution / texture le plus élevé disponible pour votre système.

Si vous pouviez réduire les performances de votre CPU (underclocking?), Cela pourrait donner vous indique si le jeu était lié au processeur - mais encore une fois, je ne pense pas qu'il puisse être fiable à 100%.

Il y a aussi un flou 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 / début des années 200, la physique des jeux était autrefois effectuée par le processeur, mais les cartes graphiques ont ensuite commencé à être capables d'effectuer ces calculs sur du matériel dédié, les accélérant ainsi et améliorant les performances. Cela signifie que voir combien d'objets se déplacent sur l'écran (par exemple) ne peut pas être utilisé comme un guide de la puissance d'un processeur dont vous disposez, car une grande partie du mouvement peut être contrôlée par le moteur physique basé sur le GPU.

Une chose à garder à l'esprit est qu'en raison de la large gamme de matériel que les jeux PC doivent exécuter sur les jeux, les développeurs seront à l'affût de toutes les astuces qui peuvent améliorer les performances et le jeu le fera également se dégrader gracieusement pour qu'il soit jouable sur les machines bas de gamme. Cela signifie que si vous avez le matériel disponible, il sera utilisé, sinon au maximum, alors assez proche.

Le sous-cadencement est le terme correct.
Xantec
2010-12-03 05:28:26 UTC
view on stackexchange narkive permalink

D'un point de vue purement observationnel (ne vérifiant pas les autres applications, etc.) Je crois que si vous êtes lié au processeur, vous constaterez qu'il y a beaucoup plus de bégaiement d'image pendant que le GPU attend sur le CPU, où comme si vous êtes GPU Il y aura une expérience plus cohérente, bien que lente et lente.

tout cela pourrait être hooey cependant.

ErsatzStoat
2016-03-31 22:33:48 UTC
view on stackexchange narkive permalink

Si vous recherchez une estimation approximative "rapide et sale", voici deux tests que vous pouvez exécuter:

  1. Utilisez un moniteur système ou un outil de profilage pour comparer l'utilisation du processeur à l'utilisation du GPU et voir si l'un d'entre eux est largement sous-utilisé. Ma suggestion est 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éduisez la profondeur de bits des tampons de couleur / profondeur.
    • Utilisez les textures de niveau mip le plus élevé (résolution la plus basse).
    • Réduisez la résolution.
    • Simplifier le shader de vertex.
    • Réduisez la taille du format des sommets.

Ce qu'ils signifient:

  • S Une profondeur de bits plus petite signifie moins de ressources utilisées par pixel, révélant des goulots d'étranglement au niveau du framebuffer. Corrections possibles:
    • Profondeur de rendu d'abord
    • Utilisez moins de fusion alpha
    • Désactivez les écritures en profondeur lorsque cela est possible
    • Évitez les effacements inutiles de la mémoire tampon
    • Optimiser la skybox (rendre le dernier avec un z-out précoce, ou le premier sans profondeur r / w)
    • Utilisez des tampons avec des profondeurs de bits plus petites
  • SDes textures plus petites signifie moins de ressources et moins de récupérations, révélant des goulots d'étranglement dans la bande passante des textures. Corrections possibles:
    • Utilisez des textures plus petites
    • Utilisez des profondeurs de bits de texture plus petites
    • Compresser les textures
    • Utiliser le mipmapping
  • Rrésolution réduite signifie moins de pixels à traiter, révélant des goulots d'étranglement au niveau du framebuffer et du fragment shader. Corrections possibles:
    • Profondeur de rendu d'abord
    • Déplacer le travail du fragment shader vers vertex shader
    • Évitez les normalisations excessives
    • Évitez le filtrage de texture trop coûteux
    • Réduisez la complexité du shader de fragment :(
  • Smaller vertex shader signifie moins de traitement par sommet, révélant des goulots d'étranglement au stade du traitement des sommets. Corrections possibles:
    • Réduisez le nombre de sommets traités!
    • Déplacer les calculs par objet vers le côté CPU
    • Utiliser LOD
    • Faites moins de transformations en commençant par des espaces de coordonnées corrects
  • Sformats de sommets plus petits signifie moins de données à transférer, révélant des goulots d'étranglement au niveau du transfert des sommets / index. Corrections possibles:
    • Utilisez des formats de sommets plus petits (si les vôtres sont inutiles)
    • Utilisez des formats de sommets plus petits (en dérivant des attributs à partir de petits types au lieu d'en stocker de plus grands)
    • Utilisez des types d'index plus petits
    • Accéder aux données des sommets / 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 prudent de dire que vous êtes lié au processeur. Corrections possibles:

  • Plus de traitement par lots
  • Moins de verrouillage
  • Travaillez plus loin dans le tuyau
  • Soyez plus réaliste sur votre projet

Si cette quantité de tests GPU est encore trop étendue pour vous, vous pouvez en choisir les ajustements les plus simples (comme la réduction de la résolution) et espérer que cela vous dira quelque chose, mais vos résultats seront évidemment moins concluants, car ce sera ne pas révéler de goulots d'étranglement à certaines étapes du pipeline GPU.

Si vous êtes lié au GPU, pour isoler davantage les goulots d'étranglement du côté GPU, vous voudrez effectuer ces tests un à la fois, en commençant par le bas (fin du pipeline) et en remontant (framebuffer - > texture -> ombrage des fragments -> traitement des sommets -> transfert des sommets).

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

Bienvenue sur Gaming.SE!Bonne première réponse: D
Wikwocket
2010-12-03 05:12:15 UTC
view on stackexchange narkive permalink

Vous pouvez ouvrir le Gestionnaire des tâches de Windows (celui que vous pouvez afficher via Ctrl + Alt + Suppr), puis le réduire et jouer un peu à votre jeu. Ensuite, quittez votre jeu et regardez l'utilisation du processeur dans l'onglet performances (vous pouvez redimensionner le moniteur pour voir plus de tendance). Vérifiez si votre utilisation du processeur semble rester autour de 100% ou beaucoup moins.

Je sais qu'il existe d'autres utilitaires qui vous permettent d'afficher l'utilisation du processeur, ainsi que l'utilisation de la RAM et les E / S disque, que vous pouvez essayer . Je ne sais pas s'il y en a un pour surveiller les performances de la carte graphique.

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.
DrFish
2010-12-03 17:16:58 UTC
view on stackexchange narkive permalink

Il y a quelques années, je dirais certainement qu'en jouant avec la résolution: si les performances varient en relation directe avec la résolution, alors c'est lié au GPU, sinon, c'est le CPU, mais c'est une autre histoire maintenant, car les shaders sont dans Certains des effets de shader ne peuvent pas être simplement atténués en abaissant la résolution, ils captent juste la même quantité de ressources quoi qu'il arrive.

Certaines options graphiques ne concernent que le processeur, d'autres seulement GPU, et certains un mélange des deux (les effets de fumée sont un exemple courant).

La réduction de la résolution est toujours une règle de base, cela ne fonctionne tout simplement pas aussi bien qu'avant.

Mais si j'avais l'argent, j'investirais sur un meilleur GPU qu'un CPU plus rapide, car il y a des extras que vous n'obtiendrez jamais sans plus de puissance GPU, comme l'anti-aliasing et le filtrage anisotrope.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 2.0 sous laquelle il est distribué.
Loading...