Diapo : comment mesurer la consommation des GPU

Mesurer précisément mais à moindre coût

Image 1 : Diapo : comment mesurer la consommation des GPU

Lors de nos tests de cartes graphiques, un soin tout particulier est porté aux mesures de consommation. Notre confrère allemand Igor Wallossek possède une plateforme complète dédiée à ces mesures, avec des équipements de pointe. Mais il est hélas impensable de dupliquer ce type d’installation, autant pour des raisons techniques que financières : cela représente plus de 10 000 dollars d’équipements !

Nous avons donc cherché une autre solution, plus économique, pour les tests où nous n’avons pas besoin de résultats aussi poussées, mais sans toutefois négliger la précision et la fiabilité des mesures. C’est sur la solution Powenetics, mise au point par Aris Mpitziopoulos de chez Cybenetics, que notre choix s’est porté.

Le système complet coûte quelques centaines d’euros et comprend une alimentation, en l’occurrence une Toughpower iRGB Plus 1050W de Thermaltake, un adaptateur PCI-Express 16x afin de pouvoir mesurer la consommation via le port PCIe, et un certain nombre de modules et capteurs fabriqués par Tinkerforge.

Les Master Blocks Tinkerforge

Les Master Blocks Tinkerforge représentent la base matérielle (open-source) de la solution Powenetics. Il s’agit de petits modules, basés sur un microcontrôleur 32-bit Atmel ATSAM4S4C (ARM Cortex-M4, 256 Ko de Flash et 64 Ko de SRAM). Chaque module peut prendre en charge jusqu’à 4 capteurs.

Empilables, ces Master Blocks sont directement alimentés via le port USB de l’ordinateur qui servira de plateforme de contrôle et monitoring.

Les Bricklets Tinkerforge de mesure

Pour effectuer les différentes mesures sur les alimentations PCI-Express 6-pin et 8-pin, nous utilisons des Bricklets “Voltage/Current” proposés par Tinkerforge. Ils permettent, grâce à un shunt d’ampèremètre et moniteur de puissance INA226, de mesurer précisément la tension (jusqu’à 36V) et l’intensité (20A max) du courant, avec une résolution de 1 mA / 1 mV. Certaines cartes graphiques utilisant trois connecteurs d’alimentation PCIe, ils nous faut autant de Bricklets pour mesurer les différentes lignes +12V.

Le riser PCI-Express 16x

La mesure la plus complexe se situe au niveau du port PCI-Express : la carte graphique pouvant tirer jusqu’à 75W via ce connecteur, nous devons impérativement mesurer la consommation des lignes +12V et +3,3V.

Nous utilisons donc un adaptateur PCI-Express 16x PEXP16-EX fabriqué par Adex Electronics, légèrement modifié afin de pouvoir y brancher deux autres Bricklets de mesure à la place des fusibles initialement présents. C’est le moment de faire jouer le fer à souder ! Deux petits adaptateurs passifs PCIe 16x sont également utilisés de part et d’autre du riser afin de ménager ses connecteurs PCI-Express et d’allonger sa “durée de vie”.

Notons que ce système permet de mesurer la consommation de n’importe quelle carte PCI-Express sur les lignes +3,3V et +12V, pas uniquement les cartes graphiques. Nous l’utiliserons d’ailleurs prochainement avec un adaptateur M.2 pour mesurer la consommation des SSD à ce format.

Fils, soudures et visserie

Chaque Bricklet de mesure doit être relié à un Master Brick d’un côté, et aux lignes +12V ou +3,3V mesurées de l’autre. Cela représente une certaines quantité de fils et câbles, d’autant que nous devons faire attention aux sens (les Bricklets de mesure sont particulièrement sensible à cela, ce n’est pas le moment d’en griller un !) et aux diamètres des câbles utilisés. Bref, c’est encore une fois le moment de jouer avec le fer à souder !

Chaque Bricklet de mesure est ensuite enfermé dans un boîtier en plastique afin de protéger les connections. Les Master Blocks sont de leur côté simplement empilés, les interconnexions étant assez robuste pour assurer la cohésion de l’ensemble.

La partie logicielle : Powenetics

Si Tinkerforge propose des APIs pour de nombreux languages de programmation afin de récupérer les données depuis ses Master Blocks, Cybenetics a mis au point son propre outil de contrôle et diagnostic dans le cadre du projet Powenetics.

Il est ainsi possible de récupérer de nombreuses données du système (vitesse des ventilateurs, température et charge GPU, fréquence GPU et VRAM, tension du GPU), en plus des valeurs (tension, intensité et consommation) retournées par les différents capteurs. En plus des valeurs minimales et maximales, on a aussi les valeurs moyennes sur 15 minutes. Il est bien entendu possible de conserver et d’enregistrer tous ces paramètres.

La version complète du logiciel autorise également le monitoring du processeur et du SSD/HDD. Trois Master Blocks et une dizaine de Brickets au total sont alors nécessaires.

En pratique : la consommation d’une GeForce RTX 2080 Ti

Histoire de voir à quoi ressemble le montage en cours d’utilisation, voici ce que cela donne avec une GeForce RTX 2080 Ti ! Remarquez qu’à cause du poids important de la carte graphique et de l’équilibre précaire de l’ensemble, nous avons du imaginer un système d’antigravité. C’est de la très haute technologie !

Lors des mesures réelles, nous séparons la plateforme de test de celle de monitoring afin de ne pas fausser les résultats.