COMPTOIR
  
register

Le Turbo Boost : une technique pratique, mais plus contraignante que ce que l'on pourrait espérer

Alors que les discussions concernant la course au nombre de cœurs ont engendré des débats fructueux sur notre comptoir, voilà qu’un nouveau sujet dans la même thématique se profile à l’horizon : le DVFS. Le terme, plutôt barbare, n’est pas très usité dans nos contrées francophones, car nous lui préférons le nom d’une de ses appellations commerciales, le Turbo Boost.

 

Pourtant, ce Dynamic Voltage-Frequency Scaling (ou Échelonnage Dynamique des Fréquences et des Tensions dans notre langue de Molière) est omniprésent dans nos ordinateurs et terminaux mobiles. En effet, bien que ce mécanisme permette de tricher allègrement sur la consommation, ce n’est clairement pas la raison originelle de son invention. L’idée de base était bien plus simple : étant donné que nos appareils alternent entre phases de sollicitation intense — par exemple, lors de calculs d’un document Excel — et phases bien plus calmes — filons l’exemple avec des moments passés à se gratter la tête sur la formule correcte à insérer dans une case —, nos besoins en matière de performances sont fortement hétérogènes. Pour économiser de l’énergie, il suffit par conséquent de calquer la puissance maximale du processeur sur la demande, qui s’effectue assez naturellement en tirant sur la fréquence, et en jouant sur la tension afin de conserver un système stable.

 

dvfs levels and intel p states

Les P-State : une première implémentation du DVFS par Intel, dans un but d’économie d’énergie. Notez la croissance quadratique de la consommation en fonction de la fréquence, décuplant l’intérêt de variations, même légères, de l’horloge (crédit : ResearchGate).

 

Enfantin ? Pas tant que ça : dans un premier temps, baisser la fréquence ne réduit pas toute la consommation de la puce, notamment en ce qui concerne les courants de fuite, qui restent inchangés. Inutile donc de chercher à trop ralentir la cadence du circuit : si le temps d’exécution devient trop long, la part de ces courants dans l’énergie totale dépensée devient majoritaire, et l’efficacité aux fraises.

En outre, une tâche n’est pas forcément limitée par le CPU : il est tout à fait possible que le processeur passe en fait son temps à attendre des valeurs de la RAM. Pourtant, cela qui n’empêche pas le scheduleur de demander le boost maximal (tentez par exemple sur une compression de fichiers) et ainsi de gaspiller des Watts à mauvais escient. Cela est d’autant plus risible que la mémoire vive n’est en général pas équipée de mécanismes de DVFS, du fait des rafraîchissements des données effectués à chaque cycle compliquant grandement l’aspect microélectronique du schmilblick.

 

La question devient d’autant plus épineuse une fois appliquée à un accélérateur, typiquement un GPU ou un NPU (pour les réseaux neuronaux), car une inconnue se rajoute : le nombre de cœurs/unités de calcul... Rajoutez à cela que certains cas d’usage (par exemple les puces d’analyse d’images dédiées à la conduite autonome) ne présentent plus les caractéristiques d’hétérogénéité qui ont donné naissance au DVFS, et vous obtenez le casse-tête classique d’un architecte devant sa feuille blanche et son cahier des charges plein.

 

dvfs machine learning semiengineering

Simulations (fournies par Synopsys) présentant les résultats de différents designs d’accélérateurs de ML. En rouge, la latence maximale, en bleue, l’énergie consommée, et en vert, la puissance : les designs au meilleur rendement énergétique (baton bleu le plus bas) sont les plus rapides (courbe rouge également plus basse), mais aussi les plus gourmands en Watts (bâton vert au plus haut) !

 

Ainsi, certaines recherches tentent la voie de l’AFS, ou Adaptative Frequency Scaling : plutôt que de chercher à naviguer entre des paliers fixes contrôlés par logiciel, par exemple entre 0,5 V et 0,95 V — une différence énorme en microélectronique, soit dit en passant, et nécessite un surcoût du design — les circuits peuvent disposer de leur propre unité de régulation de tension, permettant d’alimenter différents composants de la puce à grain fin, et pallier les baisses de tensions parfois observées en charge. Notez que cette implémentation est alors transparente aux yeux du programmeur, une bénédiction pour les coûts de développement. Néanmoins, l’étalonnage de ces bousins ne peut pas s’effectuer correctement sans une connaissance précise du domaine d’application de la puce, ce qui rend la praticité de cette technologie quasi nulle sur un CPU. Toujours sur le terrain des accélérateurs, voir des ASIC, une implémentation du DVFS signifie également un support logiciel des changements de palier, et une vérification étendue du bon fonctionnement sémantique de la puce, quelle que soit son mode de fonctionnement.

 

