Optimiser les performances de votre chipset graphique intégré

Qu'est-ce qui flingue les performances de votre processeur avec chipset graphique intégré ? Je vous propose des pistes en prenant exemple sur les puces intel.

Optimiser les performances de votre chipset graphique intégré
crédit photo: Brian Kostiuk

Dernièrement, il m'est arrivé de me retrouver, pour le travail ou sur mon temps de jeu, confronté à des problèmes de performance sur des puces intel de 11ème génération. Parfois je rencontrais des ralentissements ou des menus saccadés, quand ce n'était pas tout simplement des jeux victimes de pertes de FPS alors qu'ils tournaient sans problème sur ma machine avant l'installation d'une distribution Linux.

J'attribuais ces quelques difficultés à un retard technique du driver intel open source ou de MESA - très présomptueux de ma part j'en conviens. Puis je suis tombé sur cet article du blog de Jason Ekstrand, ancien employé d'intel habitué aux contributions autour de Vulkan (voir son profil github).

Il y explique, en Anglais, comment profiter de tout le potentiel d'un processeur avec chipset graphique sous Linux - et je m'apprête à vous en résumer l'essentiel.

L'alimentation électrique et la dissipation thermique

Si mes problèmes ne sont survenus que sur des machines portables, il y a une raison simple, qui trouve son origine dans une valeur au nom barbare: le TDP. Pour faire court, le «Thermal Design Power» représente, selon la documentation d'Intel, la quantité (en watts) de chaleur dissipée par un processeur lorsque tout ses cœurs sont actifs.

Prenons un exemple concret pour plus de clarté: le blog de Mr. Ekstrand indique que dans la fiche technique de la puce i7-1065G7, on trouve trois valeurs possibles pour le TDP: 12W, 15W et 25W. Vous vous en doutez, changer cette valeur ne sert pas simplement à dissiper plus de chaleur: si votre processeur a plus de puissance à sa disposition, il sera également en mesure d'atteindre des fréquences d'horloge plus élevées (jusqu'à un point, le matériel répondant à d'autres contraintes comme la chaleur supportée et les délais de propagation du signal, mais je m'aventure sur un terrain dont la maîtrise m'échappe, revenons à nos moutons électriques).

Consommer plus de courant, et donc dissiper plus de chaleur (votre ordinateur convertit l'énergie qu'il reçoit en chaleur), a également un impact négatif sur l'autonomie de votre batterie, c'est pourquoi certains fabricants mettent le TDP par défaut à une valeur basse, pour laisser par la suite d'éventuels logiciels changer celle-ci de façon intelligente après le démarrage du système d'exploitation.

Sous Windows, ce sont précisément les drivers intel qui s'occupent de ça - mais une fois Linux installé, il n'y a pas vraiment de solution par défaut. Ou plutôt, il en existe une, thermald, open source et développée par le fabricant, mais elle n'est pas nécessairement activée suite à l'installation d'une distribution comme Ubuntu par exemple.

La raison historique à cela se trouve dans dptfxtract, une dépendance propriétaire de cet outil miracle, qui n'est pas toujours installée par défaut à cause de sa licence. Rassurez-vous, depuis la version 2.0 de thermald, il n'est plus nécessaire d'installer quoi que ce soit d'autre à côté, il vous suffit de l'installer et l'activer directement (je vous renvoie au manuel de votre distribution favorite).

D'autres causes aux problèmes de performance

power balance

Plus compliqué maintenant, la répartition de la puissance disponible entre les cœurs de votre processeur et son chipset graphique. Sous Windows, j'ai trouvé plusieurs outils permettant de forcer manuellement la part à attribuer au CPU et à son GPU intégré. En revanche, je n'ai pas trouvé d'équivalent sous Linux, où cette valeur semble uniquement changer dynamiquement en fonction de la charge sur le processeur.

C'est donc une donnée que vous devez prendre en compte: un autre programme en arrière-plan force t-il le processeur a demander plus de puissance, ou a se mettre en mode boost, prenant la priorité sur la puce graphique ?

Les governors

Le noyau Linux gère le changement de fréquence dynamique du processeur selon différentes politiques intégrées: ce sont les governors. Les deux que vous avez le plus de chance de rencontrer dans la nature se nomment «performance» et «powersave», permettant respectivement d'utiliser un maximum de puissance disponible pour avoir les fréquences les plus élevées possibles, et, à l'inverse, d'avoir la consommation la plus basse possible (cela ne veut pas dire pour autant que les fréquences resteront basses, elles peuvent augmenter si la charge de travail le requiert).

Si en temps normal sur votre PC de jeu équipé d'une carte graphique dédiée le governor «performance» fera parfaitement l'affaire, dans le cas d'un chipset intégré où CPU et GPU se battent en duel pour la puissance disponible, tout allouer aux cœurs du processeur ne donnera pas forcément les meilleures performances de jeu.

Optimiser ses performances avec gamemode

Les informations plus haut sont cruciales pour faire une bonne utilisation de GameMode, l'outil développé par Feral Interactive dont vous avez peut-être déjà entendu parler dans les cercles anglophones de notre communauté.

Celui-ci permet, via un fichier de configuration, de prioriser les processus de vos jeux et de forcer un governor de votre choix sur votre CPU ou (et c'est là que ça nous intéresse) votre iGPU pendant la durée de l'exécution d'un jeu.

Utiliser correctement ce logiciel sort un peu du cadre de cet article et nécessiterait des explications longues et dépendantes de votre setup, je réserve donc cela à une publication ultérieure.


Avec toutes ces informations, vous devriez avoir une idée plus claire des principales variables qui viendront affecter votre expérience de jeu lorsque vous utilisez un chipset graphique. J'espère sincèrement que cela vous permet d'y voir plus clair, et si vous avez besoin d'aide pour passer à la mise en pratique, sachez que je compte prochaînement publier ici un tutoriel sur l'utilisation de GameScope.

D'ici là, vous pouvez vous abonner à GNUgaming sur twitter, partager un lien vers cette page ou tout simplement rejoindre d'autres joueurs linux francophones sur notre Discord.