Comment utiliser plus ma carte graphique

YosKha

Aventurier
21 Avril 2020
16
0
1
28
Bonjour ;
Je joue actuellement à minecraft sur le mod pack All The Mod 3 Remix. Mon Pc fait correctement tourner le jeu mais je sais que dans les semaines à venir mes Fps vont chuter à cause des nombreuses automatisations et de mes futures constructions que j'aurais faite sur mon monde (mes Fps ont déjà commencé à chuter). En regardant le logiciel cam de NZXT j'ai pu remarquer que ma carte graphique n'était utilisée qu'à seulement 10% (elle fonctionne si peu que le système de refroidissement n'est pas allumé). Je me suis renseigné et j'ai pu trouver des tutos qui montraient comment lancer l'exécutable minecraft avec sa carte graphique depuis le panneau de configuration Nvidia puis dans gestion des paramètres 3Ds mais tous les tutos étaient réalisés sur les anciennes versions du panneau de configuration Nvidia. Malheureusement, la fonctionnalité montrée (sélectionner le processeur graphique préféré pour ce programme : utiliser le paramètre global ( Processeur NVIDIA hautes performances)) dans ces vidéos n'était plus incluse dans la nouvelle version, après avoir cherché dans le logiciel de Nvidia, j'ai cru trouver une option se rapprochant de celle montrée dans les vidéos (Open GL rendering GPU) malheureusement mon gpu reste dans les 10% d'utilisation. Je sais que le language java favorise l'utilisation du cpu au gpu mais j'aimerais savoir s'il est possible que ma carte graphique tourne plus sur mon mod pack. J'utilise Twitch pour lancer mon mod pack.

Composant:
intel core i7 9700k
Aorus RTX 2080 SUPER
Corsair 2x8go 3000 Mhz
Msi MPG Z390 Gaming edge

ps: mon processeur tourne correctement entre 50 et 80%

Merci de votre aide.
Cordialement.
 

Fichiers joints

  • fonctionnalité nvidia.PNG
    fonctionnalité nvidia.PNG
    74.2 KB · Affichages: 886

robin4002

Expert en informatique et systèmes d'information
Staff
Responsable technique
Responsable forum
12 Novembre 2012
20 891
158
3 004
347
26
Alsace
www.minecraftforgefrance.fr
Bonsoir,
Je me suis renseigné et j'ai pu trouver des tutos qui montraient comment lancer l'exécutable minecraft avec sa carte graphique depuis le panneau de configuration Nvidia puis dans gestion des paramètres 3Ds mais tous les tutos étaient réalisés sur les anciennes versions du panneau de configuration Nvidia. Malheureusement, la fonctionnalité montrée (sélectionner le processeur graphique préféré pour ce programme : utiliser le paramètre global ( Processeur NVIDIA hautes performances))
En fait cette fonctionnalité existe toujours, mais uniquement sur les pc portable qui ont deux gpu, la carte Nvidia est en secondaire.
Sur un pc fixe la carte graphique Nvidia est la seule carte et c'est fortement elle qui est utilisé.

Lorsque tu joues sans mods, tu as combien de fps ?
 
  • J'aime
Reactions: YosKha

robin4002

Expert en informatique et systèmes d'information
Staff
Responsable technique
Responsable forum
12 Novembre 2012
20 891
158
3 004
347
26
Alsace
www.minecraftforgefrance.fr
Donc le problème est plutôt à chercher sur le contenu du modpack plutôt que sur la cg qui ne monte pas au max.

Il faut surveiller le taux d'usage du processeur par cœur (très important, un taux d'usage moyen bas peu cacher un cœur qui sature) le thread de rendu de Minecraft est probablement à 100% et donc il n'arrive pas à envoyer plus vite des ordres à la carte graphique (c'est le gros problème de minecraft, il est pas mal cpu limited, surtout avec beaucoup de mods).
 
  • J'aime
Reactions: YosKha

YosKha

Aventurier
21 Avril 2020
16
0
1
28
Donc que puis-je faire ? Y a-t-il une possible solution ? Et avec quel logiciel puis-je vérifier les informations à propos des coeurs de mon processeur ?
 
Dernière édition:

robin4002

Expert en informatique et systèmes d'information
Staff
Responsable technique
Responsable forum
12 Novembre 2012
20 891
158
3 004
347
26
Alsace
www.minecraftforgefrance.fr
Dans le gestionnaire des tâches, onglet performance => clic droit sur le graphique du processeur et passer la vue en "par cœur logique".
Tu pourras surveiller le processeur par cœur.
Après si c'est bien le thread de rendu de Minecraft qui sature, il n'y a pas grand-chose à faire, hormis tenter de trouver le (ou les) mod responsable de la forte charge.
Il y a peut-être aussi moyen d'améliorer un peu en jouant avec les arguments Java (changer la ram ou les paramètres du garbage collector).


Histoire de détailler un peu ce qu'il se passe dans un pc :
Je sais que le language java favorise l'utilisation du cpu au gpu
Ceci est assez inexact voir complètement faux.