Certes, la plupart de ces reproches sont loin de nos CPU du bureau, cependant, la diversification des firmes aidant, rien ne dit qu’un accélérateur léger de Machine Learning ne pourrait pas voir le jour dans nos PC portables, ou un quelconque autre morceau de silicium dans nos routeurs. Affaire à surveiller ! (Source : SemiEngineering)

Un poil avant ?

La Chine pourrait-elle refuser le rachat d'ARM par Nvidia ?

Un peu plus tard ...

Enermax présente deux nouvelles gammes d'alimentations en bronze

Les 12 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par toffer81, le Lundi 05 Octobre 2020 à 11h41  
par Un ragoteur blond embusqué, le Lundi 05 Octobre 2020 à 11h38
Il a parlé d'undervolt, pas de underclock. En reduisant la tension le CPU consomme moins et il a donc moins de chance de faire du throttling (ce qui ferait perdre du temps).
L'undervolt ne fait pas perdre en puissance de calcul, il a même tendance à en faire gagner (pour la raison que j'ai donné au desus). Et cela a tendance aussi à faire gagner le CPU en esperance de vie. Cependant il faut que cela soit stable. Si l'undervolt est trop fort, tu t'exposes à des crash. (de la même manière que lorsque tu overclock tu doit augmenter un peu la tension pour eviter les crash).
Je pensais que c'était lié plus sur la fréquence, que la stabilité l'histoire du voltage

Maintenant c'est plus net! donc tout intérêt a undervolt si pas d'overclock
par Un ragoteur blond embusqué, le Lundi 05 Octobre 2020 à 11h38  
par toffer81, le Jeudi 01 Octobre 2020 à 11h53
Et par rapport au temps "perdu" en appliquant l'undervolt? (si jamais le proc tourne moins vite) sur un rendu long, ca peut faire "long" non?
Il a parlé d'undervolt, pas de underclock. En reduisant la tension le CPU consomme moins et il a donc moins de chance de faire du throttling (ce qui ferait perdre du temps).
L'undervolt ne fait pas perdre en puissance de calcul, il a même tendance à en faire gagner (pour la raison que j'ai donné au desus). Et cela a tendance aussi à faire gagner le CPU en esperance de vie. Cependant il faut que cela soit stable. Si l'undervolt est trop fort, tu t'exposes à des crash. (de la même manière que lorsque tu overclock tu doit augmenter un peu la tension pour eviter les crash).
par Reflections_aka_Av-Rho-Al en Île-de-France, le Jeudi 01 Octobre 2020 à 21h50  
par Un ragoteur bio en Île-de-France, le Jeudi 01 Octobre 2020 à 12h39
Pour éviter d 'avoir à tester des millions de CPU, une tension de fonctionnement avec le pire processeur est appliqué par défaut à tous même les bonnes séries. Cette tension de fonctionnement assure une certaine marge et est trop élevé pour les bonne séries.
Cette réponse est la version détaillé.

C'est surtout valable sur les CPUs et GPUs AMD (qui veut valider un max de puces), où il faut souvent downvolter.
par Ideal, le Jeudi 01 Octobre 2020 à 11h46
À priori on dirait que les SteepStep et compagnie était une techno utilisant(introduisant?) les P-State pour limiter la consommation et la chaleur des processeurs surement que les processeurs tournaient toujours à fond en peu pour rien. Un impératif limitation chaleur pour permettre la montée en multicore surement.

Tandis que + tard (pour les nehalem) Intel à pondu le TurboBoost qui lui serait le pendant inverse de SteepStep.

Epoque bénie les Nehalem.. cette techno à été implémenté directement dans l'ACPI en juin 2009.

