feat: experimental NVIDIA power control via RM ioctl interface
Adds an experimental power-cap mode using the undocumented RM ioctl interface (based on panchovix's LACT PR #1205) to set power limits below the VBIOS minimum (down to 30 W). - hal/rm_power.py: RM ioctl power-cap read/write/reset + runtime probe - limits.py: power_cap_mode (nvml/ioctl) with support detection - config.py: persist power_cap_mode per GPU - profiles: record/apply power_cap_mode - server.py: POST /api/limits validates ioctl support (409 on failure) - cli.py: profile save falls back to persisted mode - client.py: power_cap_mode in Limits - frontend: toggle + warning with panchovix attribution (LACT #1205) - tests: test_rm_power.py (unit) + integration coverage - Makefile: add test_rm_power.py to make test Also includes automated linter reformatting (prettier, ruff, shellcheck, isort, markdownlint) that the linter would apply anyway.
This commit is contained in:
1 parent
a8462e696c
commit
e148c83622
21 files changed
+1641
-271
No files matched your search
+9
-9
@@ -25,19 +25,19 @@ fail() {
|
||||
}
|
||||
|
||||
# --- prerequisites -----------------------------------------------------------
|
||||
command -v git >/dev/null 2>&1 \
|
||||
|| fail "git is required. Install it first."
|
||||
command -v node >/dev/null 2>&1 \
|
||||
|| fail "Node.js 18+ is required (e.g. 'sudo pacman -S nodejs npm' or 'sudo apt install nodejs npm')."
|
||||
command -v npm >/dev/null 2>&1 \
|
||||
|| fail "npm is required (usually installed together with Node.js)."
|
||||
command -v git >/dev/null 2>&1 ||
|
||||
fail "git is required. Install it first."
|
||||
command -v node >/dev/null 2>&1 ||
|
||||
fail "Node.js 18+ is required (e.g. 'sudo pacman -S nodejs npm' or 'sudo apt install nodejs npm')."
|
||||
command -v npm >/dev/null 2>&1 ||
|
||||
fail "npm is required (usually installed together with Node.js)."
|
||||
|
||||
if ! command -v uv >/dev/null 2>&1; then
|
||||
echo "uv not found — installing it from https://astral.sh/uv ..."
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
command -v uv >/dev/null 2>&1 \
|
||||
|| fail "uv installation failed. Install uv manually: https://docs.astral.sh/uv/"
|
||||
command -v uv >/dev/null 2>&1 ||
|
||||
fail "uv installation failed. Install uv manually: https://docs.astral.sh/uv/"
|
||||
fi
|
||||
|
||||
# --- locate the source tree ---------------------------------------------------
|
||||
@@ -59,4 +59,4 @@ uv tool install --force "$src"
|
||||
echo
|
||||
echo "NVCurve installed."
|
||||
echo " Verify your GPU: nvcurve setup"
|
||||
echo " Start the web UI: nvcurve"
|
||||
echo " Start the web UI: nvcurve"
|
||||
Reference in new issue
Block a user