GPUMGR est un gestionnaire GPU pour Linux permettant une gestion facile de la ligne de commande / interface Web des limites d'alimentation GPU, des horloges, des vitesses de ventilateur et plus encore. GPUMGR est successeur spirituel multi-gpultural d'AMDPWRMAN.
GPUMGR est un outil Linux pour visualiser et gérer les GPU (puissance, ventilateur, horloges) à la fois à partir du shell et à partir d'une interface Web (WIP).
Re-écrit dans JS (NodeJS) pour rendre les choses plus faciles à coder et à maintenir, en particulier dans l'ajout d'autres fournisseurs de GPU. Nous permet également d'avoir une meilleure solution de démon (qu'un script shell) et une interface Web.
Comme il ne s'agit plus seulement d'un script de shell, il y a évidemment plus de dépendances: actuellement, à peu près juste une version récente de NodeJS (10.7.0+). Les performances sont également meilleures! amdpwrman show 0 sur mon système prend 0m0.548s - l'exécution de GPUMGR du binaire emballé est ~ 25% plus rapide qu'AMDPWRMAN à 0m0.0398s .
Si vous utilisez la version binaire, vous ne devriez avoir besoin que de vos pilotes GPU et de ce qui les accompagne.
La version source nécessite Nodejs 10.7.0+, NPM 6.0.0+. Le bâtiment nécessite PKG .
Les GPU AMD ont besoin des pilotes AMDGPU ou AMDGPU-PRO, principalement des interfaces avec SYSFS .
Les GPU de Nvidia ont besoin des pilotes officiels de Nvidia, principalement des interfaces avec NVIDIA-SMI et NVIDIA-Settings . La modification des horloges nécessitera très probablement X car je ne suis pas au courant d'un moyen de le faire en dehors des établissements nvidia et cela nécessite X.
Il y a aussi une Vérison binaire compilée / emballée pour Linux dans Bin / , cela a été compilé / "emballé" avec PKG et est simplement là, vous avez donc une option rapide pour être opérationnel sans avoir à installer Nodejs ou toute dépendance.
Vous ne faites pas confiance au binaire? Aucun problème! Vous pouvez facilement exécuter le script directement ou le construire vous-même; Exécutez build.sh ou npm run build avec PKG installé et votre binaire apparaîtra en bac / - techniquement, vous n'avez pas besoin de Nodejs installés pour faire la construction même si PKG téléchargera les binaires appropriés; Cependant, l'installation de PKG nécessite un NPM qui nécessite des nodejs ..? Vous pouvez facilement construire pour d'autres versions de NodeJ que ce que vous avez installé.
Vous voudrez exécuter npm ci pour télécharger les packages NPM appropriés si vous souhaitez exécuter à partir de la source ou de la construction. npm run build créera également un binaire pour vous.
À télécharger:
git clone https://github.com/Shaped/gpumgr.git
cd gpumgr
npm ci
Une fois cela fait, vous pouvez soit exécuter le script directement ou construire le binaire avec build.sh .
Pour courir directement:
cd src
chmod 755 ./gpumgr.js
./gpumgr.js
Pour construire et courir:
npm install pkg
./build.sh
cd bin
chmod 755 ./gpumgr
./gpumgr
L'utilisation est assez similaire à celle d'AMDPWRMAN - presque identique à partir de la ligne de commande.
Vous pouvez appeler le script directement et le shebang appellera NodeJS.
Si vous n'avez pas de NodeJS, vous pouvez télécharger la version binaire qui est simplement ce script pré-emballé avec PKG avec les Nodejs et les dépendances requis à exécuter.
gpumgr v0.0.8-alpha
gpumgr shows statistics and manipulates power limit settings for GPUs on
Linux through various interfaces provided by manufacturer's drivers, for
example, using the sysfs interface to interact with the amdgpu driver.
The original script (amdpwrman) was designed to be simple, easy to use and have
no dependencies, however, BASH scripting is kind of a pain so I decided to
rewrite this as a NodeJS app with an included (optional to use) web interface.
There will be an easy to use binary distribution of this, or you can just clone
the repo and run or build the script yourself.
Most commands will execute the command and exit. For example, using
'./gpumgr fan 50% 0' to set fan speed to 50% for GPU 0, gpumgr will simply set
it once and exit.
If you want fan speed monitoring or curve control or to use the web interface,
you must start the daemon. Once the daemon is running, you can manage settings
for your GPUs at http://127.0.0.1:1969 - or on whatever port you specified.
Usage:
gpumgr.js [command] <gpu> <options>
If <gpu> is omitted from any command, GPU0 is assumed.
<gpu> can be a comma separated list of GPU numbers.
<gpu> can be set to 'all' to affect ALL GPUs
<gpu> can be set to 'amd' to affect all AMD GPUs
<gpu> can be set to 'nvidia' to affect all Nvidia GPUs
<gpu> can be set to 'intel' to affect all Intel GPUs
Commands with no options or only GPU specified:
help | --help | -h Display this help message.
list <gpu> List available GPUs and their GPU#.
show <gpu> Show detailed statistics for <gpu>.
status <gpu> Same as above.
power <percent> <gpu> Set <gpu>'s power target to <percent>.
power reset <gpu> Reset default power limit for <gpu>.
recover <gpu> Attempt driver recovery mechanism for <gpu>.
fan enable <gpu> Enable manual fan control for <gpu>.
fan disable <gpu> Disable manual fan control for <gpu>.
fan [percent] <gpu> Set <gpu>'s fan speed to <percent>.
start <options> Starts the gpumgr.js service.
restart Soft Restarts the gpumgr.js service.
stop Stops the gpumgr.js service.
force restart Fully Restarts the gpumgr.js service.
force stop Kills the gpumgr.js service.
Options for Commands with Options:
[any] Any command with color output
-g | --no-colors Disable ANSI Color formatting
start Starts the gpumgr.js background service.
--port <number> Set which ipv4 port to listen on.
(eg. 1969, default is 4242)
--host <ip> Set which ipv4 host to listen on.
(eg. 0.0.0.0 or 127.0.0.1)
Examples:
gpumgr.js show nvidia Show status of all Nvidia GPUs
gpumgr.js list Intel List all Intel GPU#s
sudo gpumgr.js fan enable 0 Enable manual fan control for GPU0
sudo gpumgr.js fan disable all Enable auto fan control for all GPUs
sudo gpumgr.js fan 100% 0 Set GPU0 fan speed to 100%
sudo gpumgr.js start --port 4200 Start the background service on port 4200
0.01a - 12/07/21 - the beginning, able to show stats for AMD GPUs
0.02a - 12/08/21 - able to show some stats for nvidia GPUs as well
0.03a - 12/08/21 - service structure started
0.04a - 12/09/21 - fan control for amdgpu enabled
0.05a - 12/09/21 - some tidying up, build.sh updated for making release easier for me
0.0.6-alpha - 12/10/21 - more tidying up for build stuff, version numbering now npm friendly
0.0.7-alpha - 12/10/21 - basic power and fan management for both AMD and NVIDIA now working
0.0.8-alpha - 12/10/21 - added a splash of color, ability to disable colors and the missing 'list' command