GPUMGR ist ein GPU -Manager für Linux, der eine einfache Befehlszeile/Web -Schnittstellenverwaltung von GPU -Leistungsgrenzen, Uhren, Lüftergeschwindigkeiten und mehr ermöglicht. GPUMGR ist ein multi-gpulturaler spiritueller Nachfolger von AMDPWRMAN.
GPUMGR ist ein Linux -Tool zum Anzeigen und Verwalten von GPUs (Power, Lüfter, Uhren) sowohl von der Shell als auch von einer Weboberfläche (WIP).
In JS (NodeJS) neu geschrieben, um die Codierung und Wartung zu erleichtern, insbesondere um andere GPU-Anbieter hinzuzufügen. Ermöglicht es uns auch, eine bessere Daemon -Lösung (als ein Shell -Skript) und eine Weboberfläche zu haben.
Da es nicht mehr nur ein Shell-Skript ist, gibt es offensichtlich mehr Abhängigkeiten: Derzeit, so ziemlich nur eine aktuelle Version von NodeJS (10.7.0+). Leistung ist jetzt auch besser! amdpwrman show 0 auf meinem System dauert 0m0.548s - Der Ausführen von GPUMGR aus der gepackten Binärdatei ist ~ 25% schneller als AMDPWRMAN bei 0m0.0398s .
Wenn Sie die binäre Version verwenden, sollten Sie nur Ihre GPU -Treiber benötigen und was mit ihnen kommt.
Die Quellversion erfordert NodeJS 10.7.0+, NPM 6.0.0+. Gebäude erfordert PKG .
AMD-GPUs benötigen die AMDGPU- oder AMDGPU-Pro-Treiber, hauptsächlich Schnittstellen mit sysfs .
Nvidia GPUs benötigen die offiziellen Nvidia-Treiber, hauptsächlich Schnittstellen mit Nvidia-SMI und Nvidia-Settings . Das Wechseln von Uhren erfordert höchstwahrscheinlich X, da mir außer Nvidia-Settings keine Möglichkeit ist, dies zu tun, und das erfordert X.
Es gibt auch eine binäre zusammengestellte/verpackte Verison für Linux in Bin/ , die mit PKG zusammengestellt/"verpackt" wurde und einfach da ist, sodass Sie eine kurze Option haben, um zu fahren, ohne Nodejs oder Abhängigkeiten installieren zu müssen.
Vertrauen Sie dem Binärer nicht? Kein Problem! Sie können das Skript problemlos direkt ausführen oder selbst erstellen. Run build.sh oder npm run build mit installiertem PKG und Ihr Binärer wird in Bin/ technisch gesehen keine Nodejs benötigt, um den Build durchzuführen, auch wenn PKG die entsprechenden Binärdateien herunterlädt. Die Installation von PKG erfordert jedoch NPM, was NodeJs benötigt. Sie können problemlos für andere Versionen von NodeJS erstellen als das, was Sie installiert haben.
Sie möchten npm ci ausführen, um die entsprechenden NPM -Pakete herunterzuladen, wenn Sie von Quelle oder Build ausführen möchten. npm run build baut auch eine Binärdehnung für Sie auf.
Zum Herunterladen:
git clone https://github.com/Shaped/gpumgr.git
cd gpumgr
npm ci
Sobald dies erledigt ist, können Sie das Skript entweder direkt ausführen oder die Binärdatei mit build.sh erstellen.
Direkt laufen:
cd src
chmod 755 ./gpumgr.js
./gpumgr.js
Zu bauen und zu rennen:
npm install pkg
./build.sh
cd bin
chmod 755 ./gpumgr
./gpumgr
Die Verwendung ist der von AMDPWRMAN ziemlich ähnlich - fast identisch aus der Befehlszeile.
Sie können das Skript direkt anrufen und der Shebang nennt Nodejs.
Wenn Sie keine NodeJs haben, können Sie die binäre Version herunterladen, die einfach dieses Skript mit PKG mit den erforderlichen NodeJs und Abhängigkeiten vorgepackt ist.
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