Pendant très longtemps les processeurs auraient pomper un max de puissance même pour rien souvent...
Oui pour SpeedStep, mais le throttling c'était surtout pour que les ventirads pourris sur PC d'OEM ne deviennent pas des turbines. Ce n'était donc pas un imprétif de chauffe, vu que le mécanisme qui s'occupe de ça chez Intel c'est le "Thermal Monitor", qui s'activait bien au-dessus des températures recommandées et pas loin de TJunction (genre 85C minimum).

Merci pour tes infos sur l'ACPI et le Boost.

Les CPUs ne pompaient pas un max de jus même en ne foutant rien à 3Ghz, c'est largement plus bas qu'en charge.
par Reflections_aka_Av-Rho-Al en Île-de-France, le Jeudi 01 Octobre 2020 à 21h34  
par Ideal, le Jeudi 01 Octobre 2020 à 10h38
La première fois que j'ai vu le terme Dynamic Voltage-Frequency Scaling c'était dans le bios de mon i7 nehalem et certains utilitaires fournis avec la CM mais surement que ça existait avant cette fonctionnalité "turbo boost"?
Y a des infos sur son origine genre le premier processeur a l'utiliser?
Ca m'intéresse aussi, mais que sur ia32, AMD64, ARM, ARM64, POWER et SPARC.

J'ai plus tôt: Depuis 2007 il existe chez Intel le "Dynamic Acceleration", c'est l'ancêtre de ce que tu as, sauf que c'est géré par l'OS et non par le BIOS même si l'option pour l'activé était... dans le bios !
par Nicolas D., le Jeudi 01 Octobre 2020 à 10h58
Bonne question, je n'ai pas de réponse exacte à te fournir. La recherche académique avait produit un AsAP 2 vers 2010 qui était capable de dynamiquement modifier sa tension d'alimentation, mais il me semble bien que les P-State, Intel SteepStep et compagnie étaient déjà présentes à ce moment-là (développé en 2005 , en premier sur la seconde génération de Pentium III) et AMD Turbo Core qui a suivi, en 2010.
Merci pour ton lien sur AsAP !
C'est clairement le futur des CPUs et des GPUs vu que tous deux commencent à devoir sauvagement augmenter les caches pour contrer les limites de progression des architectures.

Par contre, Speedstep c'était surtout du throttling.
par toffer81, le Jeudi 01 Octobre 2020 à 11h53
Et par rapport au temps "perdu" en appliquant l'undervolt ?
Tu peux très bien undervolter sans même toucher aux fréquences: les performances restent donc intactes
par Un ragoteur bio en Île-de-France, le Jeudi 01 Octobre 2020 à 12h39  
Il faut savoir que lors de la production de processeurs , sur le wafer la qualité de fabrication change d'un processeur à un autre. Pour éviter d 'avoir à tester des millions de CPU, une tension de fonctionnement avec le pire processeur est appliqué par défaut à tous même les bonnes séries. Cette tension de fonctionnement assure une certaine marge et est trop élevé pour les bonne séries.

Avec un peu de chance tu peux réussir à trouver une tension plus basse de fonctionnement et à obtenir une meilleur fréquence pour ton processeur. C'est toi qui peaufine les réglages à la main.

par toffer81, le Jeudi 01 Octobre 2020 à 11h53  
par fuyard au Vercors en Auvergne-Rhône-Alpes, le Jeudi 01 Octobre 2020 à 11h23
moi j'undervolte le Proc, soit dans le bios soit dans le logiciel de ma carte mere, à l 'époque sur mon phenom X6, super proc, et ma carte mere, AM3 + je testai le truc, au repos, j'arrivai a gagner quelques degre, entre 3 ou 4 degre, le delta était un plus grand en charge, et en été,
pour les charges à 100% je testai çà avec des logiciels avec de long temps de rendu, comme media encoder ou des rendus avec vue Infinite, les nuages, les rayons du soleil, les reflexions, c'est interminable,

