Kalpana-Plain-Models-API / telemetry.py
MaduRox's picture
Add rich Swagger API documentation
b7a913f
Raw
History Blame Contribute Delete
1.71 kB
import os
import psutil
import platform
import torch
from typing import Dict, Any, Optional
def get_cpu_name() -> str:
# Attempt model name read on Linux
try:
with open("/proc/cpuinfo", "r") as f:
for line in f:
if "model name" in line:
return line.split(":")[1].strip()
except Exception:
pass
proc = platform.processor()
return proc if proc else "Intel(R) Xeon(R) CPU"
def get_system_ram_mb() -> float:
try:
process = psutil.Process(os.getpid())
return process.memory_info().rss / (1024 * 1024)
except Exception:
return 0.0
def get_gpu_vram_mb() -> Optional[float]:
if torch.cuda.is_available():
try:
return torch.cuda.memory_allocated() / (1024 * 1024)
except Exception:
return 0.0
return None
def get_gpu_name() -> Optional[str]:
if torch.cuda.is_available():
try:
return torch.cuda.get_device_name(0)
except Exception:
return "NVIDIA GPU"
return None
def get_gpu_total_memory_mb() -> Optional[float]:
if torch.cuda.is_available():
try:
return torch.cuda.get_device_properties(0).total_memory / (1024 * 1024)
except Exception:
return 0.0
return None
def get_hardware_info() -> Dict[str, Any]:
return {
"device_type": "gpu" if torch.cuda.is_available() else "cpu",
"device_name": get_cpu_name(),
"cpu_count": psutil.cpu_count(logical=True),
"system_ram_mb": int(psutil.virtual_memory().total / (1024 * 1024)),
"gpu_name": get_gpu_name(),
"gpu_vram_mb": get_gpu_total_memory_mb()
}