Auteur Sujet: Ryzen 3000 : Fréquences et boost différent Windows/Linux  (Lu 3874 fois)

0 Membres et 1 Invité sur ce sujet

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 345
Bonsoir,

Je me suis monté une toute nouvelle config avec un Ryzen 3700X, mais je rencontre des bugs bizarres sous Linux.

Le premier (que je n'arrive plus à reproduire) : La fréquence la plus basse officielle est de 2.20 Ghz, or les premiers temps, elle était de 1.7 Ghz. Et lorsque je sélectionnais la fréquence de base (3.60) elle ne dépassait pas 3.36 Ghz et ça ne montait pas plus haut. C'était la même sur ma ubuntu déjà installée (18.04 kernel 4.15) ou un live USB. Pendant ce temps sur windows tout va bien.

Après avoir gratté dans le BIOS, j'ai activé il me semble le C state control et là miracle les "paliers" sont devenus corrects et en passant à 3.60, le CPU boost enfin à 4 GHz ! Mais et c'est là que c'est incompréhensible : Je décide de le remettre à zéro pour confirmer le problème, mais ça ne change absolument rien : les fréquences sont toujours bonnes !

Autre chose étrange : Sur windows avec tous les coeurs actifs j'arrive à 4250-4275 Mhz, sur Linux je ne dépasse pas 4050 Mhz MAIS si je baisse de 100mV la tension du CPU, là ça atteint 4145 Mhz  :o Belle incohérence puisque si la tension baisse logiquement ça devrait aller moins haut...

Si quelqu'un est équipé d'un 3700X j’aimerais bien un retour là dessus.

Merci.

PS : Ma carte mère est une MSI B450 tomahawk MAX avec le dernier BIOS (AGESA 1.0.0.4)
« Modifié: 20 avril 2020 à 22:31:06 par renaud07 »

butler_fr

  • Client Bbox adsl
  • Modérateur
  • *
  • Messages: 3 605
  • FTTH orange
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #1 le: 20 avril 2020 à 22:42:47 »
pour ton bug je ne sais pas trop

par contre pour la partie tension c'est tout a fait logique.
le turbo boost des nouveaux processeurs fonctionne sur le principe de l'enveloppe thermique du cpu.
si le cpu ne dégage pas trop de chaleur la fréquence augmente.

hors lorsque tu baisse la tension, tu diminue la consommation et le dégagement thermique, autorisant donc une fréquence de boost plus élevée.

le seul truc que la baisse de tension risque d'affecter c'est la stabilité du système.
si tu baisse trop la tension et que la fréquence augmente trop boom

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 345
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #2 le: 21 avril 2020 à 00:29:43 »
Merci pour ta réponse.

En effet c'est logique pour le dégagement thermique, sauf que dans mon cas j'ai un excellent ventirad, et le CPU est très loin de sa zone de throttling (moins de 60° alors que c'est à partir de 80 qu'il commence à réduire il me semble) et sous windows avec le réglage par défaut qui boost fortement le Vcore, il n'y a aucun problème de montée en fréquence.

Je vais tester avec la dernière ubuntu beta voir si un noyau récent change quelque chose.

stylou08

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 495
  • Ardennes (08)
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #3 le: 21 avril 2020 à 08:57:32 »
Bonjour,
Que donne la commande screenfetch ou lscpu. Pour voir si il reconnaît bien le cpu.

Ensuite en remettant les paramètres du bios "par défaut", voir si le fichier suivant
nano /sys/devices/system/cpu/cpufreq/boostaffiche 1 ou 0. Normalement sur 1 cela prend en charge le "Turbo-Core". En remplaçant par 0, cela désactive manuellement la fonction. Le cpu ne passera jamais en "mode turbo-core".

Je ne sais pas si cela changera quelque chose ou si je suis en plein dans le sujet. Pour plus d'info ne pas hésiter à aller sur https://www.kernel.org/doc/Documentation/cpu-freq/ et https://www.kernel.org/doc/Documentation/cpuidle/
En espérant que cela puisse aider.


stylou08

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 495
  • Ardennes (08)
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #4 le: 21 avril 2020 à 09:35:45 »
Sinon essayer de passer par une "version HWE du noyau", voir si il y a une meilleur prise en charge du cpu.

Pour l'installation
sudo apt install --install-recommends linux-generic-hwe-18.04 xserver-xorg-hwe-18.04

Pour la suppression de ceux inutilisés
sudo apt purge linux-generic linux-image-generic linux-headers-generic xserver-xorg ; sudo apt autoremove

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 345
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #5 le: 21 avril 2020 à 14:26:07 »
Le CPU est bien reconnu mais je n’arrive pas à savoir exactement dans quel noyau le support de zen 2 a été ajouté.

lscpu
Architecture :                          x86_64
Mode(s) opératoire(s) des processeurs : 32-bit, 64-bit
Boutisme :                              Little Endian
Processeur(s) :                         16
Liste de processeur(s) en ligne :       0-15
Thread(s) par cœur :                    2
Cœur(s) par socket :                    8
Socket(s) :                             1
Nœud(s) NUMA :                          1
Identifiant constructeur :              AuthenticAMD
Famille de processeur :                 23
Modèle :                                113
Nom de modèle :                         AMD Ryzen 7 3700X 8-Core Processor
Révision :                              0
Vitesse du processeur en MHz :          2068.589
Vitesse maximale du processeur en MHz : 3600,0000
Vitesse minimale du processeur en MHz : 2200,0000
BogoMIPS :                              7200.07
Virtualisation :                        AMD-V
Cache L1d :                             32K
Cache L1i :                             32K
Cache L2 :                              512K
Cache L3 :                              16384K
Nœud NUMA 0 de processeur(s) :          0-15
Drapaux :                               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca


J'ai également testé la 18.04.4 avec le 5.3 : même problème ça boost mais toujours vers 4.12 et jamais plus haut (sauf quand moins de coeurs sont actifs)...

Le pire c'est qu'il reconnaît très bien la fréquence turbo max :
$  sudo dmidecode -t processor | grep Speed
[sudo] Mot de passe de renaud :
Max Speed: 4400 MHz
Current Speed: 3600 MHz

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #6 le: 21 avril 2020 à 14:44:32 »
Il est important pour le matériel récent de passer sur les derniers kernel.

Les commande à passer pour passer au nouveau kernel (ou revenir à l'ancien) sont sur https://lafibre.info/serveur-linux/linux-4-18/

Ubuntu offre en effet la possibilité de rester 5 ans sur le même kernel (4.15 pour Ubuntu 18.04 LTS) ou de basculer tous les 6 mois vers un kernel plus récent appelé HWE.

Perso tous mes serveurs et VM, même un Core2 Duo assez ancien sont en HWE.


renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 345
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #7 le: 21 avril 2020 à 16:50:45 »
Je crois que je vais installer la 20.04 direct vu qu'elle sort dans 2 jours. Même si au vu du résultat avec la 18.04.4 en live et le 5.3 sans amélioration, j'ai peu d'espoir que ça change quelque chose...


vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #8 le: 21 avril 2020 à 20:09:38 »
Bonne idée.

Ce sera le kernel 5.4 donc peu de différences, mais tout l’environnement logiciel et de configuration change.

stylou08

  • Abonné RED by SFR fibre FttH
  • *
  • Messages: 495
  • Ardennes (08)
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #9 le: 21 avril 2020 à 20:28:56 »
En y pensant, je ne sais pas pour quelle utilisation tu as besoin d'avoir accès au maximum de la puissance de ton proc mais peut être que "le kernel low latency" te serait utile ?
Sur la doc c'est orienté "mao" mais il ne sert pas qu' à ça.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 3 345
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #10 le: 21 avril 2020 à 21:34:39 »
20.04 installée.

Comme je m'y attendais ça ne change rien. Pas de boost supplémentaire et toujours cette bizarrerie avec les -100mV qui boost plus haut. Cependant, après quelques recherches je suis tombé sur un petit utilitaire génial : zenpower. Spécialement développé pour mesurer les températures, voltages et fréquences des ryzen.

J'ai découvert un truc intéressant : le Vcore @allcores n’excède jamais 1.25v (Vcore stock ou ajusté) là où windows monte à 1.34-1.36. Ce qui expliquerait pourquoi la fréquence n'augmente pas.

Mais y'a aussi une autre donnée contradictoire : Il chauffe plus. Ça atteint 63° en quelques secondes là où windows n’excède pas 50 ! Soit il y'a un problème avec la lecture des capteurs sous windows, soit y a un bug sous Linux... C'est totalement incohérent.

vivien

  • Administrateur
  • *
  • Messages: 47 086
    • Twitter LaFibre.info
Ryzen 3000 : Fréquences et boost différent Windows/Linux
« Réponse #11 le: 21 avril 2020 à 21:45:49 »
Je ne pourrais pas t'aider, mais je souhaitait répondre sur le kernel lowlatency : Il ne permet pas plus de puissance, au contraire, il fait avancer moins vite les process car a peine a-t'il commencé une tache qu'il va voir si il peut passer à une autre tache.

Son objectif est de s’approcher d'un système temps réel en permettant de faire avancer différents processs qui ont des contraintes fortes en temps et qui ne doivent peuvent pas rester interrompu quelques dizaines de ys.