GPUMGR是Linux的GPU Manager,允許使用GPU功率限制,時鐘,風扇速度等的命令行/Web接口管理。 Gpumgr是AMDPWRMAN的多元文化精神繼任者。
GPUMGR是用於從外殼和Web界面(WIP)查看和管理GPU(Power,fan,Clocks)的Linux工具。
在JS(nodejs)中重新編寫,以使事物更易於編碼和維護,尤其是在添加其他GPU供應商時。還允許我們擁有更好的守護程序解決方案(比Shell腳本)和Web界面。
由於它不再只是一個殼腳本,因此顯然還有更多的依賴關係:當前,幾乎只是Nodejs(10.7.0+)的最新版本。性能也更好!我係統上的amdpwrman show 0取0m0.548s從包裝二進制中運行GPUMGR的速度比AMDPWRMAN在0m0.0398s上快25%。
如果您使用的是二進製版本,則只需要您的GPU驅動程序以及它們隨附的內容。
源版本需要NodeJS 10.7.0+,NPM 6.0.0+。建築物需要PKG 。
AMD GPU需要AMDGPU或AMDGPU-PRO驅動程序,主要是與SYSF的接口。
Nvidia GPU需要官方的NVIDIA驅動程序,主要是與Nvidia-Smi和Nvidia-Settings的接口。更換時鐘很可能需要x,因為我不知道除了nvidia-settings之外,還需要做到這一點,這需要X。
還有一個用於bin/ linux的二進制編譯/包裝的經驗,它已與pkg進行了編譯/“打包”,並且簡單地在那裡,因此您可以快速啟動和運行,而無需安裝nodejs或任何依賴關係。
不信任二進制嗎?沒問題!您可以輕鬆地直接運行腳本或自己構建腳本; run build.sh或npm run build使用PKG安裝,您的二進製文件將在bin/ - 從技術上講,即使PKG會下載適當的二進製文件,您也不需要安裝nodejs進行構建;但是,安裝PKG需要NPM,它需要Nodejs ..?不過,您可以輕鬆地為Nodejs構建比安裝的版本。
如果要從源或構建運行,則需要運行npm ci下載適當的NPM軟件包。 npm run build還將為您構建二進製文件。
下載:
git clone https://github.com/Shaped/gpumgr.git
cd gpumgr
npm ci
完成此操作後,您可以直接運行腳本或使用build.sh構建二進製文件。
直接運行:
cd src
chmod 755 ./gpumgr.js
./gpumgr.js
建造和運行:
npm install pkg
./build.sh
cd bin
chmod 755 ./gpumgr
./gpumgr
用法與AMDPWRMAN的使用非常相似 - 與命令行幾乎相同。
您可以直接調用腳本,Shebang將調用Nodejs。
如果您沒有nodejs,則可以下載二進製版本,該版本簡單地用PKG預先包裝,並帶有所需的nodejs和depentencies才能運行。
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