Skip to content

Commit 855453d

Browse files
Merge pull request #310 from shawarden/master
Adding GPU Use/mem/power for AMD & Intel GPUs
2 parents 752b57d + 49d73f9 commit 855453d

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

scripts/gpu_power.sh

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,18 @@ get_gpu()
5151

5252
elif [[ "$gpu" == apple ]]; then
5353
usage="$(sudo powermetrics --samplers gpu_power -i500 -n 1 | grep 'GPU Power' | sed 's/GPU Power: \(.*\) \(.*\)/\1\2/g')"
54-
else
55-
usage='unknown'
54+
elif [[ "$gpu" == Advanced ]]; then
55+
usage=$(
56+
for card in /sys/class/drm/card?
57+
do
58+
echo "$(($(cat "$card"/device/hwmon/hwmon?/power1_average) / 1000 / 1000))/$(($(cat "$card"/device/hwmon/hwmon?/power1_cap_max) / 1000 / 1000))W"
59+
done | \
60+
sed -z -e 's/\n/|/g' -e 's/|$//g'
61+
)
62+
else # "Intel" "Matrox", etc
63+
usage="unknown"
5664
fi
57-
normalize_percent_len $usage
65+
echo $usage
5866
}
5967

6068
main()

scripts/gpu_ram_info.sh

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,17 @@ get_gpu()
5151
total_accuracy=$(get_tmux_option "@dracula-gpu-vram-total-accuracy" "d")
5252
usage=$(nvidia-smi --query-gpu=memory.used,memory.total --format=csv,noheader,nounits | awk "{ used += \$0; total +=\$2 } END { printf(\"%${used_accuracy}GB/%${total_accuracy}GB\n\", used / 1024, total / 1024) }")
5353
fi
54-
else
55-
usage='unknown'
54+
elif [[ "$gpu" == Advanced ]]; then
55+
usage="$(
56+
for card in /sys/class/drm/card?
57+
do
58+
use=$(cat "$card"/device/mem_info_vram_used | numfmt --to=iec --suffix=B)
59+
max=$(cat "$card"/device/mem_info_vram_total | numfmt --to=iec --suffix=B)
60+
echo "$use/$max"
61+
done | sed -z -e 's/\n/|/g' -e 's/|$//g'
62+
)"
63+
else # "Intel" "Matrox", etc
64+
usage="unknown"
5665
fi
5766
echo $usage
5867
}

scripts/gpu_usage.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ get_gpu()
4646
usage=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits | awk '{ sum += $0 } END { printf("%d%%\n", sum / NR) }')
4747
elif [[ "$gpu" == apple ]]; then
4848
usage="$(sudo powermetrics --samplers gpu_power -i500 -n 1 | grep 'active residency' | sed 's/[^0-9.%]//g' | sed 's/[%].*$//g')%"
49-
else
50-
usage='unknown'
49+
elif [[ "$gpu" == Advanced ]]; then
50+
usage="$(cat /sys/class/drm/card?/device/gpu_busy_percent | sed -z -e 's/\n/%|/g' -e 's/|$//g')"
51+
else # "Intel" "Matrox", etc
52+
usage="unknown"
5153
fi
5254
normalize_percent_len $usage
5355
}

0 commit comments

Comments
 (0)