DoruC/Grounded-Segment-Anything
0
1import psutil2import platform3import getpass4import datetime5from pynvml import *6from pprint import pprint7 8def physical_system_time():9 return {"system_time": datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")}10 11def physical_username():12 return {13 "system_user": getpass.getuser()14 }15 16def physical_platfrom_system():17 u_name = platform.uname()18 return {"system_name": u_name.system, "system_version": u_name.version}19 20def physical_cpu():21 return {"system_cpu_count": psutil.cpu_count(logical=False)}22 23def physical_memory():24 # return round(psutil.virtual_memory().total / (1024.0 * 1024.0 * 1024.0), 2)25 return {"system_memory": round(psutil.virtual_memory().total, 2)}26 27def physical_hard_disk():28 result = []29 for disk_partition in psutil.disk_partitions():30 o_usage = psutil.disk_usage(disk_partition.device)31 result.append(32 {33 "device": disk_partition.device,34 "fstype":disk_partition.fstype,35 "opts": disk_partition.opts,36 "total": o_usage.total,37 }38 )39 return {"system_hard_disk": result}40 41def nvidia_info():42 nvidia_dict = {43 "state": True,44 "nvidia_version": "",45 "nvidia_count": 0,46 "gpus": []47 }48 try:49 nvmlInit()50 nvidia_dict["nvidia_version"] = nvmlSystemGetDriverVersion()51 nvidia_dict["nvidia_count"] = nvmlDeviceGetCount()52 for i in range(nvidia_dict["nvidia_count"]):53 handle = nvmlDeviceGetHandleByIndex(i)54 memory_info = nvmlDeviceGetMemoryInfo(handle)55 gpu = {56 "gpu_name": nvmlDeviceGetName(handle),57 "total": memory_info.total,58 "free": memory_info.free,59 "used": memory_info.used,60 "temperature": f"{nvmlDeviceGetTemperature(handle, 0)}℃",61 "powerStatus": nvmlDeviceGetPowerState(handle)62 }63 nvidia_dict['gpus'].append(gpu)64 except NVMLError as e1:65 nvidia_dict["state"] = False66 print(f'nvidia_error_1_{e1}')67 except Exception as e2:68 nvidia_dict["state"] = False69 print(f'nvidia_erro_2_{e2}')70 finally:71 try:72 nvmlShutdown()73 except:74 pass75 return nvidia_dict76 77def merge(info_list):78 data = {}79 for item in info_list:80 data.update(81 item()82 )83 return data84 85def computer_info():86 data = merge(87 [88 physical_system_time,89 physical_username,90 physical_platfrom_system,91 physical_cpu,92 physical_memory,93 # physical_hard_disk,94 nvidia_info95 ]96 )97 pprint(data)98 99 