home-server
gpu-profile.sh
#!/bin/bash
# Usage: gpu-profile [gaming|llm|video|auto]
GPU_PATH="/sys/class/drm/card1/device"
PWR_CAP="/sys/class/drm/card1/device/hwmon/hwmon1/power1_cap"
CAP_MAX=374000000 # 374W — hardware max
CAP_NORMAL=330000000 # 330W — normal cap
case "${1:-auto}" in
gaming)
echo 1 | sudo tee $GPU_PATH/pp_power_profile_mode > /dev/null
echo $CAP_MAX | sudo tee $PWR_CAP > /dev/null
echo "GPU: 3D_FULL_SCREEN + 374W cap (gaming)" ;;
llm)
echo 5 | sudo tee $GPU_PATH/pp_power_profile_mode > /dev/null
echo $CAP_NORMAL | sudo tee $PWR_CAP > /dev/null
echo "GPU: COMPUTE + 330W cap (LLM inference)" ;;
video)
echo 3 | sudo tee $GPU_PATH/pp_power_profile_mode > /dev/null
echo $CAP_NORMAL | sudo tee $PWR_CAP > /dev/null
echo "GPU: VIDEO + 330W cap (transcoding)" ;;
auto)
echo 0 | sudo tee $GPU_PATH/pp_power_profile_mode > /dev/null
echo $CAP_NORMAL | sudo tee $PWR_CAP > /dev/null
echo "GPU: BOOTUP_DEFAULT + 330W cap (auto)" ;;
*)
echo "Usage: gpu-profile [gaming|llm|video|auto]" ;;
esac