GPUMGR adalah manajer GPU untuk Linux yang memungkinkan manajemen jalur perintah/antarmuka Web yang mudah dari batas daya GPU, jam, kecepatan kipas dan banyak lagi. GPUMGR adalah penerus spiritual multi-gpultural dari AMDPWRMAN.
GPUMGR adalah alat Linux untuk melihat dan mengelola GPU (daya, kipas, jam) baik dari shell dan dari antarmuka web (WIP).
Ditulis ulang di JS (NODEJS) untuk membuat segalanya lebih mudah untuk mengkode dan memelihara, terutama di sekitar menambahkan vendor GPU lainnya. Juga memungkinkan kita untuk memiliki solusi daemon yang lebih baik (daripada skrip shell) dan antarmuka web.
Karena ini bukan lagi hanya skrip shell, jelas ada lebih banyak dependensi: saat ini, cukup banyak hanya versi nodej baru-baru ini (10.7.0+). Kinerja juga sekarang lebih baik! amdpwrman show 0 pada sistem saya mengambil 0m0.548s - Menjalankan GPUMGR dari biner yang dikemas adalah ~ 25% lebih cepat dari AMDPWRMAN di 0m0.0398s .
Jika Anda menggunakan versi biner, Anda seharusnya hanya membutuhkan driver GPU Anda dan apa yang datang dengan mereka.
Versi sumber membutuhkan nodejs 10.7.0+, NPM 6.0.0+. Bangunan membutuhkan PKG .
AMD GPU membutuhkan driver AMDGPU atau AMDGPU-Pro, sebagian besar antarmuka dengan SYSFS .
NVIDIA GPU membutuhkan driver NVIDIA resmi, sebagian besar antarmuka dengan NVIDIA-SMI dan NVIDIA-SETTINGS . Mengubah jam kemungkinan besar akan membutuhkan X karena saya tidak mengetahui cara untuk melakukannya selain dari Nvidia-settings dan itu membutuhkan X.
Ada juga verison biner yang dikompilasi/dikemas untuk Linux di bin/ , ini telah dikompilasi/"dikemas" dengan PKG dan hanya ada di sana sehingga Anda memiliki opsi cepat untuk bangun dan berjalan tanpa harus menginstal nodej atau dependensi apa pun.
Jangan mempercayai biner? Tidak masalah! Anda dapat dengan mudah menjalankan skrip secara langsung atau membangunnya sendiri; Jalankan build.sh atau npm run build dengan pkg terpasang dan biner Anda akan keluar di bin/ - secara teknis, Anda tidak perlu nodeJs yang diinstal untuk melakukan build bahkan karena pkg akan mengunduh biner yang sesuai; Namun, menginstal PKG membutuhkan NPM yang membutuhkan nodeJs ..? Anda dapat dengan mudah membangun untuk versi lain dari nodej selain yang telah Anda instal.
Anda ingin menjalankan npm ci untuk mengunduh paket NPM yang sesuai jika Anda ingin menjalankan dari Sumber atau Build. npm run build juga akan membangun biner untuk Anda.
Untuk mengunduh:
git clone https://github.com/Shaped/gpumgr.git
cd gpumgr
npm ci
Setelah selesai, Anda dapat menjalankan skrip secara langsung atau membangun biner dengan build.sh .
Untuk menjalankan langsung:
cd src
chmod 755 ./gpumgr.js
./gpumgr.js
Untuk membangun dan menjalankan:
npm install pkg
./build.sh
cd bin
chmod 755 ./gpumgr
./gpumgr
Penggunaan sangat mirip dengan AMDPWRMAN - hampir identik dari baris perintah.
Anda dapat menghubungi skrip secara langsung dan Shebang akan memanggil NodeJs.
Jika Anda tidak memiliki nodeJs, Anda dapat mengunduh versi biner yang hanya skrip ini yang telah dikemas sebelumnya dengan PKG dengan nodeJ dan dependensi yang diperlukan untuk dijalankan.
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