Sur certains modèles de GeForce, le BIOS ne gère pas nativement la réduction automatique de la fréquence du GPU en mode 2D. C’est le cas par exemple de ma 8800 GT. Il y a quelques temps, whismerhill (du forum de Matbe) m’a fait découvrir une fonction intéressante de RivaTuner, qui permet de restaurer un comportement avec des fréquences 2D et des fréquences 3D, et même bien plus… De quoi faire soi même sa carte graphique « verte ».
Le principe consiste à utiliser des événements du moniteur matériel de RivaTuner pour déclencher automatiquement l’application d’un profil de paramétrage. Dans ce tutoriel, nous allons manipuler deux types de profils : des profils de fréquence, qui seront appliqués en fonction d’événement basés sur la vitesse d’affichage et des profils de vitesse de ventilateur, qui seront appliqués en fonction de la température, avec comme objectif une réduction du niveau de bruit de la carte, la thermorégulation de la 8800 GT ayant tendance à viser des températures trop basses, induisant donc une vitesse de rotation plus élevée, et un bruit plus audible.
- 1ère étape : création des profils
Lancez RivaTuner et rendez-vous dans la boîte de dialogue « System settings » :
Dans l’onglet « Overclocking », définissez les fréquences que vous désirez et enregistrez le profil en lui donnant un non explicite (par exemple, utilisez la fréquence GPU comme nom de profil) :
Note : pour pouvoir enregistrer, il faut d’abord appliquer les fréquences, pour tester leur validité.
Créez au moins deux profils (un haute fréquence et un basse fréquence), mais évitez d’en créer plus de trois, la gestion des basculement automatiques devenant alors compliquée, à cause des variations de framerate induite par les changements de fréquence. Pour ce tutoriel, trois profils ont été créés : un profil à 150 MHz pour la 2D et deux profils à 300 MHz et 600 MHz pour la 3D.
Faites ensuite de même dans l’onglet « Fan » pour les profils de ventilation :
Vous pouvez définir autant de profils de ventilation que vous voulez, pour obtenir une thermorégulation plus fine, il n’y a pas ici de problème de saut de température lors du changement de vitesse du ventilateur. J’ai pour ma part créé quatre profils : 25%, 29% (valeur minimum de la thermorégulation d’origine), 50% et automatique (utilisation de la thermorégulation standard).
- 2ème étape : activez le moniteur matériel
Rendez vous dans la fenêtre du moniteur matériel :
Dans la fenêtre du moniteur, cliquez sur le bouton rouge (« Enable background monitoring ») en bas à droite s’il n’est pas enfoncé, puis cliquez sur « Setup » et activez les sources « GPU temperature », « Framerate » et « Hardware acceleration » :
- 3ème étape : création des launchers
Retournez à la fenêtre principale de RivaTuner, dans l’onglet « Launcher ». Il va falloir ajouter autant de launcher de type « Regular item » qu’il y a de profils, en cliquant sur le bouton « + » :
Dans la fenêtre de création, donnez un nom explicite au launcher, cochez la case « Associated overclocking profile » ou « Associated fan profile » et sélectionnez le profil :
- 4ème étape : création des événements dans le scheduler
Passez maintenant à l’onglet « Scheduler », pour planifier l’activation des launchers. Pour chaque critère d’activation, il faut créer une entrée dans le scheduler en cliquant sur « + » :
Pour chaque tâche, il faudra choisir un nom, un launcher, et surtout, un critère de déclenchement :
Le critère de déclenchement sera « on hardware monitoring threshold event » pour toutes les tâches.
Commençons par les tâches de changement de fréquence lors de l’entrée et la sortie du mode 3D. Ces tâches utiliseront la source « Hardware acceleration », avec un threshold à 0.5 dans les deux cas et une direction montante (upward) pour la tâche activant les fréquences 3D et descendante pour la tâche activant les fréquences 2D. Si vous avez défini deux profils de fréquence 3D différents, utilisez l’un des deux, selon vos préférences : le profil de plus basse fréquence garanti le maintient d’une consommation minimale, mais peut engendrer un « blocage » à cette fréquence même si elle est insuffisante pour un jeu donné, tandis que le choix du profil de haute fréquence évitera de rester bloquer à la fréquence basse, mais fera par contre tourner la carte à haute fréquence dans les applications fonctionnant à framerate fixe et relativement faible (lecteurs vidéo par exemple).
Si vous avez créé deux profils de fréquence 3D, il faut ajouter deux tâches : une pour le basculement de la fréquence haute vers la fréquence basse et une pour le basculement inverse. L’idée est de faire basculer en haute fréquence quand le framerate descend en dessous d’une certaine valeur (55 dans mon cas) et de basculer en basse fréquence quand le framerate passe au dessus d’une certaine valeur (120 dans mon cas). Il faut donc créer deux tâches avec le source « Framerate », l’une avec un threshold de 55 en direction descendante, et l’autre avec un threshold de 120 en direction montante.
Vous pouvez bien sûr utiliser d’autres framerates limites, selon vos préférences, mais attention, à ce que le ration entre la limite haute et la limite basse soit supérieur au ratio entre la fréquence haute et la fréquence basse. Dans le cas contraire, des oscillations risquent de se produire. Par exemple, avec des limites à 60 et 90 pour des fréquences de 300 et 600 MHz, si le framerate tombe à 55 à 300 MHz, la fréquence va repasser à 600, ce qui peut quasiment doubler le framerate, et donc le faire repasser au dessus de 90, donc réactiver le profil 300 MHz, donc retomber sous les 60 fps, etc…
Pour les profils de ventilation, la source à utiliser est « GPU temperature ». Pour chaque profil, il faut créer deux tâches : une température à partir de laquelle le ventilo passe à cette vitesse quand la température augmente, et une quand la température diminue. Pour les deux profils extrêmes (mini et maxi), une seule tâche est à créer (une à la baisse pour la vitesse mini, une à la hausse pour la vitesse maxi). Les valeurs limites peuvent être les mêmes dans les deux sens pour une vitesse donnée. Dans mon cas, j’ai activé le profil 25% quand la température passe en dessous de 70°, 29% quand elle passe en dessous ou au dessus de 75°, 50% quand elle passe en dessous ou au dessus de 80° et régulation automatique quand la température passe au dessus de 85°.
Enfin, vous pouvez créer des tâches utilisant l’événement de déclenchement « at Windows startup » et « on resuming from suspend » pour appliquer les fréquences et vitesse minimales lors du démarrage de la machine et de la sortie de la veille.
- 5ème étape : activer le serveur de statistiques
En l’état, les changements ne fonctionnent que lorsque RivaTuner est lancé. Pour ne pas avoir à le lancer, vous pouvez utiliser « RivaTuner Statistics Server » (disponible dans le menu démarrer) et activer son lancement automatique au démarrage de Windows.
Une fois tous ces réglages effectués, voici le résultat pendant une partie de GTR Evolution :
On remarque que dans ce jeu, la carte passe la majeure partie du temps à la fréquence basse, ce qui rend cette solution plus économique que les habituelles fréquence 2D et fréquence 3D proposées par certaines cartes. Le ventilateur n’atteint sa vitesse maximale que pendant de courtes périodes, alors qu’avec la régulation automatique d’origine, il turbine à fond quasiment dès qu’un jeu est lancé.
Note : dans certains cas, la détection « Hardware acceleration » reste bloquée à 1 en permanence, rendant impossible le basculement entre les fréquences 2D et 3D. Si c’est votre cas, vous pouvez obtenir un résultat similaire en remplaçant la source « Hardware acceleration » par la source « Framerate » dans les deux tâches concernées, et en laissant les mêmes valeurs limites. En effet, lorsque l’application active n’utilise par l’accélération matérielle, le framerate détecté tombe à 0.
Dernier problème à résoudre : les lecteurs vidéo utilisant l’accélération matérielle déclenchent le passage aux fréquence 3D. Je vous tiendrais informés dès que j’aurais trouvé une solution de contournement…
Encore moi qui me balade sur ce blog que je ne connaissais pas.
Effectivement, Rivatuner permet des réglages plus poussés que Nibitor.
Il y a une chose que j’ai découverte récemment dans les readme des pilotes Nvidia, et que je trouve vraiment dommage, c’est le fait qu’en cas de fonctionnement en bi-écran, la carte bascule en mode 3D même si on reste sur le bureau. Dommage dommage…. même si peu de « constructeurs » se donnent la peine d’implémenter le mode 2D dans leurs bios. Encore plus dommage… L’optimisation énergétique des Gpu a vraiment des années de retard sur les Cpu.