, aucune idée combien de watts j'economisai, arriver a gratter 5% ,de jus electrique, , 3 ou 4 degre toujours çà de pris avec un proc plus cool,
Et par rapport au temps "perdu" en appliquant l'undervolt? (si jamais le proc tourne moins vite) sur un rendu long, ca peut faire "long" non?
par Ideal, le Jeudi 01 Octobre 2020 à 11h46  
par Nicolas D., le Jeudi 01 Octobre 2020 à 10h58
il me semble bien que les P-State, Intel SteepStep et compagnie étaient déjà présentes à ce moment-là (développé en 2005 , en premier sur la seconde génération de Pentium III) et AMD Turbo Core qui a suivi, en 2010.
À priori on dirait que les SteepStep et compagnie était une techno utilisant(introduisant?) les P-State pour limiter la consommation et la chaleur des processeurs surement que les processeurs tournaient toujours à fond en peu pour rien. Un impératif limitation chaleur pour permettre la montée en multicore surement.

Tandis que + tard (pour les nehalem) Intel à pondu le TurboBoost qui lui serait le pendant inverse de SteepStep. ("pendant inverse" dans le but recherché mais en utilisant les mêmes ficelles)
Pour ainsi autoriser un core à monter + haut en fréquence en mettant simplement les autres cores en sommeil et donc pouvoir bénéficier de toute la dissipation thermique du processeur sur le core surexploité.

Epoque bénie les Nehalem.. cette techno à été implémenté directement dans l'ACPI en juin 2009.
Released in June 2009, revision 4.0 of the ACPI specification added various new features to the design; most notable are the USB 3.0 support, logical processor idling support, and x2APIC support.
Donc ça serait assez récent toussa. Pendant très longtemps les processeurs auraient pomper un max de puissance même pour rien souvent...
J'ai ptet fais une erreur de compréhension ou un raccourci malheureux ici ou là.
par fuyard au Vercors en Auvergne-Rhône-Alpes, le Jeudi 01 Octobre 2020 à 11h23  
moi j'undervolte le Proc, soit dans le bios soit dans le logiciel de ma carte mere, à l 'époque sur mon phenom X6, super proc, et ma carte mere, AM3 + je testai le truc, au repos, j'arrivai a gagner quelques degre, entre 3 ou 4 degre, le delta était un plus grand en charge, et en été,
pour les charges à 100% je testai çà avec des logiciels avec de long temps de rendu, comme media encoder ou des rendus avec vue Infinite, les nuages, les rayons du soleil, les reflexions, c'est interminable,

, aucune idée combien de watts j'economisai, arriver a gratter 5% ,de jus electrique, , 3 ou 4 degre toujours çà de pris avec un proc plus cool,
par Kernuun, le Jeudi 01 Octobre 2020 à 11h12  

https://media.giphy.com/media/av2qAouzcA70A/giphy.gif
par Vaark en Île-de-France, le Jeudi 01 Octobre 2020 à 11h10  
C'est surtout difficile de donner une date du début de la techno car - si je n'ai pas tout compris de traviole (ce qui est possible) - le DVFS est issu du DFS d'un côté (Intel SpeedStep, AMD Cool 'n Quiet / PowerNow, etc.) et du DVS de l'autre, donc l'origine du truc se perd un peu dans la nuit des temps informatiques.
par Nicolas D., le Jeudi 01 Octobre 2020 à 10h58  
par Ideal, le Jeudi 01 Octobre 2020 à 10h38
La première fois que j'ai vu le terme Dynamic Voltage-Frequency Scaling c'était dans le bios de mon i7 nehalem et certains utilitaires fournis avec la CM mais surement que ça existait avant cette fonctionnalité "turbo boost"?
Ptet même très longtemps comme bon nombre "d'astuces" dans le hardware.
Y a des infos sur son origine genre le premier processeur a l'utiliser?
Bonne question, je n'ai pas de réponse exacte à te fournir. La recherche académique avait produit un AsAP 2 vers 2010 qui était capable de dynamiquement modifier sa tension d'alimentation, mais il me semble bien que les P-State, Intel SteepStep et compagnie étaient déjà présentes à ce moment-là (développé en 2005 , en premier sur la seconde génération de Pentium III) et AMD Turbo Core qui a suivi, en 2010.
par Ideal, le Jeudi 01 Octobre 2020 à 10h38  
La première fois que j'ai vu le terme Dynamic Voltage-Frequency Scaling c'était dans le bios de mon i7 nehalem et certains utilitaires fournis avec la CM mais surement que ça existait avant cette fonctionnalité "turbo boost"?
Ptet même très longtemps comme bon nombre "d'astuces" dans le hardware.
Y a des infos sur son origine genre le premier processeur a l'utiliser?