diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index f693786832..4cb8439647 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -6508,19 +6508,30 @@ class AMDSMICommands(): def default(self, args): """Display the default amdsmi view when no args are given.""" + + # check groups first + if not self.group_check_printed: + self.helpers.check_required_groups() + self.group_check_printed = True + processors = amdsmi_interface.amdsmi_get_processor_handles() version_info = {"amd-smi": "N/A", "amdgpu version": "N/A", "rocm version": "N/A"} version_info['rocm version'] = amdsmi_interface.amdsmi_get_rocm_version() - version_info["amdgpu version"] = amdsmi_interface.amdsmi_get_gpu_driver_info(processors[0]) + try: + version_info["amdgpu version"] = amdsmi_interface.amdsmi_get_gpu_driver_info(processors[0]) + except amdsmi_exception.AmdSmiLibraryException as e: + version_info["amdgpu version"] = "N/A" + logging.debug("Failed to get driver info for gpu: %s", e.get_error_info()) + version_info["amd-smi"] = f'{__version__}' default_table_info_dict = {} default_table_info_dict.update({"version_info": version_info}) gpu_info_list = [] - all_process_list = [] + # all_process_list = [] # TODO: create new logger function to display table? or modify table? # get info for each processor to display in default output @@ -6564,6 +6575,9 @@ class AMDSMICommands(): # bdf try: bdf = amdsmi_interface.amdsmi_get_gpu_device_bdf(processor) + # if the len of the bdf is not 12, then invalid values are being populated. + if len(bdf) != 12: + bdf = "N/A" except amdsmi_exception.AmdSmiLibraryException as e: bdf = "N/A" gpu_info_dict.update({"bdf": bdf}) diff --git a/amdsmi_cli/amdsmi_logger.py b/amdsmi_cli/amdsmi_logger.py index 06f8c930ee..3f67097e10 100644 --- a/amdsmi_cli/amdsmi_logger.py +++ b/amdsmi_cli/amdsmi_logger.py @@ -958,25 +958,27 @@ class AMDSMILogger(): def print_default_output(self, output: Dict): # some template lines - # TODO: adjust column lines to give market name more space default_line_1 = "+------------------------------------------------------------------------------+" default_line_2 = "|--------------------------------------+---------------------------------------|" default_line_3 = "|======================================+=======================================|" default_line_4 = "+--------------------------------------+---------------------------------------+" - # default_line_5 = "|==============================================================================|" # print the version information first - amd_smi_version = output['version_info']['amd-smi'] - if len(amd_smi_version) > 16: - amd_smi_version = amd_smi_version[:13] + "..." + amd_smi_version = str(output['version_info']['amd-smi']) + if len(amd_smi_version) > 20: + amd_smi_version = amd_smi_version[:17] + "..." rocm_version = "N/A" if output['version_info']['rocm version'][0]: - rocm_version = output['version_info']['rocm version'][1] - amdgpu_version = output['version_info']['amdgpu version']['driver_version'] + rocm_version = str(output['version_info']['rocm version'][1]).ljust(8) + driver_version = output['version_info']['amdgpu version'] + if driver_version == "N/A": + amdgpu_version = "N/A".ljust(8) + else: + amdgpu_version = str(driver_version['driver_version']).ljust(8) # print GPU info print(default_line_1) - print("| AMD SMI {0:16s} amdgpu version: {1:8s} ROCm version: {2:8s} |".format(amd_smi_version, amdgpu_version, rocm_version.ljust(8))) + print("| AMD-SMI {0:20s} amdgpu version: {1:8s} ROCm version: {2:8s} |".format(amd_smi_version.ljust(20), amdgpu_version, rocm_version)) print(default_line_2) print("| BDF GPU-Name | Mem-Util Temp UECC Power-Usage |") print("| GPU HIP-ID OAM-ID Partition-Mode | GFX-Util Fan Memory-Usage |") @@ -1009,8 +1011,8 @@ class AMDSMILogger(): if power_usage != "N/A": power_usage = f"{gpu_info['power_usage']['current_power']}/{gpu_info['power_usage']['power_limit']} W" power_usage = str(power_usage).rjust(12) - - print("| {0:12s} {1:22s} | {2:8s} {3:6s} {4:5s} {5:12s} |".format(bdf, market_name, mem_util, temp, u_ecc, power_usage)) + print("| {0:12.12s} {1:22.22s} | {2:8.8s} {3:6.6s} {4:5.5s} {5:12.12s} |".format(bdf, market_name, mem_util, temp, u_ecc, power_usage)) + gpu_id = str(gpu_info['gpu_id']).rjust(3) hip_id = str(gpu_info['hip_id']).rjust(6) oam_id = str(gpu_info['oam_id']).rjust(7) @@ -1030,7 +1032,7 @@ class AMDSMILogger(): if mem_usage != "N/A": mem_usage = f"{gpu_info['mem_usage']['used_vram']}/{gpu_info['mem_usage']['total_vram']} MB" mem_usage = mem_usage.rjust(19) - print("| {0:3s} {1:6s} {2:7s} {3:14s} | {4:8s} {5:7s} {6:19s} |".format(gpu_id, hip_id, oam_id, partition_modes, gfx_util, fan, mem_usage)) + print("| {0:3.3s} {1:6.6s} {2:7.7s} {3:14.14s} | {4:8.8s} {5:7.7s} {6:19.19s} |".format(gpu_id, hip_id, oam_id, partition_modes, gfx_util, fan, mem_usage)) if line_count < end: print(default_line_2)