mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-05-04 20:47:42 +03:00
Add support for calculating rockchip GPU load
This commit is contained in:
parent
cd1a8771d6
commit
e269a5fc3e
@ -24,6 +24,7 @@ from frigate.util.services import (
|
||||
get_intel_gpu_stats,
|
||||
get_jetson_stats,
|
||||
get_nvidia_gpu_stats,
|
||||
get_rockchip_gpu_stats,
|
||||
get_rockchip_npu_stats,
|
||||
is_vaapi_amd_driver,
|
||||
)
|
||||
@ -232,6 +233,11 @@ async def set_gpu_stats(
|
||||
else:
|
||||
stats["intel-vaapi"] = {"gpu": "", "mem": ""}
|
||||
hwaccel_errors.append(args)
|
||||
elif "preset-rk" in args:
|
||||
rga_usage = get_rockchip_gpu_stats()
|
||||
|
||||
if rga_usage:
|
||||
stats["rockchip"] = rga_usage
|
||||
elif "v4l2m2m" in args or "rpi" in args:
|
||||
# RPi v4l2m2m is currently not able to get usage stats
|
||||
stats["rpi-v4l2m2m"] = {"gpu": "", "mem": ""}
|
||||
|
||||
@ -382,8 +382,29 @@ def get_intel_gpu_stats(sriov: bool) -> dict[str, str]:
|
||||
return results
|
||||
|
||||
|
||||
def get_rockchip_gpu_stats() -> dict[str, str]:
|
||||
"""Get GPU stats using rk."""
|
||||
try:
|
||||
with open("/sys/kernel/debug/rkrga/load", "r") as f:
|
||||
content = f.read()
|
||||
except FileNotFoundError:
|
||||
return None
|
||||
|
||||
load_values = []
|
||||
for line in content.splitlines():
|
||||
match = re.search(r"load = (\d+)%", line)
|
||||
if match:
|
||||
load_values.append(int(match.group(1)))
|
||||
|
||||
if not load_values:
|
||||
return None
|
||||
|
||||
average_load = str(round(sum(load_values) / len(load_values), 2))
|
||||
return {"gpu": average_load, "mem": "-"}
|
||||
|
||||
|
||||
def get_rockchip_npu_stats() -> dict[str, str]:
|
||||
"""Get stats using rk."""
|
||||
"""Get NPU stats using rk."""
|
||||
try:
|
||||
with open("/sys/kernel/debug/rknpu/load", "r") as f:
|
||||
npu_output = f.read()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user