Un programme s'exécute toujours sur le processeur, peu importe le langage. Ensuite via des API graphiques, un programme va pouvoir envoyer des tâches vers le gpu.
La quantité de tâche envoyé sur le gpu dépend de la conception du programme et de ce qui cherche à être fait. Un gpu peut faire certains calcules très vite, beaucoup plus vite que le processeur mais ne sait pas tout faire (en fait il sait surtout appliquer la même opération sur pleins de donnée d'un seul coup). Typiquement il est bon pour les calcules qu'on a besoin pour la 3D, le texturing, etc.
La quantité de tâche qu'on va donc pouvoir donner au gpu dépend de ce qu'on fait.
Minecraft est un jeu qui fait bien plus de calcul impossible à donner au gpu (génération des chunk, déplacement d'entité, traiter les actions des joueurs, calculer les collisions, etc.) que de calcul possible par le gpu (afficher du contenu à l'écran, calculer des transformations en fonction de l'angle de vue, etc.).
Tout simplement car Minecraft n'est pas un jeu graphique poussé, l'essentiel de la logique étant dans le déroulement du jeu. Et ça n'a donc rien à voir avec Java.

Cependant, comme c'est le processeur qui doit envoyer les tâches de rendu au gpu, on peut se retrouver dans des cas où le processeur n'arrive pas à le faire assez vite, car il est trop occupé avec les autres choses qu'il doit faire (c'est dans ce cas qu'on est "cpu limited")
Un élément qui n'aide pas, c'est qu'historiquement il n'est que possible d'envoyer des tâches au gpu depuis un thread (donc on ne peut pas répartir l'envoie de tâche sur 2 cœurs processeur, c'est forcément un seul qui le fait, celui qui gère le thread de rendu).
Les API graphiques modernes comme DirectX12 et Vulkan n'ont plus cette limitation, mais Minecraft utilise encore OpenGL, une ancienne version d'OpenGL d'ailleurs (pour des raisons de compatibilité).

Ensuite vient un désavantage du java (et de tout langage avec une gestion automatique de la mémoire, donc tous les langages dit "haut niveau").
C'est la présence d'un garbage collector.
Alors c'est aussi un gros avantage, car grâce à lui on peut garantir la sureté de la mémoire, ce qui élimine beaucoup de possible bug et permet de gagner du temps dans le développement (des problèmes du genre, double free, fuite de mémoire, buffer overflow, pointer null, etc. qui sont souvent compliqué à déboguer. En Java soit ils n'existent pas, soit on obtient une erreur claire sur ce qu'il s'est passé et donc on peut le corriger rapidement).
Le désavantage c'est l'impact sur les performances.
Le boulot du GC c'est d'éliminer tout les objets en mémoire qui ne sont plus utilisé. Ce qui veut dire qu'il va devoir mettre en pause l'exécution du vrai programme (donc le jeu Minecraft) pour vérifier la mémoire et libérer les zones qui ne sont plus utilisé.
C'est pour ça qu'il est fréquent d'avoir des lag spike sur Minecraft (court freeze ou ralentissement du jeu) : c'est quand le GC passe par là, on observe bien d'ailleurs la baisse de la ram utilisé à ce moment.

Pour améliorer ça, on peut augmenter la ram alloué (quand la quantité de ram est limite, le GC est obligé de passer plus fréquemment et arrive à libérer moins de ram, il est donc moins efficace) ou on peut demander à la JVM de faire des pauses plus courte (le GC va passer plus vite, mais va donc libérer moins de ram. Mais comme ces passages seront plus lissés dans le temps, les perf seront un peu meilleure).
Maintenant reste à voir dans quelles mesures on peut améliorer les choses sur ton cas.
 
Dernière édition:

YosKha

Aventurier
21 Avril 2020
16
0
1
28
J'ai fais les manipulations nécessaires et j'ai pu constater qu'en effet certains de mes coeurs tournent à 100%. Pensez-vous que cela pourrais venir d'un défaut de mon processeur ?
 

YosKha

Aventurier
21 Avril 2020
16
0
1
28
Merci beaucoup pour le temps que vous passez à rédiger vos réponses. Je ne pense pas que se soit un problème de ram car j'ai alloué 11go mais je vais essayer de le descendre à 8go car sur un forum reddit, l'un des créateur de modpack a dit que le jeu tournait mieux sans allouer trop mettre de ram. J'ai peux être aussi une hypothèse : dans les dossier du jeu j'ai rajouté le mod millénaire (avant de créer ma map) qui rajoute des villages, un de ces villages est juste à côté de ma maison. Peut-être que les pnj demandent trop de calculs pour le processeur et donc le saturent ce qui bloquent l'envoie d'informations au gpu. Pensez-vous que cela est possible ?

ps: Sur ma map j'ai trouvé plusieurs de ces villages. Je ne sais pas si le mod chunk load automatiquement les villages mais peut-être que c'est un facteur qui empire la situation.
 

robin4002

Expert en informatique et systèmes d'information
Staff
Responsable technique
Responsable forum
12 Novembre 2012
20 891
158
3 004
347
26
Alsace
www.minecraftforgefrance.fr
Effectivement ce n'est pas forcément une bonne idée d'augmenter trop la ram.
Tu peux me donner tous les arguments Java que tu utilises actuellement ?

Et oui il est possible que la charge vienne de là. Sinon il existe des logiciels (qu'on appelle des profiler) comme visualvm qui permettent de voir quel classe utilise le plus de temps cpu (et on peut donc remonter au mod).