EN DIRECT en ligne connexion / inscription
Connexion

Surnom/Pseudo
Mot de Passe :

[ Vous avez perdu votre mot de pass ? | Devenir membre ]

×

[howto] undervolter son gpu amd sous linux

CowcotLand topic RSS feed Surveiller les réponses de ce sujet
rimaille @
Cultivateur
Cultivateur

1141pts

Inscrit le: 16 septembre 2011
Age: 45
Messages: 782
Localisation: Sisteron
Navigateur : n.c.

Hors ligne
Message Posté le: 13 juillet 2019 à 09:18  Lien permanent
Répondre en citant
/!\ Attention, cela peut potentiellement engendrer des pannes matérielles, si vous appliquez ce tuto faites-le à vos risques et périls et en pleine conscience, je ne serai en aucun cas responsable d'un quelconque problème

L'intérêt est grand d'undervolter un gpu amd : on réduit sa conso, sa chauffe, le bruit généré.
Par défaut les produits AMD sont souvent survoltés en usine : cela permet d'augmenter le nombre d'unités valides qui tourneront aux fréquences désirées, mais dans les faits une immense majorité de gpu peuvent s'undervolter franchement.
Dans certains cas on augmente même ses performances, comme la carte n'atteint pas sa température limite, on peut overclocker ram et core plus haut sans que ça throttle. Ce n'est pas mon but ici, mais bon à savoir...

C'est tout simple, mais d'abord il faut autoriser la modification de ces paramètres en rajoutant amdgpu.ppfeaturemask=0xffffffff aux options de boot du noyau, et relancer linux.

Ensuite il faut rentrer les bonnes valeurs dans le bon fichier, en root.

d'abord je détaille un poil la syntaxe :

Code:
echo "s 0 300 750" > /sys/class/drm/card0/device/pp_od_clk_voltage


ici "s" veut dire qu'on va modifier le core ("m" pour la mémoire)
0 c'est le pstate, de 0 à 7 sur ma rx580
300 c'est les Mhz du core
750 c'est les mV qu'on veut appliquer

En résumé : au repos, le core de la carte tournera à 300Mhz avec une alimentation de 750millivolts

C'est parti, voici mes réglages pour ma rx580 nitro+ :

Code:
echo "s 0 300 750" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 1 600 769" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 2 900 887" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 3 1145 975" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 4 1215 975" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 5 1257 1002" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 6 1300 1002" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "s 7 1340 1002" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "m 0 300 750" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "m 1 1000 850" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "m 2 2000 900" > /sys/class/drm/card0/device/pp_od_clk_voltage
echo "c" > /sys/class/drm/card0/device/pp_od_clk_voltage


Si vous obtenez des artefacts graphiques (peu probable, ça n'arrive que dans certaines situations très rares... comme pour moi qui utilise openbox et dont l'affichage a du mal avec l'activation de ppfeaturemask), c'est causé par les variations de fréquence de la mémoire de la vram, il suffit donc de la bloquer (aucune incidence sur la consommation globale ça consomme très peu, ni sur la chauffe de la carte en tout cas sur ma rx580 nitro+) :
Code:
echo "manual" > /sys/class/drm/card0/device/power_dpm_force_performance_level
echo "2" >  /sys/class/drm/card0/device/pp_dpm_mclk


Enfin, une autre option intéressante, c'est de pouvoir changer le powercap : on peut demander à la carte de ne consommer que 200W max en crête par exemple, si on a une vega c'est intéressant, ou si notre alim est faiblarde etc
Code:
echo 200000000 > /sys/class/drm/card0/device/hwmon/hwmon0/power1_cap
Voir le profil de l'utilisateur Envoyer un message privé
rimaille @
Cultivateur
Cultivateur

1141pts

Inscrit le: 16 septembre 2011
Age: 45
Messages: 782
Localisation: Sisteron
Navigateur : n.c.

Hors ligne
Message Posté le: 13 juillet 2019 à 09:30  Lien permanent
Répondre en citant
/!\ Attention, cela peut potentiellement engendrer des pannes matérielles, si vous appliquez ce tuto faites-le à vos risques et périls et en pleine conscience, je ne serai en aucun cas responsable d'un quelconque problème

Et mon script pour la gestion des ventilos (je sais ça tourne pas vite, je suis un ayatola du bruit, mais ça tourne nickel et ça chauffe modérément avec l'undervolt), je suis à 0rpm en bureautique et dans la plupart des usages courants, même avec ces fortes chaleurs d'été.

note : ce ne sont pas des pourcentages, vous aurez peut-être noté la présence du 200 qui correspond à ma ventilation de secours. /sys/class/drm/card0/device/hwmon/hwmon0/pwm1 peut prendre 255 pour 3200rpm. Pour calculer le nombre de rpm il faut donc faire un produit en croix :
awk '{printf "%.fRPM", $1 * 3200 / 255}' /sys/class/drm/card0/device/hwmon/hwmon0/pwm1

Code:
#!/bin/sh

function f_set_gpu_fan {
echo 1 > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1_enable
echo ${1} > /sys/class/drm/card0/device/hwmon/hwmon0/pwm1
}
while true ; do
                temp=$(awk '{print $1 / 1000}' /sys/class/drm/card0/device/hwmon/hwmon0/temp1_input)
                if [ ${temp} -lt 50 ] ; then f_set_gpu_fan 0
                elif [ ${temp} -lt 55 ] ; then f_set_gpu_fan 20
                elif [ ${temp} -lt 56 ] ; then f_set_gpu_fan 30
                elif [ ${temp} -lt 57 ] ; then f_set_gpu_fan 40
                elif [ ${temp} -lt 58 ] ; then f_set_gpu_fan 50
                elif [ ${temp} -lt 59 ] ; then f_set_gpu_fan 60
                elif [ ${temp} -lt 60 ] ; then f_set_gpu_fan 80
                elif [ ${temp} -lt 65 ] ; then f_set_gpu_fan 90
                elif [ ${temp} -lt 70 ] ; then f_set_gpu_fan 100
                elif [ ${temp} -ge 80 ] ; then f_set_gpu_fan 200
                fi
        sleep 1
done
Voir le profil de l'utilisateur Envoyer un message privé
Sauter vers: 
Surveiller les réponses de ce sujet CowcotLand topic RSS feed  

Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sujets similaires

Sujet Auteur Forum Réponses Posté le
Topic Verrouillé J'ose pas sous-titrer Alfie Blagues 1 12 mars 2024 à 14:32
Pas de nouveau message Wifi dans parking sous sol en copropriété Jess Périphériques 7 22 février 2024 à 19:59
Pas de nouveau message [OS] - Passage à Linux (gaming, ....) the_man3 OsLand 82 29 janvier 2024 à 10:51
Pas de nouveau message Installation Linux SSD konarovic OsLand 2 15 janvier 2024 à 10:41
Pas de nouveau message [WB] Virtu du Ghetto sous OMV et FM2 mini-pouce Virtualisation 2 12 octobre 2023 à 19:01