mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-03 17:55:21 +03:00
Add nvidia gpu stats
This commit is contained in:
parent
c97975eb19
commit
4ffdfe66ba
@ -734,37 +734,6 @@ def escape_special_characters(path: str) -> str:
|
||||
# path does not have user:pass
|
||||
return path
|
||||
|
||||
def get_amd_gpu_stats() -> dict[str, str]:
|
||||
"""Get stats using radeontop."""
|
||||
radeontop_command = [
|
||||
"radeontop",
|
||||
"-d",
|
||||
"-",
|
||||
"-l",
|
||||
"1"
|
||||
]
|
||||
|
||||
p = sp.run(
|
||||
radeontop_command,
|
||||
encoding="ascii",
|
||||
capture_output=True,
|
||||
)
|
||||
|
||||
if p.returncode != 0:
|
||||
logger.error(p.stderr)
|
||||
return None
|
||||
else:
|
||||
usages = p.stdout.split(",")
|
||||
results: dict[str, str] = {}
|
||||
|
||||
for hw in usages:
|
||||
if "gpu" in hw:
|
||||
results["gpu_usage"] = hw.strip().split(" ")[1]
|
||||
elif "vram" in hw:
|
||||
results["memory_usage"] = hw.strip().split(" ")[1]
|
||||
|
||||
return results
|
||||
|
||||
|
||||
def get_cpu_stats() -> dict[str, dict]:
|
||||
"""Get cpu usages for each process id"""
|
||||
@ -812,6 +781,66 @@ def ffprobe_stream(path: str) -> sp.CompletedProcess:
|
||||
return sp.run(ffprobe_cmd, capture_output=True)
|
||||
|
||||
|
||||
def get_amd_gpu_stats() -> dict[str, str]:
|
||||
"""Get stats using radeontop."""
|
||||
radeontop_command = [
|
||||
"radeontop",
|
||||
"-d",
|
||||
"-",
|
||||
"-l",
|
||||
"1"
|
||||
]
|
||||
|
||||
p = sp.run(
|
||||
radeontop_command,
|
||||
encoding="ascii",
|
||||
capture_output=True,
|
||||
)
|
||||
|
||||
if p.returncode != 0:
|
||||
logger.error(p.stderr)
|
||||
return None
|
||||
else:
|
||||
usages = p.stdout.split(",")
|
||||
results: dict[str, str] = {}
|
||||
|
||||
for hw in usages:
|
||||
if "gpu" in hw:
|
||||
results["gpu_usage"] = hw.strip().split(" ")[1]
|
||||
elif "vram" in hw:
|
||||
results["memory_usage"] = hw.strip().split(" ")[1]
|
||||
|
||||
return results
|
||||
|
||||
|
||||
def get_nvidia_gpu_stats() -> dict[str, str]:
|
||||
"""Get stats using nvidia-smi."""
|
||||
nvidia_smi_command = [
|
||||
"nvidia-smi",
|
||||
"--query-gpu=gpu_name,utilization.gpu,utilization.memory",
|
||||
"--format=csv"
|
||||
]
|
||||
|
||||
p = sp.run(
|
||||
nvidia_smi_command,
|
||||
encoding="ascii",
|
||||
capture_output=True,
|
||||
)
|
||||
|
||||
if p.returncode != 0:
|
||||
logger.error(p.stderr)
|
||||
return None
|
||||
else:
|
||||
usages = p.stdout.split("\n")[1].split(",")
|
||||
results: dict[str, str] = {
|
||||
"name": usages[0],
|
||||
"gpu_usage": usages[1],
|
||||
"memory_usage": usages[2]
|
||||
}
|
||||
|
||||
return results
|
||||
|
||||
|
||||
class FrameManager(ABC):
|
||||
@abstractmethod
|
||||
def create(self, name, size) -> AnyStr:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user