def register_info_command(subparsers):
parser = subparsers.add_parser("info", help="Show device/environment information")
parser.set_defaults(handler=_handle_info)
def _handle_info(args):
import logging
_prev_level = logging.getLogger().level
logging.getLogger().setLevel(logging.WARNING)
try:
from ttk.core_modules.dsmi import DSMIInterface
dsmi = DSMIInterface()
count = dsmi.get_device_count()
if count == 0:
print("No Ascend devices found.")
return
print(f"Found {count} device(s):\n")
print(f" {'ID':>3} {'Platform':<16s} {'Ver':<4s} {'Temp':>5} {'Util':>5}")
print("-" * 45)
for i in range(count):
try:
chip = dsmi.get_chip_info(i)
platform = chip.get_complete_platform()
ver = chip.get_ver()
except Exception:
platform = "N/A"
ver = ""
try:
temp = dsmi.get_device_temperature(i)
temp = f"{temp}C"
except Exception:
temp = "N/A"
try:
util = dsmi.get_device_utilization(i)
util = f"{util}%"
except Exception:
util = "N/A"
print(f" {i:>3} {platform:<16s} {ver:<4s} {temp:>5} {util:>5}")
except ImportError:
print("DSMI module not available. Is CANN installed?")
except Exception as e:
print(f"Error querying devices: {e}")
finally:
logging.getLogger().setLevel(_prev_level)