From 80043adb8187412cfcbbe63a5fedf0af8fe5fa46 Mon Sep 17 00:00:00 2001 From: Dalibor Stanisavljevic Date: Mon, 10 Jun 2024 17:08:47 +0200 Subject: [PATCH 1/5] Changed type to uint32_t oam_id due to header unification Signed-off-by: Dalibor Stanisavljevic Change-Id: I351415f4a766ad6aa0c2e81adf8b416d066048ea --- include/amd_smi/amdsmi.h | 4 ++-- py-interface/amdsmi_wrapper.py | 36 +++++++++++++++++----------------- src/amd_smi/amd_smi.cc | 6 ++++-- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 01139461a7..50ec669255 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -587,8 +587,8 @@ typedef struct { uint64_t device_id; //< The device id of a GPU uint32_t rev_id; char asic_serial[AMDSMI_NORMAL_STRING_LENGTH]; - uint16_t oam_id; //< 0xFFFF if not supported - uint16_t reserved[37]; + uint32_t oam_id; //< 0xFFFF if not supported + uint32_t reserved[18]; } amdsmi_asic_info_t; typedef enum { diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index df85038505..61b005e3f9 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -900,8 +900,8 @@ struct_amdsmi_asic_info_t._fields_ = [ ('device_id', ctypes.c_uint64), ('rev_id', ctypes.c_uint32), ('asic_serial', ctypes.c_char * 32), - ('oam_id', ctypes.c_uint16), - ('reserved', ctypes.c_uint16 * 37), + ('oam_id', ctypes.c_uint32), + ('reserved', ctypes.c_uint32 * 18), ] amdsmi_asic_info_t = struct_amdsmi_asic_info_t @@ -1519,7 +1519,7 @@ struct_amdsmi_dpm_policy_entry_t._fields_ = [ ('policy_description', ctypes.c_char * 32), ] -struct_amdsmi_dpm_policy_entry_t = struct_amdsmi_dpm_policy_entry_t +amdsmi_dpm_policy_entry_t = struct_amdsmi_dpm_policy_entry_t class struct_amdsmi_dpm_policy_t(Structure): pass @@ -2619,10 +2619,10 @@ __all__ = \ 'amdsmi_get_cpu_socket_power', 'amdsmi_get_cpu_socket_power_cap', 'amdsmi_get_cpu_socket_power_cap_max', 'amdsmi_get_cpu_socket_temperature', 'amdsmi_get_cpucore_handles', - 'amdsmi_get_cpusocket_handles', 'amdsmi_get_soc_pstate', - 'amdsmi_get_energy_count', 'amdsmi_get_esmi_err_msg', - 'amdsmi_get_fw_info', 'amdsmi_get_gpu_activity', - 'amdsmi_get_gpu_asic_info', 'amdsmi_get_gpu_available_counters', + 'amdsmi_get_cpusocket_handles', 'amdsmi_get_energy_count', + 'amdsmi_get_esmi_err_msg', 'amdsmi_get_fw_info', + 'amdsmi_get_gpu_activity', 'amdsmi_get_gpu_asic_info', + 'amdsmi_get_gpu_available_counters', 'amdsmi_get_gpu_bad_page_info', 'amdsmi_get_gpu_bdf_id', 'amdsmi_get_gpu_board_info', 'amdsmi_get_gpu_cache_info', 'amdsmi_get_gpu_compute_partition', @@ -2666,11 +2666,11 @@ __all__ = \ 'amdsmi_get_processor_handles', 'amdsmi_get_processor_handles_by_type', 'amdsmi_get_processor_info', 'amdsmi_get_processor_type', - 'amdsmi_get_socket_handles', 'amdsmi_get_socket_info', - 'amdsmi_get_temp_metric', 'amdsmi_get_utilization_count', - 'amdsmi_get_xgmi_info', 'amdsmi_get_xgmi_plpd', - 'amdsmi_gpu_block_t', 'amdsmi_gpu_cache_info_t', - 'amdsmi_gpu_control_counter', + 'amdsmi_get_soc_pstate', 'amdsmi_get_socket_handles', + 'amdsmi_get_socket_info', 'amdsmi_get_temp_metric', + 'amdsmi_get_utilization_count', 'amdsmi_get_xgmi_info', + 'amdsmi_get_xgmi_plpd', 'amdsmi_gpu_block_t', + 'amdsmi_gpu_cache_info_t', 'amdsmi_gpu_control_counter', 'amdsmi_gpu_counter_group_supported', 'amdsmi_gpu_create_counter', 'amdsmi_gpu_destroy_counter', 'amdsmi_gpu_metrics_t', 'amdsmi_gpu_read_counter', 'amdsmi_gpu_xgmi_error_status', @@ -2703,7 +2703,6 @@ __all__ = \ 'amdsmi_set_cpu_socket_boostlimit', 'amdsmi_set_cpu_socket_lclk_dpm_level', 'amdsmi_set_cpu_socket_power_cap', 'amdsmi_set_cpu_xgmi_width', - 'amdsmi_set_soc_pstate', 'amdsmi_set_gpu_run_cleaner_shader', 'amdsmi_set_gpu_clk_range', 'amdsmi_set_gpu_compute_partition', 'amdsmi_set_gpu_event_notification_mask', 'amdsmi_set_gpu_fan_speed', 'amdsmi_set_gpu_memory_partition', @@ -2711,11 +2710,12 @@ __all__ = \ 'amdsmi_set_gpu_overdrive_level', 'amdsmi_set_gpu_pci_bandwidth', 'amdsmi_set_gpu_perf_determinism_mode', 'amdsmi_set_gpu_perf_level', 'amdsmi_set_gpu_power_profile', - 'amdsmi_set_gpu_process_isolation', 'amdsmi_set_power_cap', - 'amdsmi_set_xgmi_plpd', 'amdsmi_shut_down', - 'amdsmi_smu_fw_version_t', 'amdsmi_socket_handle', - 'amdsmi_status_code_to_string', 'amdsmi_status_t', - 'amdsmi_stop_gpu_event_notification', + 'amdsmi_set_gpu_process_isolation', + 'amdsmi_set_gpu_run_cleaner_shader', 'amdsmi_set_power_cap', + 'amdsmi_set_soc_pstate', 'amdsmi_set_xgmi_plpd', + 'amdsmi_shut_down', 'amdsmi_smu_fw_version_t', + 'amdsmi_socket_handle', 'amdsmi_status_code_to_string', + 'amdsmi_status_t', 'amdsmi_stop_gpu_event_notification', 'amdsmi_temp_range_refresh_rate_t', 'amdsmi_temperature_metric_t', 'amdsmi_temperature_type_t', 'amdsmi_topo_get_link_type', 'amdsmi_topo_get_link_weight', 'amdsmi_topo_get_numa_node_number', diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index 39c4e7972b..66cfe15dbd 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -750,9 +750,11 @@ amdsmi_get_gpu_asic_info(amdsmi_processor_handle processor_handle, amdsmi_asic_i } // default to 0xffff as not supported - info->oam_id = std::numeric_limits::max(); + info->oam_id = std::numeric_limits::max(); + uint16_t tmp_oam_id = 0; status = rsmi_wrapper(rsmi_dev_oam_id_get, processor_handle, - &(info->oam_id)); + &(tmp_oam_id)); + info->oam_id = tmp_oam_id; return AMDSMI_STATUS_SUCCESS; } From 4441249ffa2db5fcc660fa2cf3c6bec95672d501 Mon Sep 17 00:00:00 2001 From: "Bill(Shuzhou) Liu" Date: Tue, 11 Jun 2024 11:28:41 -0500 Subject: [PATCH 2/5] Add return character when set the PM policy using sysfs When set PM policy in sysfs, the driver expect a return character. Change-Id: I83cddb3cdb14c226e6e856776176000eea33b251 --- rocm_smi/src/rocm_smi.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rocm_smi/src/rocm_smi.cc b/rocm_smi/src/rocm_smi.cc index 790314f89f..2813124951 100755 --- a/rocm_smi/src/rocm_smi.cc +++ b/rocm_smi/src/rocm_smi.cc @@ -2247,7 +2247,8 @@ rsmi_dev_xgmi_plpd_set(uint32_t dv_ind, DEVICE_MUTEX GET_DEV_FROM_INDX - std::string value = std::to_string(plpd_id); + // Need to add new line character + std::string value = std::to_string(plpd_id) + "\n"; int ret = dev->writeDevInfo(amd::smi::kDevXgmiPlpd , value); return amd::smi::ErrnoToRsmiStatus(ret); @@ -2360,7 +2361,8 @@ rsmi_dev_soc_pstate_set(uint32_t dv_ind, DEVICE_MUTEX GET_DEV_FROM_INDX - std::string value = std::to_string(policy_id); + // need to add new line character + std::string value = std::to_string(policy_id) + "\n"; int ret = dev->writeDevInfo(amd::smi::kDevSocPstate , value); return amd::smi::ErrnoToRsmiStatus(ret); From 94cab382bff211db1b80e5876ffb0252fd24f4f2 Mon Sep 17 00:00:00 2001 From: Sam Wu <22262939+samjwu@users.noreply.github.com> Date: Wed, 12 Jun 2024 14:59:41 -0600 Subject: [PATCH 3/5] [ROCDOC-593] Update Read the Docs documentation requirements Change-Id: I48350a42a50f0e85d9f074295e27c20b4b66cdb4 --- .github/dependabot.yml | 5 +- docs/sphinx/requirements.in | 2 +- docs/sphinx/requirements.txt | 112 +++++++++++++++++++---------------- 3 files changed, 63 insertions(+), 56 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 5c34bcb79c..78d41ab4f1 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,11 +9,10 @@ updates: directory: "/docs/sphinx" # Location of package manifests open-pull-requests-limit: 10 schedule: - interval: "monthly" - target-branch: "master" + interval: "weekly" + target-branch: "develop" labels: - "documentation" - "dependencies" - - "ci:docs-only" reviewers: - "samjwu" diff --git a/docs/sphinx/requirements.in b/docs/sphinx/requirements.in index 70de05573a..221c930455 100644 --- a/docs/sphinx/requirements.in +++ b/docs/sphinx/requirements.in @@ -1 +1 @@ -rocm-docs-core[api_reference]>=1.1.1 +rocm-docs-core[api_reference]==1.4.0 diff --git a/docs/sphinx/requirements.txt b/docs/sphinx/requirements.txt index f7b4f5d68e..fd2a5eee85 100644 --- a/docs/sphinx/requirements.txt +++ b/docs/sphinx/requirements.txt @@ -4,121 +4,123 @@ # # pip-compile requirements.in # -accessible-pygments==0.0.4 +accessible-pygments==0.0.5 # via pydata-sphinx-theme -alabaster==0.7.13 +alabaster==0.7.16 # via sphinx -babel==2.12.1 +babel==2.15.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.12.2 +beautifulsoup4==4.12.3 # via pydata-sphinx-theme breathe==4.35.0 # via rocm-docs-core -certifi==2023.5.7 +certifi==2024.6.2 # via requests -cffi==1.15.1 +cffi==1.16.0 # via # cryptography # pynacl -charset-normalizer==3.1.0 +charset-normalizer==3.3.2 # via requests -click==8.1.3 +click==8.1.7 # via # click-log # doxysphinx # sphinx-external-toc click-log==0.4.0 # via doxysphinx -cryptography==40.0.2 +cryptography==42.0.8 # via pyjwt -deprecated==1.2.13 +deprecated==1.2.14 # via pygithub -docutils==0.19 +docutils==0.21.2 # via # breathe # myst-parser # pydata-sphinx-theme # sphinx -doxysphinx==3.3.3 +doxysphinx==3.3.8 # via rocm-docs-core -fastjsonschema==2.17.1 +fastjsonschema==2.19.1 # via rocm-docs-core -gitdb==4.0.10 +gitdb==4.0.11 # via gitpython -gitpython==3.1.37 +gitpython==3.1.43 # via rocm-docs-core -idna==3.4 +idna==3.7 # via requests imagesize==1.4.1 # via sphinx -jinja2==3.1.2 +jinja2==3.1.4 # via # myst-parser # sphinx libsass==0.22.0 # via doxysphinx -lxml==4.9.2 +lxml==4.9.4 # via doxysphinx -markdown-it-py==2.2.0 +markdown-it-py==3.0.0 # via # mdit-py-plugins # myst-parser -markupsafe==2.1.2 +markupsafe==2.1.5 # via jinja2 -mdit-py-plugins==0.3.5 +mdit-py-plugins==0.4.1 # via myst-parser mdurl==0.1.2 # via markdown-it-py -mpire==2.7.1 +mpire==2.10.2 # via doxysphinx -myst-parser==1.0.0 +myst-parser==3.0.1 # via rocm-docs-core -packaging==23.1 +numpy==1.26.4 + # via doxysphinx +packaging==24.1 # via # pydata-sphinx-theme # sphinx -pycparser==2.21 +pycparser==2.22 # via cffi -pydata-sphinx-theme==0.13.3 +pydata-sphinx-theme==0.15.3 # via # rocm-docs-core # sphinx-book-theme -pygithub==1.58.2 +pygithub==2.3.0 # via rocm-docs-core -pygments==2.15.1 +pygments==2.18.0 # via # accessible-pygments # mpire # pydata-sphinx-theme # sphinx -pyjson5==1.6.2 +pyjson5==1.6.6 # via doxysphinx -pyjwt[crypto]==2.7.0 +pyjwt[crypto]==2.8.0 # via pygithub pynacl==1.5.0 # via pygithub -pyparsing==3.0.9 +pyparsing==3.1.2 # via doxysphinx -pyyaml==6.0 +pyyaml==6.0.1 # via # myst-parser # rocm-docs-core # sphinx-external-toc -requests==2.30.0 +requests==2.32.3 # via # pygithub # sphinx -rocm-docs-core[api-reference]==1.1.1 +rocm-docs-core[api-reference]==1.4.0 # via -r requirements.in -smmap==5.0.0 +smmap==5.0.1 # via gitdb snowballstemmer==2.2.0 # via sphinx -soupsieve==2.4.1 +soupsieve==2.5 # via beautifulsoup4 -sphinx==5.3.0 +sphinx==7.3.7 # via # breathe # myst-parser @@ -129,33 +131,39 @@ sphinx==5.3.0 # sphinx-design # sphinx-external-toc # sphinx-notfound-page -sphinx-book-theme==1.0.1 +sphinx-book-theme==1.1.3 # via rocm-docs-core sphinx-copybutton==0.5.2 # via rocm-docs-core -sphinx-design==0.4.1 +sphinx-design==0.6.0 # via rocm-docs-core -sphinx-external-toc==0.3.1 +sphinx-external-toc==1.0.1 # via rocm-docs-core -sphinx-notfound-page==0.8.3 +sphinx-notfound-page==1.0.2 # via rocm-docs-core -sphinxcontrib-applehelp==1.0.4 +sphinxcontrib-applehelp==1.0.8 # via sphinx -sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-devhelp==1.0.6 # via sphinx -sphinxcontrib-htmlhelp==2.0.1 +sphinxcontrib-htmlhelp==2.0.5 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx -sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-qthelp==1.0.7 # via sphinx -sphinxcontrib-serializinghtml==1.1.5 +sphinxcontrib-serializinghtml==1.1.10 # via sphinx -tqdm==4.65.0 +tomli==2.0.1 + # via sphinx +tqdm==4.66.4 # via mpire -typing-extensions==4.5.0 - # via pydata-sphinx-theme -urllib3==2.0.2 - # via requests -wrapt==1.15.0 +typing-extensions==4.12.2 + # via + # pydata-sphinx-theme + # pygithub +urllib3==2.2.1 + # via + # pygithub + # requests +wrapt==1.16.0 # via deprecated From e3c63628e570457c074f39affad89bc809e84eee Mon Sep 17 00:00:00 2001 From: "Bill(Shuzhou) Liu" Date: Thu, 13 Jun 2024 14:13:46 -0500 Subject: [PATCH 4/5] Change the clean shader API to clean local data To be align with the unified API. Change-Id: I2819339fba6f528204cebd3e9605109e82cbc5b4 --- CHANGELOG.md | 2 +- amdsmi_cli/amdsmi_commands.py | 17 ++++++++--------- amdsmi_cli/amdsmi_parser.py | 4 ++-- docs/how-to/using-amdsmi-for-python.md | 7 +++---- include/amd_smi/amdsmi.h | 11 ++++------- py-interface/README.md | 7 +++---- py-interface/__init__.py | 2 +- py-interface/amdsmi_interface.py | 7 +++---- py-interface/amdsmi_wrapper.py | 8 ++++---- src/amd_smi/amd_smi.cc | 5 ++--- 10 files changed, 31 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 226ff81be2..7decf29215 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,7 +27,7 @@ Added `AMDSMI_EVT_NOTIF_RING_HANG` to the possible events in the `amdsmi_evt_not ### Optimizations -- **Updated naming for `amdsmi_set_gpu_clear_sram_data()` to `amdsmi_set_gpu_run_cleaner_shader()`**. +- **Updated naming for `amdsmi_set_gpu_clear_sram_data()` to `amdsmi_clean_gpu_local_data()`**. Changed the naming to be more accurate to what the function was doing. This change also extends to the CLI where we changed the `clear-sram-data` command to `run-shader` that accepts a shader name to run. - **Updated `amdsmi_clk_info_t` struct in amdsmi.h and amdsmi_interface.py to align with host/guest**. diff --git a/amdsmi_cli/amdsmi_commands.py b/amdsmi_cli/amdsmi_commands.py index d063698921..e68bc5dddb 100644 --- a/amdsmi_cli/amdsmi_commands.py +++ b/amdsmi_cli/amdsmi_commands.py @@ -3730,7 +3730,7 @@ class AMDSMICommands(): def reset(self, args, multiple_devices=False, gpu=None, gpureset=None, clocks=None, fans=None, profile=None, xgmierr=None, perf_determinism=None, - compute_partition=None, memory_partition=None, power_cap=None, run_shader=None): + compute_partition=None, memory_partition=None, power_cap=None, clean_local_data=None): """Issue reset commands to target gpu(s) Args: @@ -3746,7 +3746,7 @@ class AMDSMICommands(): compute_partition (bool, optional): Value override for args.compute_partition. Defaults to None. memory_partition (bool, optional): Value override for args.memory_partition. Defaults to None. power_cap (bool, optional): Value override for args.power_cap. Defaults to None. - run_shader (bool, optional): Value override for args.run_cleaner_shader. Defaults to None. + clean_local_data (bool, optional): Value override for args.run_cleaner_shader. Defaults to None. Raises: ValueError: Value error if no gpu value is provided @@ -3776,8 +3776,8 @@ class AMDSMICommands(): args.memory_partition = memory_partition if power_cap: args.power_cap = power_cap - if run_shader: - args.run_shader = run_shader + if clean_local_data: + args.clean_local_data = clean_local_data # Handle No GPU passed if args.gpu == None: @@ -3796,7 +3796,7 @@ class AMDSMICommands(): # Error if no subcommand args are passed if not any([args.gpureset, args.clocks, args.fans, args.profile, args.xgmierr, \ args.perf_determinism, args.compute_partition, args.memory_partition, \ - args.power_cap, args.run_shader]): + args.power_cap, args.clean_local_data]): command = " ".join(sys.argv[1:]) raise AmdSmiRequiredCommandException(command, self.logger.format) @@ -3947,16 +3947,15 @@ class AMDSMICommands(): raise PermissionError('Command requires elevation') from e raise ValueError(f"Unable to reset power cap to {default_power_cap_in_w} on GPU {gpu_id}") from e self.logger.store_output(args.gpu, 'powercap', f"Successfully set power cap to {default_power_cap_in_w}") - if args.run_shader: + if args.clean_local_data: try: - # Only 1 can be used for now. - amdsmi_interface.amdsmi_set_gpu_run_cleaner_shader(args.gpu, 1) + amdsmi_interface.amdsmi_clean_gpu_local_data(args.gpu) result = 'Successfully clean GPU local data' except amdsmi_exception.AmdSmiLibraryException as e: if e.get_error_code() == amdsmi_interface.amdsmi_wrapper.AMDSMI_STATUS_NO_PERM: raise PermissionError('Command requires elevation') from e raise ValueError(f"Unable to clean local data on GPU {gpu_id}") from e - self.logger.store_output(args.gpu, 'run_shader', result) + self.logger.store_output(args.gpu, 'clean_local_data', result) if multiple_devices: self.logger.store_multiple_device_output() diff --git a/amdsmi_cli/amdsmi_parser.py b/amdsmi_cli/amdsmi_parser.py index 278f594df8..60fd32bd64 100644 --- a/amdsmi_cli/amdsmi_parser.py +++ b/amdsmi_cli/amdsmi_parser.py @@ -1071,7 +1071,7 @@ class AMDSMIParser(argparse.ArgumentParser): reset_compute_help = "Reset compute partitions on the specified GPU" reset_memory_help = "Reset memory partitions on the specified GPU" reset_power_cap_help = "Reset power capacity limit to max capable" - reset_gpu_run_cleaner_shader_help = "Run the shader on processor. Only CLEANER shader can be used to clean up data in LDS/GPRs" + reset_gpu_clean_local_data_help = "Clean up local data in LDS/GPRs" # Create reset subparser reset_parser = subparsers.add_parser('reset', help=reset_help, description=reset_subcommand_help) @@ -1097,7 +1097,7 @@ class AMDSMIParser(argparse.ArgumentParser): reset_parser.add_argument('-o', '--power-cap', action='store_true', required=False, help=reset_power_cap_help) # Add Baremetal and Virtual OS reset arguments - reset_parser.add_argument('-l', '--run-shader', action='store', choices=["CLEANER"], type=str.upper, required=False, help=reset_gpu_run_cleaner_shader_help, metavar='SHADER_NAME') + reset_parser.add_argument('-l', '--clean-local-data', action='store_true', required=False, help=reset_gpu_clean_local_data_help) def _add_monitor_parser(self, subparsers, func): diff --git a/docs/how-to/using-amdsmi-for-python.md b/docs/how-to/using-amdsmi-for-python.md index edfe7172d4..18d4246fc0 100644 --- a/docs/how-to/using-amdsmi-for-python.md +++ b/docs/how-to/using-amdsmi-for-python.md @@ -2035,17 +2035,16 @@ except AmdSmiException as e: print(e) ``` -### amdsmi_set_gpu_run_cleaner_shader +### amdsmi_clean_gpu_local_data Description: Clear the local data of the given device. This can be called between user logins to prevent information leak. Input parameters: * `processor_handle` handle for the given device -* `sclean` the clean flag. Only 1 will take effect and other number are reserved for future usage. Output: None -Exceptions that can be thrown by `amdsmi_set_gpu_run_cleaner_shader` function: +Exceptions that can be thrown by `amdsmi_clean_gpu_local_data` function: * `AmdSmiLibraryException` * `AmdSmiRetryException` @@ -2060,7 +2059,7 @@ try: print("No GPUs on machine") else: for device in devices: - amdsmi_set_gpu_run_cleaner_shader(device, 1) + amdsmi_clean_gpu_local_data(device) except AmdSmiException as e: print(e) ``` diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 50ec669255..0a98345e55 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -3509,25 +3509,22 @@ amdsmi_status_t amdsmi_set_gpu_process_isolation(amdsmi_processor_handle process uint32_t pisolate); /** - * @brief Run the cleaner shader to clean up data in LDS/GPRs + * @brief Clean up local data in LDS/GPRs * * @platform{gpu_bm_linux} @platform{guest_1vf} * - * @details Given a processor handle @p processor_handle, and a sclean flag @p sclean, - * this function will clear the local data of this processor. This can be called between + * @details Given a processor handle @p processor_handle, + * this function will clean the local data of this processor. This can be called between * user logins to prevent information leak. * * @note This function requires root access * * @param[in] processor_handle a processor handle * - * @param[in] sclean the clean flag. Only 1 will take effect and other number - * are reserved for future usage. * * @return ::amdsmi_status_t | ::AMDSMI_STATUS_SUCCESS on success, non-zero on fail */ -amdsmi_status_t amdsmi_set_gpu_run_cleaner_shader(amdsmi_processor_handle processor_handle, - uint32_t sclean); +amdsmi_status_t amdsmi_clean_gpu_local_data(amdsmi_processor_handle processor_handle); /** @} End PerfCont */ diff --git a/py-interface/README.md b/py-interface/README.md index 21fb77d338..82a25939d0 100644 --- a/py-interface/README.md +++ b/py-interface/README.md @@ -2084,17 +2084,16 @@ except AmdSmiException as e: print(e) ``` -### amdsmi_set_gpu_run_cleaner_shader +### amdsmi_clean_gpu_local_data Description: Clear the SRAM data of the given device. This can be called between user logins to prevent information leak. Input parameters: * `processor_handle` handle for the given device -* `sclean` the clean flag. Only 1 will take effect and other number are reserved for future usage. Output: None -Exceptions that can be thrown by `amdsmi_set_gpu_run_cleaner_shader` function: +Exceptions that can be thrown by `amdsmi_clean_gpu_local_data` function: * `AmdSmiLibraryException` * `AmdSmiRetryException` @@ -2109,7 +2108,7 @@ try: print("No GPUs on machine") else: for device in devices: - amdsmi_set_gpu_run_cleaner_shader(device, 1) + amdsmi_clean_gpu_local_data(device) except AmdSmiException as e: print(e) ``` diff --git a/py-interface/__init__.py b/py-interface/__init__.py index 928b8b53e5..e52de77bb6 100644 --- a/py-interface/__init__.py +++ b/py-interface/__init__.py @@ -136,7 +136,7 @@ from .amdsmi_interface import amdsmi_set_clk_freq from .amdsmi_interface import amdsmi_set_gpu_overdrive_level from .amdsmi_interface import amdsmi_set_soc_pstate from .amdsmi_interface import amdsmi_set_xgmi_plpd -from .amdsmi_interface import amdsmi_set_gpu_run_cleaner_shader +from .amdsmi_interface import amdsmi_clean_gpu_local_data from .amdsmi_interface import amdsmi_set_gpu_process_isolation # # Physical State Queries diff --git a/py-interface/amdsmi_interface.py b/py-interface/amdsmi_interface.py index 61012776dd..928fc1b478 100644 --- a/py-interface/amdsmi_interface.py +++ b/py-interface/amdsmi_interface.py @@ -2831,17 +2831,16 @@ def amdsmi_set_gpu_process_isolation( ) -def amdsmi_set_gpu_run_cleaner_shader( +def amdsmi_clean_gpu_local_data( processor_handle: amdsmi_wrapper.amdsmi_processor_handle, - sclean: int, ): if not isinstance(processor_handle, amdsmi_wrapper.amdsmi_processor_handle): raise AmdSmiParameterException( processor_handle, amdsmi_wrapper.amdsmi_processor_handle ) _check_res( - amdsmi_wrapper.amdsmi_set_gpu_run_cleaner_shader( - processor_handle, sclean + amdsmi_wrapper.amdsmi_clean_gpu_local_data( + processor_handle ) ) diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index 61b005e3f9..f6b925aae1 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -2100,9 +2100,9 @@ amdsmi_get_gpu_process_isolation.argtypes = [amdsmi_processor_handle, ctypes.POI amdsmi_set_gpu_process_isolation = _libraries['libamd_smi.so'].amdsmi_set_gpu_process_isolation amdsmi_set_gpu_process_isolation.restype = amdsmi_status_t amdsmi_set_gpu_process_isolation.argtypes = [amdsmi_processor_handle, uint32_t] -amdsmi_set_gpu_run_cleaner_shader = _libraries['libamd_smi.so'].amdsmi_set_gpu_run_cleaner_shader -amdsmi_set_gpu_run_cleaner_shader.restype = amdsmi_status_t -amdsmi_set_gpu_run_cleaner_shader.argtypes = [amdsmi_processor_handle, uint32_t] +amdsmi_clean_gpu_local_data = _libraries['libamd_smi.so'].amdsmi_clean_gpu_local_data +amdsmi_clean_gpu_local_data.restype = amdsmi_status_t +amdsmi_clean_gpu_local_data.argtypes = [amdsmi_processor_handle] amdsmi_get_lib_version = _libraries['libamd_smi.so'].amdsmi_get_lib_version amdsmi_get_lib_version.restype = amdsmi_status_t amdsmi_get_lib_version.argtypes = [ctypes.POINTER(struct_amdsmi_version_t)] @@ -2711,7 +2711,7 @@ __all__ = \ 'amdsmi_set_gpu_perf_determinism_mode', 'amdsmi_set_gpu_perf_level', 'amdsmi_set_gpu_power_profile', 'amdsmi_set_gpu_process_isolation', - 'amdsmi_set_gpu_run_cleaner_shader', 'amdsmi_set_power_cap', + 'amdsmi_clean_gpu_local_data', 'amdsmi_set_power_cap', 'amdsmi_set_soc_pstate', 'amdsmi_set_xgmi_plpd', 'amdsmi_shut_down', 'amdsmi_smu_fw_version_t', 'amdsmi_socket_handle', 'amdsmi_status_code_to_string', diff --git a/src/amd_smi/amd_smi.cc b/src/amd_smi/amd_smi.cc index 66cfe15dbd..79c82d52bc 100644 --- a/src/amd_smi/amd_smi.cc +++ b/src/amd_smi/amd_smi.cc @@ -1459,12 +1459,11 @@ amdsmi_status_t amdsmi_set_gpu_process_isolation(amdsmi_processor_handle process pisolate); } -amdsmi_status_t amdsmi_set_gpu_run_cleaner_shader(amdsmi_processor_handle processor_handle, - uint32_t sclean) { +amdsmi_status_t amdsmi_clean_gpu_local_data(amdsmi_processor_handle processor_handle) { AMDSMI_CHECK_INIT(); return rsmi_wrapper(rsmi_dev_gpu_run_cleaner_shader, processor_handle, - sclean); + 1); } amdsmi_status_t From a3497702cb03eecc833385ae3b31f684ed718e25 Mon Sep 17 00:00:00 2001 From: Maisam Arif Date: Tue, 18 Jun 2024 23:09:01 -0500 Subject: [PATCH 5/5] Bump Version to 24.6.1.0 and Update Changelog Signed-off-by: Maisam Arif Change-Id: I88b8ad1341d7f1a2e14517db82979bb6b28575e8 --- CHANGELOG.md | 7 +- CMakeLists.txt | 2 +- amdsmi_cli/README.md | 2 +- docs/doxygen/Doxyfile | 2 +- docs/how-to/using-AMD-SMI-CLI-tool.md | 564 ++++++++++++++++---------- include/amd_smi/amdsmi.h | 2 +- py-interface/amdsmi_wrapper.py | 27 +- 7 files changed, 359 insertions(+), 247 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7decf29215..75c386e353 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ VMs now have the ability to set the process isolation and clear the sram from th ```shell amd-smi set --process-isolation <0 or 1> -amd-smi reset --clear-sram-data +amd-smi reset --clean_local_data ``` - **Added macros that were in `amdsmi.h` to the amdsmi Python library `amdsmi_interface.py`**. @@ -28,7 +28,7 @@ Added `AMDSMI_EVT_NOTIF_RING_HANG` to the possible events in the `amdsmi_evt_not ### Optimizations - **Updated naming for `amdsmi_set_gpu_clear_sram_data()` to `amdsmi_clean_gpu_local_data()`**. -Changed the naming to be more accurate to what the function was doing. This change also extends to the CLI where we changed the `clear-sram-data` command to `run-shader` that accepts a shader name to run. +Changed the naming to be more accurate to what the function was doing. This change also extends to the CLI where we changed the `clear-sram-data` command to `clean_local_data`. - **Updated `amdsmi_clk_info_t` struct in amdsmi.h and amdsmi_interface.py to align with host/guest**. Changed cur_clk to clk, changed sleep_clk to clk_deep_sleep, and added clk_locked value. New struct will be in the following format: @@ -121,7 +121,6 @@ Multiple process outputs in the CLI tool were not being registered correctly. Th ] ``` - - **Removed `throttle-status` from `amd-smi monitor` as it is no longer reliably supported**. Throttle status may work for older ASICs, but will be replaced with PVIOL and TVIOL metrics for future ASIC support. It remains a field in the gpu_metrics API and in `amd-smi metric --power`. @@ -136,7 +135,7 @@ The parsing of `pp_od_clk_voltage` was not dynamic enough to work with the dropp ### Known Issues -- **Process isolation and run shader commands do no currently work and will be supported in a future release**. +- **`amdsmi_get_gpu_process_isolation` and `amdsmi_clean_gpu_local_data` commands do no currently work and will be supported in a future release**. ## amd_smi_lib for ROCm 6.1.2 diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b7a912d5f..67cc63cea1 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ find_program(GIT NAMES git) ## Setup the package version based on git tags. set(PKG_VERSION_GIT_TAG_PREFIX "amdsmi_pkg_ver") -get_package_version_number("24.6.0" ${PKG_VERSION_GIT_TAG_PREFIX} GIT) +get_package_version_number("24.6.1" ${PKG_VERSION_GIT_TAG_PREFIX} GIT) message("Package version: ${PKG_VERSION_STR}") set(${AMD_SMI_LIBS_TARGET}_VERSION_MAJOR "${CPACK_PACKAGE_VERSION_MAJOR}") set(${AMD_SMI_LIBS_TARGET}_VERSION_MINOR "${CPACK_PACKAGE_VERSION_MINOR}") diff --git a/amdsmi_cli/README.md b/amdsmi_cli/README.md index d87ec235b6..f0dc69c380 100644 --- a/amdsmi_cli/README.md +++ b/amdsmi_cli/README.md @@ -79,7 +79,7 @@ amd-smi will report the version and current platform detected when running the c ~$ amd-smi usage: amd-smi [-h] ... -AMD System Management Interface | Version: 24.6.0.0 | ROCm version: 6.2.0 | Platform: Linux Baremetal +AMD System Management Interface | Version: 24.6.1.0 | ROCm version: 6.2.0 | Platform: Linux Baremetal options: -h, --help show this help message and exit diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index 86489e990e..8f1b03c9da 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -48,7 +48,7 @@ PROJECT_NAME = AMD SMI # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "24.6.0.0" +PROJECT_NUMBER = "24.6.1.0" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/docs/how-to/using-AMD-SMI-CLI-tool.md b/docs/how-to/using-AMD-SMI-CLI-tool.md index d1cc76824e..6c22596f21 100644 --- a/docs/how-to/using-AMD-SMI-CLI-tool.md +++ b/docs/how-to/using-AMD-SMI-CLI-tool.md @@ -6,7 +6,7 @@ AMD-SMI reports the version and current platform detected when running the comma ~$ amd-smi usage: amd-smi [-h] ... -AMD System Management Interface | Version: 24.6.0.0 | ROCm version: 6.2.0 | Platform: Linux Baremetal +AMD System Management Interface | Version: 24.6.1.0 | ROCm version: 6.2.0 | Platform: Linux Baremetal options: -h, --help show this help message and exit @@ -36,25 +36,24 @@ Each command will have detailed information via `amd-smi [command] --help` For convenience, here is the help output for each command -``` bash +```bash ~$ amd-smi list --help usage: amd-smi list [-h] [--json | --csv] [--file FILE] [--loglevel LEVEL] [-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE ...]] -- Lists all the devices on the system and the links between devices. -- Lists all the sockets and for each socket, GPUs and/or CPUs associated to that socket alongside some basic information for each device. - -.. NOTE:: - -In virtualization environments, it can also list VFs associated to each GPU with some basic information for each VF. +Lists all the devices on the system and the links between devices. +Lists all the sockets and for each socket, GPUs and/or CPUs associated to +that socket alongside some basic information for each device. +In virtualization environments, it can also list VFs associated to each +GPU with some basic information for each VF. options: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -76,20 +75,20 @@ Command Modifiers: ```bash ~$ amd-smi static --help -usage: amd-smi static [-h] [-g GPU [GPU ...]] [-a] [-b] [-V] [-d] [-v] [-c] [-B] [-r] [-p] - [-l] [-P] [-x] [-s] [-u] [--json | --csv] [--file FILE] - [--loglevel LEVEL] +usage: amd-smi static [-h] [-g GPU [GPU ...] | -U CPU [CPU ...]] [-a] [-b] [-V] [-d] [-v] + [-c] [-B] [-R] [-r] [-p] [-l] [-P] [-x] [-u] [-s] [-i] + [--json | --csv] [--file FILE] [--loglevel LEVEL] -- If no GPU is specified, returns static information for all GPUs on the system. -- If no static argument is provided, all static information will be displayed. +If no GPU is specified, returns static information for all GPUs on the system. +If no static argument is provided, all static information will be displayed. Static Arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -104,10 +103,12 @@ Static Arguments: -v, --vram All vram information -c, --cache All cache information -B, --board All board information + -R, --process-isolation The process isolation status -r, --ras Displays RAS features information -p, --partition Partition information -l, --limit All limit metric values (i.e. power and thermal limits) - -s, --process-isolation The process isolation status + -P, --policy The available DPM policy + -x, --xgmi-plpd The available XGMI per-link power down policy -u, --numa All numa node information CPU Arguments: @@ -122,7 +123,7 @@ Command Modifiers: DEBUG, INFO, WARNING, ERROR, CRITICAL ``` -``` bash +```bash ~$ amd-smi firmware --help usage: amd-smi firmware [-h] [--json | --csv] [--file FILE] [--loglevel LEVEL] [-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE ...]] [-f] @@ -132,10 +133,10 @@ If no GPU is specified, return firmware information for all GPUs on the system. Firmware Arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -167,10 +168,10 @@ If no GPU is specified, return bad page information for all GPUs on the system. Bad Pages Arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -209,18 +210,18 @@ usage: amd-smi metric [-h] [-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE [--core-curr-active-freq-core-limit] [--core-energy] [--json | --csv] [--file FILE] [--loglevel LEVEL] -- If no GPU is specified, returns metric information for all GPUs on the system. -- If no metric argument is provided all metric information will be displayed. +If no GPU is specified, returns metric information for all GPUs on the system. +If no metric argument is provided all metric information will be displayed. Metric arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices - -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: + -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 ID: 1 ID: 2 @@ -290,16 +291,16 @@ usage: amd-smi process [-h] [--json | --csv] [--file FILE] [--loglevel LEVEL] [-w INTERVAL] [-W TIME] [-i ITERATIONS] [-G] [-e] [-p PID] [-n NAME] -- If no GPU is specified, returns information for all GPUs on the system. -- If no process argument is provided all process information will be displayed. +If no GPU is specified, returns information for all GPUs on the system. +If no process argument is provided all process information will be displayed. Process arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -337,10 +338,10 @@ If no GPU is specified, returns event information for all GPUs on the system. Event Arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -366,16 +367,16 @@ usage: amd-smi topology [-h] [--json | --csv] [--file FILE] [--loglevel LEVEL] [-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE ...]] [-a] [-w] [-o] [-t] [-b] -- If no GPU is specified, returns information for all GPUs on the system. -- If no topology argument is provided all topology information will be displayed. +If no GPU is specified, returns information for all GPUs on the system. +If no topology argument is provided all topology information will be displayed. Topology arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -401,27 +402,28 @@ Command Modifiers: ``` ```bash +~$ amd-smi set --help usage: amd-smi set [-h] (-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE ...]) [-f %] [-l LEVEL] [-P SETPROFILE] [-d SCLKMAX] [-C PARTITION] [-M PARTITION] - [-o WATTS] [-p POLICY] [-i STATUS] [--cpu-pwr-limit PWR_LIMIT] - [--cpu-xgmi-link-width MIN_WIDTH MAX_WIDTH] + [-o WATTS] [-p POLICY_ID] [-x POLICY_ID] [-R STATUS] + [--cpu-pwr-limit PWR_LIMIT] [--cpu-xgmi-link-width MIN_WIDTH MAX_WIDTH] [--cpu-lclk-dpm-level NBIOID MIN_DPM MAX_DPM] [--cpu-pwr-eff-mode MODE] [--cpu-gmi3-link-width MIN_LW MAX_LW] [--cpu-pcie-link-rate LINK_RATE] [--cpu-df-pstate-range MAX_PSTATE MIN_PSTATE] [--cpu-enable-apb] [--cpu-disable-apb DF_PSTATE] [--soc-boost-limit BOOST_LIMIT] - [--core-boost-limit BOOST_LIMIT] [-c] [--json | --csv] [--file FILE] + [--core-boost-limit BOOST_LIMIT] [--json | --csv] [--file FILE] [--loglevel LEVEL] -- A GPU must be specified to set a configuration. -- A set argument must be provided; Multiple set arguments are accepted +A GPU must be specified to set a configuration. +A set argument must be provided; Multiple set arguments are accepted Set Arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -443,8 +445,7 @@ Set Arguments: -o, --power-cap WATTS Set power capacity limit -p, --dpm-policy POLICY_ID Set the GPU DPM policy using policy id -x, --xgmi-plpd POLICY_ID Set the GPU XGMI per-link power down policy using policy id - -i, --process-isolation STATUS Enable or disable the GPU process isolation: 0 for disable and 1 for enable. - -c, --clear-sram-data Clear the GPU SRAM data + -R, --process-isolation STATUS Enable or disable the GPU process isolation: 0 for disable and 1 for enable. CPU Arguments: --cpu-pwr-limit PWR_LIMIT Set power limit for the given socket. Input parameter is power limit value. @@ -474,18 +475,18 @@ Command Modifiers: ~$ amd-smi reset --help usage: amd-smi reset [-h] [--json | --csv] [--file FILE] [--loglevel LEVEL] (-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE ...]) [-G] [-c] - [-f] [-p] [-x] [-d] [-C] [-M] [-o] + [-f] [-p] [-x] [-d] [-C] [-M] [-o] [-l] -- A GPU must be specified to reset a configuration. -- A reset argument must be provided; Multiple reset arguments are accepted +A GPU must be specified to reset a configuration. +A reset argument must be provided; Multiple reset arguments are accepted Reset Arguments: -h, --help show this help message and exit -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: - ID: 0 | BDF: 0000:01:00.0 | UUID: 71ff74a0-0000-1000-8066-0a3c71d5f817 - ID: 1 | BDF: 0001:01:00.0 | UUID: b4ff74a0-0000-1000-80b2-fa0be8628b1a - ID: 2 | BDF: 0002:01:00.0 | UUID: a9ff74a0-0000-1000-8007-3066a98ba4a6 - ID: 3 | BDF: 0003:01:00.0 | UUID: 53ff74a0-0000-1000-80a0-a1ff3830f499 + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 all | Selects all devices -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: ID: 0 @@ -505,6 +506,91 @@ Reset Arguments: -C, --compute-partition Reset compute partitions on the specified GPU -M, --memory-partition Reset memory partitions on the specified GPU -o, --power-cap Reset power capacity limit to max capable + -l, --run-shader SHADER_NAME Run the shader on processor. Only CLEANER shader can be used to clean up data in LDS/GPRs + +Command Modifiers: + --json Displays output in JSON format (human readable by default). + --csv Displays output in CSV format (human readable by default). + --file FILE Saves output into a file on the provided path (stdout by default). + --loglevel LEVEL Set the logging level from the possible choices: + DEBUG, INFO, WARNING, ERROR, CRITICAL +``` + +```bash +~$ amd-smi monitor --help +usage: amd-smi monitor [-h] [--json | --csv] [--file FILE] [--loglevel LEVEL] + [-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE ...]] + [-w INTERVAL] [-W TIME] [-i ITERATIONS] [-p] [-t] [-u] [-m] [-n] + [-d] [-e] [-v] [-r] + +Monitor a target device for the specified arguments. +If no arguments are provided, all arguments will be enabled. +Use the watch arguments to run continuously + +Monitor Arguments: + -h, --help show this help message and exit + -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 + all | Selects all devices + -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: + ID: 0 + ID: 1 + ID: 2 + ID: 3 + all | Selects all devices + -O, --core CORE [CORE ...] Select a Core ID from the possible choices: + ID: 0 - 95 + all | Selects all devices + -w, --watch INTERVAL Reprint the command in a loop of INTERVAL seconds + -W, --watch_time TIME The total TIME to watch the given command + -i, --iterations ITERATIONS Total number of ITERATIONS to loop on the given command + -p, --power-usage Monitor power usage in Watts + -t, --temperature Monitor temperature in Celsius + -u, --gfx Monitor graphics utilization (%) and clock (MHz) + -m, --mem Monitor memory utilization (%) and clock (MHz) + -n, --encoder Monitor encoder utilization (%) and clock (MHz) + -d, --decoder Monitor decoder utilization (%) and clock (MHz) + -e, --ecc Monitor ECC single bit, ECC double bit, and PCIe replay error counts + -v, --vram-usage Monitor memory usage in MB + -r, --pcie Monitor PCIe bandwidth in Mb/s + +Command Modifiers: + --json Displays output in JSON format (human readable by default). + --csv Displays output in CSV format (human readable by default). + --file FILE Saves output into a file on the provided path (stdout by default). + --loglevel LEVEL Set the logging level from the possible choices: + DEBUG, INFO, WARNING, ERROR, CRITICAL +``` + +```bash +~$ amd-smi xgmi --help +usage: amd-smi xgmi [-h] [--json | --csv] [--file FILE] [--loglevel LEVEL] + [-g GPU [GPU ...] | -U CPU [CPU ...] | -O CORE [CORE ...]] [-m] + +If no GPU is specified, returns information for all GPUs on the system. +If no xgmi argument is provided all xgmi information will be displayed. + +XGMI arguments: + -h, --help show this help message and exit + -g, --gpu GPU [GPU ...] Select a GPU ID, BDF, or UUID from the possible choices: + ID: 0 | BDF: 0000:01:00.0 | UUID: 7eff74a0-0000-1000-808f-7e20764e2714 + ID: 1 | BDF: 0001:01:00.0 | UUID: b6ff74a0-0000-1000-80ae-7c8cefe1f084 + ID: 2 | BDF: 0002:01:00.0 | UUID: 36ff74a0-0000-1000-8071-25d815189854 + ID: 3 | BDF: 0003:01:00.0 | UUID: f4ff74a0-0000-1000-80c4-4c2be5e66537 + all | Selects all devices + -U, --cpu CPU [CPU ...] Select a CPU ID from the possible choices: + ID: 0 + ID: 1 + ID: 2 + ID: 3 + all | Selects all devices + -O, --core CORE [CORE ...] Select a Core ID from the possible choices: + ID: 0 - 95 + all | Selects all devices + -m, --metric Metric XGMI information Command Modifiers: --json Displays output in JSON format (human readable by default). @@ -521,28 +607,29 @@ Here is some example output from the tool: ```bash ~$ amd-smi static CPU: 0 - SMU: - FW_VERSION: 85:81:0 - INTERFACE_VERSION: - PROTO VERSION: 6 + SMU: + FW_VERSION: 85.90.0 + INTERFACE_VERSION: + PROTO VERSION: 6 CPU: 1 - SMU: - FW_VERSION: 85:81:0 - INTERFACE_VERSION: - PROTO VERSION: 6 + SMU: + FW_VERSION: 85.90.0 + INTERFACE_VERSION: + PROTO VERSION: 6 CPU: 2 - SMU: - FW_VERSION: 85:81:0 - INTERFACE_VERSION: - PROTO VERSION: 6 + SMU: + FW_VERSION: 85.90.0 + INTERFACE_VERSION: + PROTO VERSION: 6 CPU: 3 - SMU: - FW_VERSION: 85:81:0 - INTERFACE_VERSION: - PROTO VERSION: 6 + SMU: + FW_VERSION: 85.90.0 + INTERFACE_VERSION: + PROTO VERSION: 6 + GPU: 0 ASIC: @@ -551,8 +638,8 @@ GPU: 0 VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] SUBVENDOR_ID: 0x1002 DEVICE_ID: 0x74a0 - REV_ID: 0x0 - ASIC_SERIAL: 0x71660A3C71D5F817 + REV_ID: 0x00 + ASIC_SERIAL: 0x7E8F7E20764E2714 OAM_ID: 0 BUS: BDF: 0000:01:00.0 @@ -564,25 +651,26 @@ GPU: 0 NAME: N/A BUILD_DATE: N/A PART_NUMBER: N/A - VERSION: N/A + VERSION: N/A LIMIT: MAX_POWER: 550 W + MIN_POWER: 0 W SOCKET_POWER: 550 W SLOWDOWN_EDGE_TEMPERATURE: N/A SLOWDOWN_HOTSPOT_TEMPERATURE: 100 °C - SLOWDOWN_VRAM_TEMPERATURE: 95 °C + SLOWDOWN_VRAM_TEMPERATURE: 105 °C SHUTDOWN_EDGE_TEMPERATURE: N/A SHUTDOWN_HOTSPOT_TEMPERATURE: 110 °C - SHUTDOWN_VRAM_TEMPERATURE: 105 °C + SHUTDOWN_VRAM_TEMPERATURE: 115 °C DRIVER: NAME: amdgpu - VERSION: 6.7.0 + VERSION: 6.9.0-rc5+ BOARD: MODEL_NUMBER: N/A PRODUCT_SERIAL: N/A FRU_ID: N/A - PRODUCT_NAME: N/A - MANUFACTURER_NAME: N/A + PRODUCT_NAME: Aqua Vanjaram [Instinct MI300A] + MANUFACTURER_NAME: Advanced Micro Devices, Inc. [AMD/ATI] RAS: EEPROM_VERSION: 0x0 PARITY_SCHEMA: DISABLED @@ -604,6 +692,11 @@ GPU: 0 MP0: DISABLED MP1: DISABLED FUSE: DISABLED + MCA: DISABLED + VCN: DISABLED + JPEG: DISABLED + IH: DISABLED + MPIO: DISABLED PARTITION: COMPUTE_PARTITION: SPX MEMORY_PARTITION: NPS1 @@ -629,38 +722,39 @@ GPU: 0 POLICY_DESCRIPTION: plpd_default POLICY_ID: 2 POLICY_DESCRIPTION: plpd_optimized + PROCESS_ISOLATION: N/A NUMA: NODE: 0 AFFINITY: 0 VRAM: TYPE: HBM VENDOR: N/A - SIZE: 96432 MB - CACHE_INFO: - CACHE_0: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 32 KB - CACHE_LEVEL: 1 - MAX_NUM_CU_SHARED: 2 - NUM_CACHE_INSTANCE: 464 - CACHE_1: - CACHE_PROPERTIES: INST_CACHE, SIMD_CACHE - CACHE_SIZE: 64 KB - CACHE_LEVEL: 1 - MAX_NUM_CU_SHARED: 2 - NUM_CACHE_INSTANCE: 160 - CACHE_2: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 32768 KB - CACHE_LEVEL: 2 - MAX_NUM_CU_SHARED: 304 - NUM_CACHE_INSTANCE: 1 - CACHE_3: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 262144 KB - CACHE_LEVEL: 3 - MAX_NUM_CU_SHARED: 304 - NUM_CACHE_INSTANCE: 1 + SIZE: 64289 MB + CACHE_INFO: + CACHE_0: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 32 KB + CACHE_LEVEL: 1 + MAX_NUM_CU_SHARED: 2 + NUM_CACHE_INSTANCE: 348 + CACHE_1: + CACHE_PROPERTIES: INST_CACHE, SIMD_CACHE + CACHE_SIZE: 64 KB + CACHE_LEVEL: 1 + MAX_NUM_CU_SHARED: 2 + NUM_CACHE_INSTANCE: 120 + CACHE_2: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 4096 KB + CACHE_LEVEL: 2 + MAX_NUM_CU_SHARED: 228 + NUM_CACHE_INSTANCE: 1 + CACHE_3: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 262144 KB + CACHE_LEVEL: 3 + MAX_NUM_CU_SHARED: 228 + NUM_CACHE_INSTANCE: 1 GPU: 1 ASIC: @@ -669,8 +763,8 @@ GPU: 1 VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] SUBVENDOR_ID: 0x1002 DEVICE_ID: 0x74a0 - REV_ID: 0x0 - ASIC_SERIAL: 0xB4B2FA0BE8628B1A + REV_ID: 0x00 + ASIC_SERIAL: 0xB6AE7C8CEFE1F084 OAM_ID: 1 BUS: BDF: 0001:01:00.0 @@ -682,25 +776,26 @@ GPU: 1 NAME: N/A BUILD_DATE: N/A PART_NUMBER: N/A - VERSION: N/A + VERSION: N/A LIMIT: MAX_POWER: 550 W + MIN_POWER: 0 W SOCKET_POWER: 550 W SLOWDOWN_EDGE_TEMPERATURE: N/A SLOWDOWN_HOTSPOT_TEMPERATURE: 100 °C - SLOWDOWN_VRAM_TEMPERATURE: 95 °C + SLOWDOWN_VRAM_TEMPERATURE: 105 °C SHUTDOWN_EDGE_TEMPERATURE: N/A SHUTDOWN_HOTSPOT_TEMPERATURE: 110 °C - SHUTDOWN_VRAM_TEMPERATURE: 105 °C + SHUTDOWN_VRAM_TEMPERATURE: 115 °C DRIVER: NAME: amdgpu - VERSION: 6.7.0 + VERSION: 6.9.0-rc5+ BOARD: MODEL_NUMBER: N/A PRODUCT_SERIAL: N/A FRU_ID: N/A - PRODUCT_NAME: N/A - MANUFACTURER_NAME: N/A + PRODUCT_NAME: Aqua Vanjaram [Instinct MI300A] + MANUFACTURER_NAME: Advanced Micro Devices, Inc. [AMD/ATI] RAS: EEPROM_VERSION: 0x0 PARITY_SCHEMA: DISABLED @@ -722,6 +817,11 @@ GPU: 1 MP0: DISABLED MP1: DISABLED FUSE: DISABLED + MCA: DISABLED + VCN: DISABLED + JPEG: DISABLED + IH: DISABLED + MPIO: DISABLED PARTITION: COMPUTE_PARTITION: SPX MEMORY_PARTITION: NPS1 @@ -747,38 +847,39 @@ GPU: 1 POLICY_DESCRIPTION: plpd_default POLICY_ID: 2 POLICY_DESCRIPTION: plpd_optimized + PROCESS_ISOLATION: N/A NUMA: NODE: 1 AFFINITY: 1 VRAM: TYPE: HBM VENDOR: N/A - SIZE: 96432 MB - CACHE_INFO: - CACHE_0: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 32 KB - CACHE_LEVEL: 1 - MAX_NUM_CU_SHARED: 2 - NUM_CACHE_INSTANCE: 464 - CACHE_1: - CACHE_PROPERTIES: INST_CACHE, SIMD_CACHE - CACHE_SIZE: 64 KB - CACHE_LEVEL: 1 - MAX_NUM_CU_SHARED: 2 - NUM_CACHE_INSTANCE: 160 - CACHE_2: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 32768 KB - CACHE_LEVEL: 2 - MAX_NUM_CU_SHARED: 304 - NUM_CACHE_INSTANCE: 1 - CACHE_3: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 262144 KB - CACHE_LEVEL: 3 - MAX_NUM_CU_SHARED: 304 - NUM_CACHE_INSTANCE: 1 + SIZE: 64289 MB + CACHE_INFO: + CACHE_0: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 32 KB + CACHE_LEVEL: 1 + MAX_NUM_CU_SHARED: 2 + NUM_CACHE_INSTANCE: 348 + CACHE_1: + CACHE_PROPERTIES: INST_CACHE, SIMD_CACHE + CACHE_SIZE: 64 KB + CACHE_LEVEL: 1 + MAX_NUM_CU_SHARED: 2 + NUM_CACHE_INSTANCE: 120 + CACHE_2: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 4096 KB + CACHE_LEVEL: 2 + MAX_NUM_CU_SHARED: 228 + NUM_CACHE_INSTANCE: 1 + CACHE_3: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 262144 KB + CACHE_LEVEL: 3 + MAX_NUM_CU_SHARED: 228 + NUM_CACHE_INSTANCE: 1 GPU: 2 ASIC: @@ -787,8 +888,8 @@ GPU: 2 VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] SUBVENDOR_ID: 0x1002 DEVICE_ID: 0x74a0 - REV_ID: 0x0 - ASIC_SERIAL: 0xA9073066A98BA4A6 + REV_ID: 0x00 + ASIC_SERIAL: 0x367125D815189854 OAM_ID: 2 BUS: BDF: 0002:01:00.0 @@ -800,25 +901,26 @@ GPU: 2 NAME: N/A BUILD_DATE: N/A PART_NUMBER: N/A - VERSION: N/A + VERSION: N/A LIMIT: MAX_POWER: 550 W + MIN_POWER: 0 W SOCKET_POWER: 550 W SLOWDOWN_EDGE_TEMPERATURE: N/A SLOWDOWN_HOTSPOT_TEMPERATURE: 100 °C - SLOWDOWN_VRAM_TEMPERATURE: 95 °C + SLOWDOWN_VRAM_TEMPERATURE: 105 °C SHUTDOWN_EDGE_TEMPERATURE: N/A SHUTDOWN_HOTSPOT_TEMPERATURE: 110 °C - SHUTDOWN_VRAM_TEMPERATURE: 105 °C + SHUTDOWN_VRAM_TEMPERATURE: 115 °C DRIVER: NAME: amdgpu - VERSION: 6.7.0 + VERSION: 6.9.0-rc5+ BOARD: MODEL_NUMBER: N/A PRODUCT_SERIAL: N/A FRU_ID: N/A - PRODUCT_NAME: N/A - MANUFACTURER_NAME: N/A + PRODUCT_NAME: Aqua Vanjaram [Instinct MI300A] + MANUFACTURER_NAME: Advanced Micro Devices, Inc. [AMD/ATI] RAS: EEPROM_VERSION: 0x0 PARITY_SCHEMA: DISABLED @@ -840,6 +942,11 @@ GPU: 2 MP0: DISABLED MP1: DISABLED FUSE: DISABLED + MCA: DISABLED + VCN: DISABLED + JPEG: DISABLED + IH: DISABLED + MPIO: DISABLED PARTITION: COMPUTE_PARTITION: SPX MEMORY_PARTITION: NPS1 @@ -865,38 +972,39 @@ GPU: 2 POLICY_DESCRIPTION: plpd_default POLICY_ID: 2 POLICY_DESCRIPTION: plpd_optimized + PROCESS_ISOLATION: N/A NUMA: NODE: 2 AFFINITY: 2 VRAM: TYPE: HBM VENDOR: N/A - SIZE: 96432 MB - CACHE_INFO: - CACHE_0: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 32 KB - CACHE_LEVEL: 1 - MAX_NUM_CU_SHARED: 2 - NUM_CACHE_INSTANCE: 464 - CACHE_1: - CACHE_PROPERTIES: INST_CACHE, SIMD_CACHE - CACHE_SIZE: 64 KB - CACHE_LEVEL: 1 - MAX_NUM_CU_SHARED: 2 - NUM_CACHE_INSTANCE: 160 - CACHE_2: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 32768 KB - CACHE_LEVEL: 2 - MAX_NUM_CU_SHARED: 304 - NUM_CACHE_INSTANCE: 1 - CACHE_3: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 262144 KB - CACHE_LEVEL: 3 - MAX_NUM_CU_SHARED: 304 - NUM_CACHE_INSTANCE: 1 + SIZE: 64289 MB + CACHE_INFO: + CACHE_0: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 32 KB + CACHE_LEVEL: 1 + MAX_NUM_CU_SHARED: 2 + NUM_CACHE_INSTANCE: 348 + CACHE_1: + CACHE_PROPERTIES: INST_CACHE, SIMD_CACHE + CACHE_SIZE: 64 KB + CACHE_LEVEL: 1 + MAX_NUM_CU_SHARED: 2 + NUM_CACHE_INSTANCE: 120 + CACHE_2: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 4096 KB + CACHE_LEVEL: 2 + MAX_NUM_CU_SHARED: 228 + NUM_CACHE_INSTANCE: 1 + CACHE_3: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 262144 KB + CACHE_LEVEL: 3 + MAX_NUM_CU_SHARED: 228 + NUM_CACHE_INSTANCE: 1 GPU: 3 ASIC: @@ -905,8 +1013,8 @@ GPU: 3 VENDOR_NAME: Advanced Micro Devices Inc. [AMD/ATI] SUBVENDOR_ID: 0x1002 DEVICE_ID: 0x74a0 - REV_ID: 0x0 - ASIC_SERIAL: 0x53A0A1FF3830F499 + REV_ID: 0x00 + ASIC_SERIAL: 0xF4C44C2BE5E66537 OAM_ID: 3 BUS: BDF: 0003:01:00.0 @@ -918,25 +1026,26 @@ GPU: 3 NAME: N/A BUILD_DATE: N/A PART_NUMBER: N/A - VERSION: N/A + VERSION: N/A LIMIT: MAX_POWER: 550 W + MIN_POWER: 0 W SOCKET_POWER: 550 W SLOWDOWN_EDGE_TEMPERATURE: N/A SLOWDOWN_HOTSPOT_TEMPERATURE: 100 °C - SLOWDOWN_VRAM_TEMPERATURE: 95 °C + SLOWDOWN_VRAM_TEMPERATURE: 105 °C SHUTDOWN_EDGE_TEMPERATURE: N/A SHUTDOWN_HOTSPOT_TEMPERATURE: 110 °C - SHUTDOWN_VRAM_TEMPERATURE: 105 °C + SHUTDOWN_VRAM_TEMPERATURE: 115 °C DRIVER: NAME: amdgpu - VERSION: 6.7.0 + VERSION: 6.9.0-rc5+ BOARD: MODEL_NUMBER: N/A PRODUCT_SERIAL: N/A FRU_ID: N/A - PRODUCT_NAME: N/A - MANUFACTURER_NAME: N/A + PRODUCT_NAME: Aqua Vanjaram [Instinct MI300A] + MANUFACTURER_NAME: Advanced Micro Devices, Inc. [AMD/ATI] RAS: EEPROM_VERSION: 0x0 PARITY_SCHEMA: DISABLED @@ -958,6 +1067,11 @@ GPU: 3 MP0: DISABLED MP1: DISABLED FUSE: DISABLED + MCA: DISABLED + VCN: DISABLED + JPEG: DISABLED + IH: DISABLED + MPIO: DISABLED PARTITION: COMPUTE_PARTITION: SPX MEMORY_PARTITION: NPS1 @@ -983,38 +1097,38 @@ GPU: 3 POLICY_DESCRIPTION: plpd_default POLICY_ID: 2 POLICY_DESCRIPTION: plpd_optimized + PROCESS_ISOLATION: N/A NUMA: NODE: 3 AFFINITY: 3 VRAM: TYPE: HBM VENDOR: N/A - SIZE: 96432 MB - CACHE_INFO: - CACHE_0: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 32 KB - CACHE_LEVEL: 1 - MAX_NUM_CU_SHARED: 2 - NUM_CACHE_INSTANCE: 464 - CACHE_1: - CACHE_PROPERTIES: INST_CACHE, SIMD_CACHE - CACHE_SIZE: 64 KB - CACHE_LEVEL: 1 - MAX_NUM_CU_SHARED: 2 - NUM_CACHE_INSTANCE: 160 - CACHE_2: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 32768 KB - CACHE_LEVEL: 2 - MAX_NUM_CU_SHARED: 304 - NUM_CACHE_INSTANCE: 1 - CACHE_3: - CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE - CACHE_SIZE: 262144 KB - CACHE_LEVEL: 3 - MAX_NUM_CU_SHARED: 304 - NUM_CACHE_INSTANCE: 1 + SIZE: 64289 MB + CACHE_INFO: + CACHE_0: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 32 KB + CACHE_LEVEL: 1 + MAX_NUM_CU_SHARED: 2 + NUM_CACHE_INSTANCE: 348 + CACHE_1: + CACHE_PROPERTIES: INST_CACHE, SIMD_CACHE + CACHE_SIZE: 64 KB + CACHE_LEVEL: 1 + MAX_NUM_CU_SHARED: 2 + NUM_CACHE_INSTANCE: 120 + CACHE_2: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 4096 KB + CACHE_LEVEL: 2 + MAX_NUM_CU_SHARED: 228 + NUM_CACHE_INSTANCE: 1 + CACHE_3: + CACHE_PROPERTIES: DATA_CACHE, SIMD_CACHE + CACHE_SIZE: 262144 KB + CACHE_LEVEL: 3 + MAX_NUM_CU_SHARED: 228 + NUM_CACHE_INSTANCE: 1 ``` - diff --git a/include/amd_smi/amdsmi.h b/include/amd_smi/amdsmi.h index 0a98345e55..33ac03e1b9 100644 --- a/include/amd_smi/amdsmi.h +++ b/include/amd_smi/amdsmi.h @@ -154,7 +154,7 @@ typedef enum { #define AMDSMI_LIB_VERSION_MAJOR 6 //! Minor version should be updated for each API change, but without changing headers -#define AMDSMI_LIB_VERSION_MINOR 0 +#define AMDSMI_LIB_VERSION_MINOR 1 //! Release version should be set to 0 as default and can be updated by the PMs for each CSP point release #define AMDSMI_LIB_VERSION_RELEASE 0 diff --git a/py-interface/amdsmi_wrapper.py b/py-interface/amdsmi_wrapper.py index f6b925aae1..570dc7418e 100644 --- a/py-interface/amdsmi_wrapper.py +++ b/py-interface/amdsmi_wrapper.py @@ -2581,18 +2581,18 @@ __all__ = \ 'amd_metrics_table_header_t', 'amdsmi_asic_info_t', 'amdsmi_bdf_t', 'amdsmi_bit_field_t', 'amdsmi_board_info_t', 'amdsmi_cache_property_type_t', 'amdsmi_card_form_factor_t', - 'amdsmi_clk_info_t', 'amdsmi_clk_type_t', - 'amdsmi_compute_partition_type_t', 'amdsmi_container_types_t', - 'amdsmi_counter_command_t', 'amdsmi_counter_value_t', - 'amdsmi_cpu_apb_disable', 'amdsmi_cpu_apb_enable', - 'amdsmi_cpusocket_handle', 'amdsmi_ddr_bw_metrics_t', - 'amdsmi_dev_perf_level_t', 'amdsmi_dimm_power_t', - 'amdsmi_dimm_thermal_t', 'amdsmi_dpm_level_t', - 'amdsmi_dpm_policy_entry_t', 'amdsmi_dpm_policy_t', - 'amdsmi_driver_info_t', 'amdsmi_engine_usage_t', - 'amdsmi_error_count_t', 'amdsmi_event_group_t', - 'amdsmi_event_handle_t', 'amdsmi_event_type_t', - 'amdsmi_evt_notification_data_t', + 'amdsmi_clean_gpu_local_data', 'amdsmi_clk_info_t', + 'amdsmi_clk_type_t', 'amdsmi_compute_partition_type_t', + 'amdsmi_container_types_t', 'amdsmi_counter_command_t', + 'amdsmi_counter_value_t', 'amdsmi_cpu_apb_disable', + 'amdsmi_cpu_apb_enable', 'amdsmi_cpusocket_handle', + 'amdsmi_ddr_bw_metrics_t', 'amdsmi_dev_perf_level_t', + 'amdsmi_dimm_power_t', 'amdsmi_dimm_thermal_t', + 'amdsmi_dpm_level_t', 'amdsmi_dpm_policy_entry_t', + 'amdsmi_dpm_policy_t', 'amdsmi_driver_info_t', + 'amdsmi_engine_usage_t', 'amdsmi_error_count_t', + 'amdsmi_event_group_t', 'amdsmi_event_handle_t', + 'amdsmi_event_type_t', 'amdsmi_evt_notification_data_t', 'amdsmi_evt_notification_type_t', 'amdsmi_first_online_core_on_cpu_socket', 'amdsmi_freq_ind_t', 'amdsmi_freq_volt_region_t', 'amdsmi_frequencies_t', @@ -2710,8 +2710,7 @@ __all__ = \ 'amdsmi_set_gpu_overdrive_level', 'amdsmi_set_gpu_pci_bandwidth', 'amdsmi_set_gpu_perf_determinism_mode', 'amdsmi_set_gpu_perf_level', 'amdsmi_set_gpu_power_profile', - 'amdsmi_set_gpu_process_isolation', - 'amdsmi_clean_gpu_local_data', 'amdsmi_set_power_cap', + 'amdsmi_set_gpu_process_isolation', 'amdsmi_set_power_cap', 'amdsmi_set_soc_pstate', 'amdsmi_set_xgmi_plpd', 'amdsmi_shut_down', 'amdsmi_smu_fw_version_t', 'amdsmi_socket_handle', 'amdsmi_status_code_to_string',