import os
import logging
from hardware_monitor.collector.device_info.npu.npu_discovery import get_lib_from_ld_cmd
from hardware_monitor.collector.metrics.npu.constants import DCMI_LIBRARY_NAME
from hardware_monitor.collector.metrics.npu.dcmi.dcmi import DcmiManager
module_name = os.getenv("MODULE_NAME", "default")
logger = logging.getLogger(module_name)
def detect_devices():
"""
Detects the available hardware devices (NPU and GPU)
by checking their respective initialization.
"""
devices = {"npu": check_npu_devices_and_initialize(),
"gpu": check_gpu_devices_and_initialize()}
return devices
def check_npu_devices_and_initialize():
"""
Checks if NPU devices are available and attempts to initialize them using the DCMI library.
"""
lib_path, error = get_lib_from_ld_cmd(DCMI_LIBRARY_NAME)
if lib_path:
if DcmiManager.initialize_dcmi(lib_path):
logger.info("NPU initialized successfully.")
return True
logger.error("Failed to initialize dcmi.")
return False
logger.info(error)
return False
def check_gpu_devices_and_initialize():
"""
Checks if GPU devices are available and initializes them (currently a placeholder).
"""
return False