diff --git a/projects/amdsmi/.gitignore b/projects/amdsmi/.gitignore
index d126460b84..b01b2b7fdd 100644
--- a/projects/amdsmi/.gitignore
+++ b/projects/amdsmi/.gitignore
@@ -17,6 +17,7 @@ include/amd_smi/amd_smi64Config.h
include/amd_smi/amd_smiConfig.h
rocm_smi/include/rocm_smi/rocm_smi64Config.h
docs/*.pdf
+goamdsmi_shim/include/goamdsmi_shimConfig.h
# Byte-compiled / optimized / DLL files
__pycache__/
diff --git a/projects/amdsmi/tests/python_unittest/README.md b/projects/amdsmi/tests/python_unittest/README.md
index 26e9fb7dbd..4fcf240513 100644
--- a/projects/amdsmi/tests/python_unittest/README.md
+++ b/projects/amdsmi/tests/python_unittest/README.md
@@ -1,6 +1,6 @@
# How to Python Unit Tests
## Overview
-We use Python's default Python unittest testing framework. You can read more about it here [Python unittest v3.8](https://docs.python.org/3.8/library/unittest.html). Alternatively, you can read up on pytest through here [Pytest how-to usage](https://docs.pytest.org/en/latest/index.html).
+We use Python's default Python unittest testing framework. You can read more about it here [Python unittest v3.8](https://docs.python.org/3.8/library/unittest.html).
## Warning to Users
AMD SMI Python API tests are subject to change. These tests are currently a work in progress and may not work on your system.
@@ -13,416 +13,42 @@ Follow our install/build guides to ensure the Python API is installed correctly
## How to Run
### Basic How To
The 2 tests are in this PATH:
-```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py```
-```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py```
+```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py```
+```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py```
-The recommended method to run the tests:
+The recommended method to run the tests:
+Unittest only (not verbose)
+```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -b -v```
+```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -b -v```
Unittest verbose
```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v```
```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v```
-Unittest only (not verbose)
+Unittest filter and verbose
+```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -k "testname" -v```
+```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "testname" -v```
+
+## Unittest Run Options
+The Unittest Run calls the tests directly. The cache provider will always be used.
+
+options:
+ - -h, --help show this help message and exit
+ - -v, --verbose Verbose output
+ - -q, --quiet Quiet output
+ - -b, --buffer Buffer stdout and stderr during tests
+ - -k "testname" Only run tests which match the given substring
+
+### Unittest: not verbose
+Runs all tests. Silence print statements to stdout. Lists tests results.
+This is also the best way to list all tests available.
+
```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -b -v```
```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -b -v```
-See sections below for more detailed options with examples.
-
-## Unittest Run Options
-### Unittest Run: Verbose on
-Helpful to see print outs of Python.
-
-```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v```
-
-```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v```
-
ex.
- Click for example: Unittest run: verbose on
-
-~~~shell
-/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v
-test_init (__main__.TestAmdSmiInit) ... ok
-test_bad_page_info (__main__.TestAmdSmiPythonInterface) ... ###Test amdsmi_get_gpu_bad_page_info
-
-**** [ERROR] | Test: test_bad_page_info | Caught AmdSmiLibraryException
-ok
-test_bdf_device_id (__main__.TestAmdSmiPythonInterface) ... ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['version'] is: 020.001.000.038.015697
-
- vbios_info['name'] is: NAVI21 Gaming XL D412
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 81ff73bf-0000-1000-80c1-6890a5911040
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['version'] is: 020.001.000.060.016898
-
- vbios_info['name'] is: NAVI21 D43001 GLXL
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 1fff73a3-0000-1000-8075-223e5e64eac1
-ok
-test_ecc (__main__.TestAmdSmiPythonInterface) ... ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_ras_feature_info
-
-**** [ERROR] | Test: test_ecc | Caught AmdSmiLibraryException
-ok
-test_gpu_performance (__main__.TestAmdSmiPythonInterface) ... ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_activity
- engine_usage['gfx_activity'] is: 3 %
- engine_usage['umc_activity'] is: 0 %
- engine_usage['mm_activity'] is: 0 %
-
-###Test amdsmi_get_power_info
- power_info['current_socket_power'] is: N/A
- power_info['average_socket_power'] is: 8
- power_info['gfx_voltage'] is: 768
- power_info['soc_voltage'] is: 918
- power_info['mem_voltage'] is: 1250
- power_info['power_limit'] is: 203000000
-###Test amdsmi_is_gpu_power_management_enabled
- Is power management enabled is: True
-###Test amdsmi_get_temp_metric
- Current temperature for EDGE is: 42
- Current temperature for HOTSPOT is: 42
- Current temperature for VRAM is: 38
-###Test amdsmi_get_temp_metric
- Limit (critical) temperature for EDGE is: 100
- Limit (critical) temperature for HOTSPOT is: 110
- Limit (critical) temperature for VRAM is: 100
-###Test amdsmi_get_temp_metric
- Shutdown (emergency) temperature for EDGE is: 105
- Shutdown (emergency) temperature for HOTSPOT is: 115
- Shutdown (emergency) temperature for VRAM is: 105
-###Test amdsmi_get_clock_info
- Current clock for domain GFX is: 500
- Max clock for domain GFX is: 2475
- Min clock for domain GFX is: 500
- Is GFX clock locked: 0
- Is GFX clock in deep sleep: 255
- Current clock for domain MEM is: 96
- Max clock for domain MEM is: 1000
- Min clock for domain MEM is: 96
- Is MEM clock in deep sleep: 255
- Current clock for domain VCLK0 is: 0
- Max clock for domain VCLK0 is: 0
- Min clock for domain VCLK0 is: 0
- Is VCLK0 clock in deep sleep: 255
- Current clock for domain VCLK1 is: 0
- Max clock for domain VCLK1 is: 0
- Min clock for domain VCLK1 is: 0
- Is VCLK1 clock in deep sleep: 255
- Current clock for domain DCLK0 is: 0
- Max clock for domain DCLK0 is: 0
- Min clock for domain DCLK0 is: 0
- Is DCLK0 clock in deep sleep: 255
- Current clock for domain DCLK1 is: 0
- Max clock for domain DCLK1 is: 0
- Min clock for domain DCLK1 is: 0
- Is DCLK1 clock in deep sleep: 255
-###Test amdsmi_get_pcie_info
- pcie_info['pcie_metric']['pcie_width'] is: 4
- pcie_info['pcie_static']['max_pcie_width'] is: 16
- pcie_info['pcie_metric']['pcie_speed'] is: 5000 MT/s
- pcie_info['pcie_static']['max_pcie_speed'] is: 16000
- pcie_info['pcie_static']['pcie_interface_version'] is: 4
- pcie_info['pcie_static']['slot_type'] is: CEM
- pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
- pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
- pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
- pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_activity
- engine_usage['gfx_activity'] is: 0 %
- engine_usage['umc_activity'] is: 0 %
- engine_usage['mm_activity'] is: 0 %
-
-###Test amdsmi_get_power_info
- power_info['current_socket_power'] is: N/A
- power_info['average_socket_power'] is: 13
- power_info['gfx_voltage'] is: 781
- power_info['soc_voltage'] is: 812
- power_info['mem_voltage'] is: 1250
- power_info['power_limit'] is: 213000000
-###Test amdsmi_is_gpu_power_management_enabled
- Is power management enabled is: True
-###Test amdsmi_get_temp_metric
- Current temperature for EDGE is: 34
- Current temperature for HOTSPOT is: 38
- Current temperature for VRAM is: 36
-###Test amdsmi_get_temp_metric
- Limit (critical) temperature for EDGE is: 109
- Limit (critical) temperature for HOTSPOT is: 110
- Limit (critical) temperature for VRAM is: 100
-###Test amdsmi_get_temp_metric
- Shutdown (emergency) temperature for EDGE is: 114
- Shutdown (emergency) temperature for HOTSPOT is: 115
- Shutdown (emergency) temperature for VRAM is: 105
-###Test amdsmi_get_clock_info
- Current clock for domain GFX is: 500
- Max clock for domain GFX is: 2555
- Min clock for domain GFX is: 500
- Is GFX clock locked: 0
- Is GFX clock in deep sleep: 255
- Current clock for domain MEM is: 96
- Max clock for domain MEM is: 1000
- Min clock for domain MEM is: 96
- Is MEM clock in deep sleep: 255
- Current clock for domain VCLK0 is: 0
- Max clock for domain VCLK0 is: 0
- Min clock for domain VCLK0 is: 0
- Is VCLK0 clock in deep sleep: 255
- Current clock for domain VCLK1 is: 0
- Max clock for domain VCLK1 is: 0
- Min clock for domain VCLK1 is: 0
- Is VCLK1 clock in deep sleep: 255
- Current clock for domain DCLK0 is: 0
- Max clock for domain DCLK0 is: 0
- Min clock for domain DCLK0 is: 0
- Is DCLK0 clock in deep sleep: 255
- Current clock for domain DCLK1 is: 0
- Max clock for domain DCLK1 is: 0
- Min clock for domain DCLK1 is: 0
- Is DCLK1 clock in deep sleep: 255
-###Test amdsmi_get_pcie_info
- pcie_info['pcie_metric']['pcie_width'] is: 16
- pcie_info['pcie_static']['max_pcie_width'] is: 16
- pcie_info['pcie_metric']['pcie_speed'] is: 8000 MT/s
- pcie_info['pcie_static']['max_pcie_speed'] is: 16000
- pcie_info['pcie_static']['pcie_interface_version'] is: 4
- pcie_info['pcie_static']['slot_type'] is: CEM
- pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
- pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
- pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
- pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
-ok
-test_walkthrough (__main__.TestAmdSmiPythonInterface) ... ###Test amdsmi_get_processor_handles()
-###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 0
-###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_asic_info
- asic_info['market_name'] is: NAVI21
- asic_info['vendor_id'] is: 0x1002
- asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
- asic_info['device_id'] is: 0x73bf
- asic_info['rev_id'] is: 0xc3
-
- asic_info['asic_serial'] is: 0x81C16890A5911040
-
- asic_info['oam_id'] is: N/A
-
-###Test amdsmi_get_power_cap_info
- power_info['dpm_cap'] is: 1
- power_info['power_cap'] is: 203000000
-
-###Test amdsmi_get_gpu_vbios_info
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['name'] is: NAVI21 Gaming XL D412
-
- vbios_info['version'] is: 020.001.000.038.015697
-
-###Test amdsmi_get_gpu_board_info
- board_info['model_number'] is: N/A
-
- board_info['product_serial'] is: N/A
-
- board_info['fru_id'] is: N/A
-
- board_info['manufacturer_name'] is: Advanced Micro Devices, Inc. [AMD/ATI]
-
- board_info['product_name'] is: Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
-
-###Test amdsmi_get_fw_info
-FW name: AMDSMI_FW_ID_CP_CE
-FW version: 37
-FW name: AMDSMI_FW_ID_CP_PFP
-FW version: 98
-FW name: AMDSMI_FW_ID_CP_ME
-FW version: 64
-FW name: AMDSMI_FW_ID_CP_MEC1
-FW version: 118
-FW name: AMDSMI_FW_ID_CP_MEC2
-FW version: 118
-FW name: AMDSMI_FW_ID_RLC
-FW version: 96
-FW name: AMDSMI_FW_ID_SDMA0
-FW version: 83
-FW name: AMDSMI_FW_ID_SDMA1
-FW version: 83
-FW name: AMDSMI_FW_ID_VCN
-FW version: 31.1E.00.8
-FW name: AMDSMI_FW_ID_PSP_SOSDRV
-FW version: 21.0E.64
-FW name: AMDSMI_FW_ID_ASD
-FW version: 553648340
-FW name: AMDSMI_FW_ID_TA_RAS
-FW version: 1B.00.01.3E
-FW name: AMDSMI_FW_ID_TA_XGMI
-FW version: 20.00.00.0F
-FW name: AMDSMI_FW_ID_PM
-FW version: 58.89.0
-###Test amdsmi_get_gpu_driver_info
-Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.7.8', 'driver_date': '2015/01/01 00:00'}
-###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = 0
-###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 1
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_asic_info
- asic_info['market_name'] is: Navi 21 GL-XL [Radeon PRO W6800]
- asic_info['vendor_id'] is: 0x1002
- asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
- asic_info['device_id'] is: 0x73a3
- asic_info['rev_id'] is: 0x00
-
- asic_info['asic_serial'] is: 0x1F75223E5E64EAC1
-
- asic_info['oam_id'] is: N/A
-
-###Test amdsmi_get_power_cap_info
- power_info['dpm_cap'] is: 1
- power_info['power_cap'] is: 213000000
-
-###Test amdsmi_get_gpu_vbios_info
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['name'] is: NAVI21 D43001 GLXL
-
- vbios_info['version'] is: 020.001.000.060.016898
-
-###Test amdsmi_get_gpu_board_info
- board_info['model_number'] is: N/A
-
- board_info['product_serial'] is: N/A
-
- board_info['fru_id'] is: N/A
-
- board_info['manufacturer_name'] is: Advanced Micro Devices, Inc. [AMD/ATI]
-
- board_info['product_name'] is: Navi 21 GL-XL [Radeon PRO W6800]
-
-###Test amdsmi_get_fw_info
-FW name: AMDSMI_FW_ID_CP_CE
-FW version: 37
-FW name: AMDSMI_FW_ID_CP_PFP
-FW version: 98
-FW name: AMDSMI_FW_ID_CP_ME
-FW version: 64
-FW name: AMDSMI_FW_ID_CP_MEC1
-FW version: 118
-FW name: AMDSMI_FW_ID_CP_MEC2
-FW version: 118
-FW name: AMDSMI_FW_ID_RLC
-FW version: 96
-FW name: AMDSMI_FW_ID_SDMA0
-FW version: 83
-FW name: AMDSMI_FW_ID_SDMA1
-FW version: 83
-FW name: AMDSMI_FW_ID_VCN
-FW version: 31.1E.00.8
-FW name: AMDSMI_FW_ID_PSP_SOSDRV
-FW version: 21.0E.64
-FW name: AMDSMI_FW_ID_ASD
-FW version: 553648340
-FW name: AMDSMI_FW_ID_TA_RAS
-FW version: 1B.00.01.3E
-FW name: AMDSMI_FW_ID_TA_XGMI
-FW version: 20.00.00.0F
-FW name: AMDSMI_FW_ID_PM
-FW version: 58.89.0
-###Test amdsmi_get_gpu_driver_info
-Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.7.8', 'driver_date': '2015/01/01 00:00'}
-###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = 1
-ok
-
-----------------------------------------------------------------------
-Ran 6 tests in 0.083s
-
-OK
-
-~~~
-
-
-
-
-### Unittest Run: Verbose on + Filter (or exclude) a test
-
-```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "test_walkthrough" -v```
-
-```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "not test_walkthrough" -v```
-
-ex.
-
- Click for example: Unittest Run: Verbose on + Filter (or exclude) a Test
-
-~~~shell
-> /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "test_bdf_device_id" -v
-test_bdf_device_id (__main__.TestAmdSmiPythonInterface) ... ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['version'] is: 020.001.000.038.015697
-
- vbios_info['name'] is: NAVI21 Gaming XL D412
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 81ff73bf-0000-1000-80c1-6890a5911040
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['version'] is: 020.001.000.060.016898
-
- vbios_info['name'] is: NAVI21 D43001 GLXL
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 1fff73a3-0000-1000-8075-223e5e64eac1
-ok
-
-----------------------------------------------------------------------
-Ran 1 test in 0.012s
-
-OK
-~~~
-
-
-
-### Unittest Run: Silence stdout (print statements) and run all tests
- Runs all tests. Silence print statements to stdout. Lists tests results.
- This is also the best way to list all tests available.
-
-```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -b -v```
-
-```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -b -v```
-
-ex.
-
- Click for example: Unittest Run: Silence stdout (print statements) and run all tests
+ Click for example: Unittest: not verbose
~~~shell
/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -b -v
@@ -438,425 +64,591 @@ OK
-## Pytest Run Options
-### Pytest: List tests
-```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py --co```
+### Unittest: verbose (with print statements)
+Helpful to see print outs of Python.
+
+```/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v```
+```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v```
-```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py --co```
ex.
- Click for example: Pytest: List tests
+ Click for example: Unittest: verbose (with print statements)
~~~shell
-python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py --co
-===================================================== test session starts =====================================================
-platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0
-rootdir: /opt/rocm/share/amd_smi
-configfile: pyproject.toml
-collected 6 items
+/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v
+test_init (__main__.TestAmdSmiInit) ... ok
+test_asic_kfd_info (__main__.TestAmdSmiPythonInterface) ...
-
-
-
-
-
-
-
-
-
-
-
-
-
-================================================= 6 tests collected in 0.04s ==================================================
-~~~
-
-
-### Pytest Run: Verbose on
-```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v```
-
-```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v```
-
-ex.
-
- Click for example: Pytest Run: verbose on
-
-~~~shell
- python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v
-===================================================== test session starts =====================================================
-platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3
-rootdir: /opt/rocm/share/amd_smi
-configfile: pyproject.toml
-collected 3 items
-
-../../opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py::TestAmdSmiPythonBDF::test_check_res PASSED [ 33%]
-../../opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py::TestAmdSmiPythonBDF::test_format_bdf PASSED [ 66%]
-../../opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py::TestAmdSmiPythonBDF::test_parse_bdf PASSED [100%]
-
-====================================================== 3 passed in 0.04s ======================================================
-~~~
-
-
-### Pytest Run: Verbose on + stdout (print statements)
-```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -s -v```
-
-```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -s -v```
-
-ex.
-
- Click for example: Pytest Run: verbose on + stdout (print statements)
-
-~~~shell
-python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -s -v
-===================================================== test session starts =====================================================
-platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3
-rootdir: /opt/rocm/share/amd_smi
-configfile: pyproject.toml
-collected 6 items
-
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiInit::test_init PASSED
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info ###Test amdsmi_get_gpu_bad_page_info
-
-**** [ERROR] | Test: test_bad_page_info | Caught AmdSmiLibraryException
-PASSED
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_bdf_device_id ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['version'] is: 020.001.000.038.015697
-
- vbios_info['name'] is: NAVI21 Gaming XL D412
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 81ff73bf-0000-1000-80c1-6890a5911040
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['version'] is: 020.001.000.060.016898
-
- vbios_info['name'] is: NAVI21 D43001 GLXL
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 1fff73a3-0000-1000-8075-223e5e64eac1
-PASSED
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_ecc ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_ras_feature_info
-
-**** [ERROR] | Test: test_ecc | Caught AmdSmiLibraryException
-PASSED
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_gpu_performance ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_activity
- engine_usage['gfx_activity'] is: 1 %
- engine_usage['umc_activity'] is: 0 %
- engine_usage['mm_activity'] is: 0 %
-
-###Test amdsmi_get_power_info
- power_info['current_socket_power'] is: N/A
- power_info['average_socket_power'] is: 8
- power_info['gfx_voltage'] is: 768
- power_info['soc_voltage'] is: 918
- power_info['mem_voltage'] is: 1250
- power_info['power_limit'] is: 203000000
-###Test amdsmi_is_gpu_power_management_enabled
- Is power management enabled is: True
-###Test amdsmi_get_temp_metric
- Current temperature for EDGE is: 42
- Current temperature for HOTSPOT is: 43
- Current temperature for VRAM is: 38
-###Test amdsmi_get_temp_metric
- Limit (critical) temperature for EDGE is: 100
- Limit (critical) temperature for HOTSPOT is: 110
- Limit (critical) temperature for VRAM is: 100
-###Test amdsmi_get_temp_metric
- Shutdown (emergency) temperature for EDGE is: 105
- Shutdown (emergency) temperature for HOTSPOT is: 115
- Shutdown (emergency) temperature for VRAM is: 105
-###Test amdsmi_get_clock_info
- Current clock for domain GFX is: 500
- Max clock for domain GFX is: 2475
- Min clock for domain GFX is: 500
- Is GFX clock locked: 0
- Is GFX clock in deep sleep: 255
- Current clock for domain MEM is: 96
- Max clock for domain MEM is: 1000
- Min clock for domain MEM is: 96
- Is MEM clock in deep sleep: 255
- Current clock for domain VCLK0 is: 0
- Max clock for domain VCLK0 is: 0
- Min clock for domain VCLK0 is: 0
- Is VCLK0 clock in deep sleep: 255
- Current clock for domain VCLK1 is: 0
- Max clock for domain VCLK1 is: 0
- Min clock for domain VCLK1 is: 0
- Is VCLK1 clock in deep sleep: 255
- Current clock for domain DCLK0 is: 0
- Max clock for domain DCLK0 is: 0
- Min clock for domain DCLK0 is: 0
- Is DCLK0 clock in deep sleep: 255
- Current clock for domain DCLK1 is: 0
- Max clock for domain DCLK1 is: 0
- Min clock for domain DCLK1 is: 0
- Is DCLK1 clock in deep sleep: 255
-###Test amdsmi_get_pcie_info
- pcie_info['pcie_metric']['pcie_width'] is: 4
- pcie_info['pcie_static']['max_pcie_width'] is: 16
- pcie_info['pcie_metric']['pcie_speed'] is: 5000 MT/s
- pcie_info['pcie_static']['max_pcie_speed'] is: 16000
- pcie_info['pcie_static']['pcie_interface_version'] is: 4
- pcie_info['pcie_static']['slot_type'] is: CEM
- pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
- pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
- pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
- pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_activity
- engine_usage['gfx_activity'] is: 0 %
- engine_usage['umc_activity'] is: 0 %
- engine_usage['mm_activity'] is: 0 %
-
-###Test amdsmi_get_power_info
- power_info['current_socket_power'] is: N/A
- power_info['average_socket_power'] is: 13
- power_info['gfx_voltage'] is: 787
- power_info['soc_voltage'] is: 806
- power_info['mem_voltage'] is: 1250
- power_info['power_limit'] is: 213000000
-###Test amdsmi_is_gpu_power_management_enabled
- Is power management enabled is: True
-###Test amdsmi_get_temp_metric
- Current temperature for EDGE is: 34
- Current temperature for HOTSPOT is: 37
- Current temperature for VRAM is: 36
-###Test amdsmi_get_temp_metric
- Limit (critical) temperature for EDGE is: 109
- Limit (critical) temperature for HOTSPOT is: 110
- Limit (critical) temperature for VRAM is: 100
-###Test amdsmi_get_temp_metric
- Shutdown (emergency) temperature for EDGE is: 114
- Shutdown (emergency) temperature for HOTSPOT is: 115
- Shutdown (emergency) temperature for VRAM is: 105
-###Test amdsmi_get_clock_info
- Current clock for domain GFX is: 500
- Max clock for domain GFX is: 2555
- Min clock for domain GFX is: 500
- Is GFX clock locked: 0
- Is GFX clock in deep sleep: 255
- Current clock for domain MEM is: 96
- Max clock for domain MEM is: 1000
- Min clock for domain MEM is: 96
- Is MEM clock in deep sleep: 255
- Current clock for domain VCLK0 is: 0
- Max clock for domain VCLK0 is: 0
- Min clock for domain VCLK0 is: 0
- Is VCLK0 clock in deep sleep: 255
- Current clock for domain VCLK1 is: 0
- Max clock for domain VCLK1 is: 0
- Min clock for domain VCLK1 is: 0
- Is VCLK1 clock in deep sleep: 255
- Current clock for domain DCLK0 is: 0
- Max clock for domain DCLK0 is: 0
- Min clock for domain DCLK0 is: 0
- Is DCLK0 clock in deep sleep: 255
- Current clock for domain DCLK1 is: 0
- Max clock for domain DCLK1 is: 0
- Min clock for domain DCLK1 is: 0
- Is DCLK1 clock in deep sleep: 255
-###Test amdsmi_get_pcie_info
- pcie_info['pcie_metric']['pcie_width'] is: 16
- pcie_info['pcie_static']['max_pcie_width'] is: 16
- pcie_info['pcie_metric']['pcie_speed'] is: 8000 MT/s
- pcie_info['pcie_static']['max_pcie_speed'] is: 16000
- pcie_info['pcie_static']['pcie_interface_version'] is: 4
- pcie_info['pcie_static']['slot_type'] is: CEM
- pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
- pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
- pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
- pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
-PASSED
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_walkthrough ###Test amdsmi_get_processor_handles()
-###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 0
-###Test Processor 0, bdf: 0000:08:00.0
+###Test Processor 0, bdf: 0000:43:00.0
###Test amdsmi_get_gpu_asic_info
+
asic_info['market_name'] is: NAVI21
asic_info['vendor_id'] is: 0x1002
asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
asic_info['device_id'] is: 0x73bf
- asic_info['rev_id'] is: 0xc3
-
- asic_info['asic_serial'] is: 0x81C16890A5911040
-
+ asic_info['rev_id'] is: 0xc1
+ asic_info['asic_serial'] is: 0xF8FFEB47A027DE4D
asic_info['oam_id'] is: N/A
+ asic_info['target_graphics_version'] is: gfx1030
+ asic_info['num_compute_units'] is: 72
+
+###Test amdsmi_get_gpu_kfd_info
+
+ kfd_info['kfd_id'] is: 16970
+ kfd_info['node_id'] is: 1
+
+ok
+test_bad_page_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_bad_page_info
+
+**** [ERROR] | Test: test_bad_page_info | Caught AmdSmiLibraryException: Error code:
+ 2 | AMDSMI_STATUS_NOT_SUPPORTED - Feature not supported
+ok
+test_bdf_device_id (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_processor_handle_from_bdf
-###Test amdsmi_get_power_cap_info
- power_info['dpm_cap'] is: 1
- power_info['power_cap'] is: 203000000
###Test amdsmi_get_gpu_vbios_info
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['name'] is: NAVI21 Gaming XL D412
- vbios_info['version'] is: 020.001.000.038.015697
+ vbios_info['part_number'] is: 113-V395TRIO-2OC
+ vbios_info['build_date'] is: 2021/03/28 21:35
+ vbios_info['version'] is: 020.001.000.060.000000
+ vbios_info['name'] is: 113-MSITV395MH.132
+
+###Test amdsmi_get_gpu_device_uuid
+
+ uuid is: f8ff73bf-0000-1000-80ff-eb47a027de4d
+
+ok
+test_board_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
###Test amdsmi_get_gpu_board_info
+
board_info['model_number'] is: N/A
-
board_info['product_serial'] is: N/A
-
board_info['fru_id'] is: N/A
-
board_info['manufacturer_name'] is: Advanced Micro Devices, Inc. [AMD/ATI]
-
board_info['product_name'] is: Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
-###Test amdsmi_get_fw_info
-FW name: AMDSMI_FW_ID_CP_CE
-FW version: 37
-FW name: AMDSMI_FW_ID_CP_PFP
-FW version: 98
-FW name: AMDSMI_FW_ID_CP_ME
-FW version: 64
-FW name: AMDSMI_FW_ID_CP_MEC1
-FW version: 118
-FW name: AMDSMI_FW_ID_CP_MEC2
-FW version: 118
-FW name: AMDSMI_FW_ID_RLC
-FW version: 96
-FW name: AMDSMI_FW_ID_SDMA0
-FW version: 83
-FW name: AMDSMI_FW_ID_SDMA1
-FW version: 83
-FW name: AMDSMI_FW_ID_VCN
-FW version: 31.1E.00.8
-FW name: AMDSMI_FW_ID_PSP_SOSDRV
-FW version: 21.0E.64
-FW name: AMDSMI_FW_ID_ASD
-FW version: 553648340
-FW name: AMDSMI_FW_ID_TA_RAS
-FW version: 1B.00.01.3E
-FW name: AMDSMI_FW_ID_TA_XGMI
-FW version: 20.00.00.0F
-FW name: AMDSMI_FW_ID_PM
-FW version: 58.89.0
+ok
+test_clock_frequency (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_clk_freq
+
+ SYS clock_frequency['num_supported']: 2
+ SYS clock_frequency['current']: 0
+ SYS clock_frequency['frequency']: [500000000, 2575000000]
+ DF clock_frequency['num_supported']: 3
+ DF clock_frequency['current']: 1
+ DF clock_frequency['frequency']: [500000000, 666000000, 1941000000]
+
+ok
+test_clock_frequency_DCEF (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_clk_freq
+
+ DCEF clock_frequency['num_supported']: 2
+ DCEF clock_frequency['current']: 0
+ DCEF clock_frequency['frequency']: [417000000, 1200000000]
+
+ok
+test_clock_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_clock_info
+
+ Current clock for domain GFX is: 500
+ Max clock for domain GFX is: 2575
+ Min clock for domain GFX is: 500
+ Is GFX clock locked: 0
+ Is GFX clock in deep sleep: 255
+ Current clock for domain MEM is: 96
+ Max clock for domain MEM is: 1000
+ Min clock for domain MEM is: 96
+ Is MEM clock in deep sleep: 255
+
+ok
+test_clock_info_vclk0_dclk0 (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_clock_info
+
+ Current clock for domain VCLK0 is: 1400
+ Max clock for domain VCLK0 is: 1400
+ Min clock for domain VCLK0 is: 0
+ Is VCLK0 clock in deep sleep: 255
+ Current clock for domain DCLK0 is: 1225
+ Max clock for domain DCLK0 is: 1225
+ Min clock for domain DCLK0 is: 0
+ Is DCLK0 clock in deep sleep: 255
+
+ok
+test_clock_info_vclk1_dclk1 (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_clock_info
+
+ Current clock for domain VCLK1 is: 362
+ Max clock for domain VCLK1 is: 362
+ Min clock for domain VCLK1 is: 0
+ Is VCLK1 clock in deep sleep: 255
+ Current clock for domain DCLK1 is: 316
+ Max clock for domain DCLK1 is: 316
+ Min clock for domain DCLK1 is: 0
+ Is DCLK1 clock in deep sleep: 255
+
+ok
+test_driver_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
###Test amdsmi_get_gpu_driver_info
-Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.7.8', 'driver_date': '2015/01/01 00:00'}
-###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = 0
-###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 1
-###Test Processor 1, bdf: 0000:44:00.0
-###Test amdsmi_get_gpu_asic_info
- asic_info['market_name'] is: Navi 21 GL-XL [Radeon PRO W6800]
- asic_info['vendor_id'] is: 0x1002
- asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
- asic_info['device_id'] is: 0x73a3
- asic_info['rev_id'] is: 0x00
+Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.9.2', 'driver_date': '2015/01/01 00:00'}
- asic_info['asic_serial'] is: 0x1F75223E5E64EAC1
+ok
+test_ecc_count_block (__main__.TestAmdSmiPythonInterface) ...
- asic_info['oam_id'] is: N/A
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_ecc_count
+
+**** [ERROR] | Test: test_ecc_count_block | Caught AmdSmiLibraryException: Error code:
+ 2 | AMDSMI_STATUS_NOT_SUPPORTED - Feature not supported
+ok
+test_ecc_count_total (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_total_ecc_count
+
+Number of uncorrectable errors: 0
+Number of correctable errors: 0
+Number of deferred errors: 0
+
+ok
+test_fw_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_fw_info
+
+ FW name: AMDSMI_FW_ID_CP_CE
+ FW version: 37
+ FW name: AMDSMI_FW_ID_CP_PFP
+ FW version: 98
+ FW name: AMDSMI_FW_ID_CP_ME
+ FW version: 64
+ FW name: AMDSMI_FW_ID_CP_MEC1
+ FW version: 118
+ FW name: AMDSMI_FW_ID_CP_MEC2
+ FW version: 118
+ FW name: AMDSMI_FW_ID_RLC
+ FW version: 96
+ FW name: AMDSMI_FW_ID_SDMA0
+ FW version: 83
+ FW name: AMDSMI_FW_ID_SDMA1
+ FW version: 83
+ FW name: AMDSMI_FW_ID_VCN
+ FW version: 04.11.F0.00
+ FW name: AMDSMI_FW_ID_PSP_SOSDRV
+ FW version: 00.21.0E.64
+ FW name: AMDSMI_FW_ID_ASD
+ FW version: 553648350
+ FW name: AMDSMI_FW_ID_TA_RAS
+ FW version: 1B.00.01.3E
+ FW name: AMDSMI_FW_ID_TA_XGMI
+ FW version: 20.00.00.0F
+ FW name: AMDSMI_FW_ID_PM
+ FW version: 00.58.90.00
+
+ok
+test_gpu_activity (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_activity
+
+ engine_usage['gfx_activity'] is: 9 %
+ engine_usage['umc_activity'] is: 0 %
+ engine_usage['mm_activity'] is: 22 %
+
+ok
+test_memory_usage (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_memory_usage
+
+ memory_usage for VRAM is: 17104896
+ memory_usage for VIS_VRAM is: 17104896
+ memory_usage for GTT is: 15065088
+
+ok
+test_pcie_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_pcie_info
+
+ pcie_info['pcie_metric']['pcie_width'] is: 16
+ pcie_info['pcie_static']['max_pcie_width'] is: 16
+ pcie_info['pcie_metric']['pcie_speed'] is: 16000 MT/s
+ pcie_info['pcie_static']['max_pcie_speed'] is: 16000
+ pcie_info['pcie_static']['pcie_interface_version'] is: 4
+ pcie_info['pcie_static']['slot_type'] is: CEM
+ pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
+ pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
+ pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
+ pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
+ pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
+ pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
+
+ok
+test_power_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_power_info
+
+ power_info['current_socket_power'] is: N/A
+ power_info['average_socket_power'] is: 39
+ power_info['gfx_voltage'] is: 856
+ power_info['soc_voltage'] is: 937
+ power_info['mem_voltage'] is: 843
+ power_info['power_limit'] is: 272000000
###Test amdsmi_get_power_cap_info
+
power_info['dpm_cap'] is: 1
- power_info['power_cap'] is: 213000000
+ power_info['power_cap'] is: 272000000
+
+###Test amdsmi_is_gpu_power_management_enabled
+
+ Power management enabled: True
+
+ok
+test_process_list (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_process_list
+
+ Process list: []
+
+ok
+test_processor_type (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_processor_type
+
+ Processor type is: AMDSMI_PROCESSOR_TYPE_AMD_GPU
+
+ok
+test_ras_block_features_enabled (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_ras_block_features_enabled
+
+**** [ERROR] | Test: test_ras_block_features_enabled | Caught AmdSmiLibraryException: Error code:
+ 7 | AMDSMI_STATUS_API_FAILED - API call failed
+ok
+test_ras_feature_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_ras_feature_info
+
+**** [ERROR] | Test: test_ras_feature_info | Caught AmdSmiLibraryException: Error code:
+ 2 | AMDSMI_STATUS_NOT_SUPPORTED - Feature not supported
+ok
+test_socket_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test amdsmi_get_socket_handles
+
+
+###Test Socket 0
+
+###Test amdsmi_get_socket_info
+
+ Socket: 0000:43:00
+
+ok
+test_temperature_metric (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_temp_metric
+
+ Current temperature for HOTSPOT is: 35
+ Current temperature for VRAM is: 32
+
+###Test amdsmi_get_temp_metric
+
+ Limit (critical) temperature for HOTSPOT is: 110
+ Limit (critical) temperature for VRAM is: 100
+
+###Test amdsmi_get_temp_metric
+
+ Shutdown (emergency) temperature for HOTSPOT is: 115
+ Shutdown (emergency) temperature for VRAM is: 105
+
+ok
+test_temperature_metric_edge (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_temp_metric
+
+ Current temperature for EDGE is: 31
+ Limit (critical) temperature for EDGE is: 100
+ Shutdown (emergency) temperature for EDGE is: 105
+
+ok
+test_temperature_metric_hbm (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_temp_metric
+
+**** [ERROR] | Test: test_temperature_metric_hbm | Caught AmdSmiLibraryException: Error code:
+ 2 | AMDSMI_STATUS_NOT_SUPPORTED - Feature not supported
+ok
+test_temperature_metric_plx (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_temp_metric
+
+ Current temperature for PLX is: 30
+ Limit (critical) temperature for PLX is: 30
+ Shutdown (emergency) temperature for PLX is: 30
+
+ok
+test_utilization_count (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_utilization_count
+
+ Timestamp: 2570588934628027
+ Utilization count for AMDSMI_COARSE_GRAIN_GFX_ACTIVITY is: 4294967295
+ Utilization count for AMDSMI_COARSE_GRAIN_MEM_ACTIVITY is: 4294967295
+ Utilization count for AMDSMI_COARSE_DECODER_ACTIVITY is: 0
+
+ Timestamp: 2570588935626503
+ Utilization count for AMDSMI_FINE_GRAIN_GFX_ACTIVITY is: 4294967295
+ Utilization count for AMDSMI_FINE_GRAIN_MEM_ACTIVITY is: 4294967295
+ Utilization count for AMDSMI_FINE_DECODER_ACTIVITY is: 0
+
+ok
+test_vbios_info (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
###Test amdsmi_get_gpu_vbios_info
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['name'] is: NAVI21 D43001 GLXL
- vbios_info['version'] is: 020.001.000.060.016898
+ vbios_info['part_number'] is: 113-V395TRIO-2OC
+ vbios_info['build_date'] is: 2021/03/28 21:35
+ vbios_info['name'] is: 113-MSITV395MH.132
+ vbios_info['version'] is: 020.001.000.060.000000
+
+ok
+test_vendor_name (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_vendor_name
+
+ Vendor name is: Advanced Micro Devices, Inc. [AMD/ATI]
+
+ok
+test_walkthrough (__main__.TestAmdSmiPythonInterface) ...
+
+#######################################################################
+========> test_walkthrough start <========
+
+
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_asic_info
+
+ asic_info['market_name'] is: NAVI21
+ asic_info['vendor_id'] is: 0x1002
+ asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
+ asic_info['device_id'] is: 0x73bf
+ asic_info['rev_id'] is: 0xc1
+ asic_info['asic_serial'] is: 0xF8FFEB47A027DE4D
+ asic_info['oam_id'] is: N/A
+ asic_info['target_graphics_version'] is: gfx1030
+ asic_info['num_compute_units'] is: 72
+
+###Test amdsmi_get_gpu_kfd_info
+
+ kfd_info['kfd_id'] is: 16970
+ kfd_info['node_id'] is: 1
+
+
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_power_info
+
+ power_info['current_socket_power'] is: N/A
+ power_info['average_socket_power'] is: 31
+ power_info['gfx_voltage'] is: 856
+ power_info['soc_voltage'] is: 937
+ power_info['mem_voltage'] is: 837
+ power_info['power_limit'] is: 272000000
+
+###Test amdsmi_get_power_cap_info
+
+ power_info['dpm_cap'] is: 1
+ power_info['power_cap'] is: 272000000
+
+###Test amdsmi_is_gpu_power_management_enabled
+
+ Power management enabled: True
+
+
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_vbios_info
+
+ vbios_info['part_number'] is: 113-V395TRIO-2OC
+ vbios_info['build_date'] is: 2021/03/28 21:35
+ vbios_info['name'] is: 113-MSITV395MH.132
+ vbios_info['version'] is: 020.001.000.060.000000
+
+
+
+###Test Processor 0, bdf: 0000:43:00.0
###Test amdsmi_get_gpu_board_info
+
board_info['model_number'] is: N/A
-
board_info['product_serial'] is: N/A
-
board_info['fru_id'] is: N/A
-
board_info['manufacturer_name'] is: Advanced Micro Devices, Inc. [AMD/ATI]
+ board_info['product_name'] is: Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
- board_info['product_name'] is: Navi 21 GL-XL [Radeon PRO W6800]
+
+
+###Test Processor 0, bdf: 0000:43:00.0
###Test amdsmi_get_fw_info
-FW name: AMDSMI_FW_ID_CP_CE
-FW version: 37
-FW name: AMDSMI_FW_ID_CP_PFP
-FW version: 98
-FW name: AMDSMI_FW_ID_CP_ME
-FW version: 64
-FW name: AMDSMI_FW_ID_CP_MEC1
-FW version: 118
-FW name: AMDSMI_FW_ID_CP_MEC2
-FW version: 118
-FW name: AMDSMI_FW_ID_RLC
-FW version: 96
-FW name: AMDSMI_FW_ID_SDMA0
-FW version: 83
-FW name: AMDSMI_FW_ID_SDMA1
-FW version: 83
-FW name: AMDSMI_FW_ID_VCN
-FW version: 31.1E.00.8
-FW name: AMDSMI_FW_ID_PSP_SOSDRV
-FW version: 21.0E.64
-FW name: AMDSMI_FW_ID_ASD
-FW version: 553648340
-FW name: AMDSMI_FW_ID_TA_RAS
-FW version: 1B.00.01.3E
-FW name: AMDSMI_FW_ID_TA_XGMI
-FW version: 20.00.00.0F
-FW name: AMDSMI_FW_ID_PM
-FW version: 58.89.0
-###Test amdsmi_get_gpu_driver_info
-Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.7.8', 'driver_date': '2015/01/01 00:00'}
-###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = 1
-PASSED
-====================================================== 6 passed in 0.13s ======================================================
+ FW name: AMDSMI_FW_ID_CP_CE
+ FW version: 37
+ FW name: AMDSMI_FW_ID_CP_PFP
+ FW version: 98
+ FW name: AMDSMI_FW_ID_CP_ME
+ FW version: 64
+ FW name: AMDSMI_FW_ID_CP_MEC1
+ FW version: 118
+ FW name: AMDSMI_FW_ID_CP_MEC2
+ FW version: 118
+ FW name: AMDSMI_FW_ID_RLC
+ FW version: 96
+ FW name: AMDSMI_FW_ID_SDMA0
+ FW version: 83
+ FW name: AMDSMI_FW_ID_SDMA1
+ FW version: 83
+ FW name: AMDSMI_FW_ID_VCN
+ FW version: 04.11.F0.00
+ FW name: AMDSMI_FW_ID_PSP_SOSDRV
+ FW version: 00.21.0E.64
+ FW name: AMDSMI_FW_ID_ASD
+ FW version: 553648350
+ FW name: AMDSMI_FW_ID_TA_RAS
+ FW version: 1B.00.01.3E
+ FW name: AMDSMI_FW_ID_TA_XGMI
+ FW version: 20.00.00.0F
+ FW name: AMDSMI_FW_ID_PM
+ FW version: 00.58.90.00
+
+
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_gpu_driver_info
+
+Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.9.2', 'driver_date': '2015/01/01 00:00'}
+
+
+========> test_walkthrough end <========
+#######################################################################
+
+ok
+
+----------------------------------------------------------------------
+Ran 31 tests in 0.592s
+
+OK
~~~
+
-### Pytest Run: Verbose on + Filter (or exclude) a Test
-Use [Pytest: List tests](###-Pytest:-List-tests) then either exclude (with "not") or only run the specified test.
-```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "test_gpu_performance" -v```
+### Unittest: filter and verbose
+Allow filtering based on common or specific test names.
-```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "not test_gpu_performance" -v```
+```/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "test_walkthrough" -v```
ex.
- Click for example: Pytest Run: Verbose on + Filter (or exclude) a Test
+ Click for example: Unittest: filter and verbose
~~~shell
-python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "not test_gpu_performance" -v
-===================================================== test session starts =====================================================
-platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3
-rootdir: /opt/rocm/share/amd_smi
-configfile: pyproject.toml
-collected 6 items / 1 deselected / 5 selected
+/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "test_asic_kfd_info" -v
+test_asic_kfd_info (__main__.TestAmdSmiPythonInterface) ...
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiInit::test_init PASSED [ 20%]
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info PASSED [ 40%]
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_bdf_device_id PASSED [ 60%]
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_ecc PASSED [ 80%]
-../../opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py::TestAmdSmiPythonInterface::test_walkthrough PASSED [100%]
+###Test Processor 0, bdf: 0000:43:00.0
-=============================================== 5 passed, 1 deselected in 0.09s ===============================================
+###Test amdsmi_get_gpu_asic_info
+
+ asic_info['market_name'] is: NAVI21
+ asic_info['vendor_id'] is: 0x1002
+ asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
+ asic_info['device_id'] is: 0x73bf
+ asic_info['rev_id'] is: 0xc1
+ asic_info['asic_serial'] is: 0xF8FFEB47A027DE4D
+ asic_info['oam_id'] is: N/A
+ asic_info['target_graphics_version'] is: gfx1030
+ asic_info['num_compute_units'] is: 72
+
+###Test amdsmi_get_gpu_kfd_info
+
+ kfd_info['kfd_id'] is: 16970
+ kfd_info['node_id'] is: 1
+
+ok
+
+----------------------------------------------------------------------
+Ran 1 test in 0.453s
+
+OK
~~~
@@ -865,682 +657,95 @@ collected 6 items / 1 deselected / 5 selected
Please refer to Python's UnitTest documentation for better overview of commands to run.
```shell
-python3 /opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v
-test_check_res (tests.amd_smi_test.py-test.unit_tests.TestAmdSmiPythonBDF) ... ok
-test_format_bdf (tests.amd_smi_test.py-test.unit_tests.TestAmdSmiPythonBDF) ... ok
-test_parse_bdf (tests.amd_smi_test.py-test.unit_tests.TestAmdSmiPythonBDF) ... ok
-```
-
-```shell
-python3 /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -v
-test_init (__main__.TestAmdSmiInit) ... ok
-test_bad_page_info (__main__.TestAmdSmiPythonInterface) ... ###Test amdsmi_get_gpu_bad_page_info
-
-**** [ERROR] | Test: test_bad_page_info | Caught AmdSmiLibraryException
-ok
-test_bdf_device_id (__main__.TestAmdSmiPythonInterface) ... ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['version'] is: 020.001.000.038.015697
-
- vbios_info['name'] is: NAVI21 Gaming XL D412
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 81ff73bf-0000-1000-80c1-6890a5911040
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['version'] is: 020.001.000.060.016898
-
- vbios_info['name'] is: NAVI21 D43001 GLXL
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 1fff73a3-0000-1000-8075-223e5e64eac1
-ok
-test_ecc (__main__.TestAmdSmiPythonInterface) ... ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_ras_feature_info
-
-**** [ERROR] | Test: test_ecc | Caught AmdSmiLibraryException
-ok
-test_gpu_performance (__main__.TestAmdSmiPythonInterface) ... ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_activity
- engine_usage['gfx_activity'] is: 5 %
- engine_usage['umc_activity'] is: 0 %
- engine_usage['mm_activity'] is: 0 %
-
-###Test amdsmi_get_power_info
- power_info['current_socket_power'] is: N/A
- power_info['average_socket_power'] is: 8
- power_info['gfx_voltage'] is: 768
- power_info['soc_voltage'] is: 918
- power_info['mem_voltage'] is: 1250
- power_info['power_limit'] is: 203000000
-###Test amdsmi_is_gpu_power_management_enabled
- Is power management enabled is: True
-###Test amdsmi_get_temp_metric
- Current temperature for EDGE is: 41
- Current temperature for HOTSPOT is: 42
- Current temperature for VRAM is: 38
-###Test amdsmi_get_temp_metric
- Limit (critical) temperature for EDGE is: 100
- Limit (critical) temperature for HOTSPOT is: 110
- Limit (critical) temperature for VRAM is: 100
-###Test amdsmi_get_temp_metric
- Shutdown (emergency) temperature for EDGE is: 105
- Shutdown (emergency) temperature for HOTSPOT is: 115
- Shutdown (emergency) temperature for VRAM is: 105
-###Test amdsmi_get_clock_info
- Current clock for domain GFX is: 500
- Max clock for domain GFX is: 2475
- Min clock for domain GFX is: 500
- Is GFX clock locked: 0
- Is GFX clock in deep sleep: 255
- Current clock for domain MEM is: 96
- Max clock for domain MEM is: 1000
- Min clock for domain MEM is: 96
- Is MEM clock in deep sleep: 255
- Current clock for domain VCLK0 is: 0
- Max clock for domain VCLK0 is: 0
- Min clock for domain VCLK0 is: 0
- Is VCLK0 clock in deep sleep: 255
- Current clock for domain VCLK1 is: 0
- Max clock for domain VCLK1 is: 0
- Min clock for domain VCLK1 is: 0
- Is VCLK1 clock in deep sleep: 255
- Current clock for domain DCLK0 is: 0
- Max clock for domain DCLK0 is: 0
- Min clock for domain DCLK0 is: 0
- Is DCLK0 clock in deep sleep: 255
- Current clock for domain DCLK1 is: 0
- Max clock for domain DCLK1 is: 0
- Min clock for domain DCLK1 is: 0
- Is DCLK1 clock in deep sleep: 255
-###Test amdsmi_get_pcie_info
- pcie_info['pcie_metric']['pcie_width'] is: 4
- pcie_info['pcie_static']['max_pcie_width'] is: 16
- pcie_info['pcie_metric']['pcie_speed'] is: 5000 MT/s
- pcie_info['pcie_static']['max_pcie_speed'] is: 16000
- pcie_info['pcie_static']['pcie_interface_version'] is: 4
- pcie_info['pcie_static']['slot_type'] is: CEM
- pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
- pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
- pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
- pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_activity
- engine_usage['gfx_activity'] is: 0 %
- engine_usage['umc_activity'] is: 0 %
- engine_usage['mm_activity'] is: 0 %
-
-###Test amdsmi_get_power_info
- power_info['current_socket_power'] is: N/A
- power_info['average_socket_power'] is: 12
- power_info['gfx_voltage'] is: 787
- power_info['soc_voltage'] is: 806
- power_info['mem_voltage'] is: 1250
- power_info['power_limit'] is: 213000000
-###Test amdsmi_is_gpu_power_management_enabled
- Is power management enabled is: True
-###Test amdsmi_get_temp_metric
- Current temperature for EDGE is: 33
- Current temperature for HOTSPOT is: 37
- Current temperature for VRAM is: 36
-###Test amdsmi_get_temp_metric
- Limit (critical) temperature for EDGE is: 109
- Limit (critical) temperature for HOTSPOT is: 110
- Limit (critical) temperature for VRAM is: 100
-###Test amdsmi_get_temp_metric
- Shutdown (emergency) temperature for EDGE is: 114
- Shutdown (emergency) temperature for HOTSPOT is: 115
- Shutdown (emergency) temperature for VRAM is: 105
-###Test amdsmi_get_clock_info
- Current clock for domain GFX is: 500
- Max clock for domain GFX is: 2555
- Min clock for domain GFX is: 500
- Is GFX clock locked: 0
- Is GFX clock in deep sleep: 255
- Current clock for domain MEM is: 96
- Max clock for domain MEM is: 1000
- Min clock for domain MEM is: 96
- Is MEM clock in deep sleep: 255
- Current clock for domain VCLK0 is: 0
- Max clock for domain VCLK0 is: 0
- Min clock for domain VCLK0 is: 0
- Is VCLK0 clock in deep sleep: 255
- Current clock for domain VCLK1 is: 0
- Max clock for domain VCLK1 is: 0
- Min clock for domain VCLK1 is: 0
- Is VCLK1 clock in deep sleep: 255
- Current clock for domain DCLK0 is: 0
- Max clock for domain DCLK0 is: 0
- Min clock for domain DCLK0 is: 0
- Is DCLK0 clock in deep sleep: 255
- Current clock for domain DCLK1 is: 0
- Max clock for domain DCLK1 is: 0
- Min clock for domain DCLK1 is: 0
- Is DCLK1 clock in deep sleep: 255
-###Test amdsmi_get_pcie_info
- pcie_info['pcie_metric']['pcie_width'] is: 16
- pcie_info['pcie_static']['max_pcie_width'] is: 16
- pcie_info['pcie_metric']['pcie_speed'] is: 8000 MT/s
- pcie_info['pcie_static']['max_pcie_speed'] is: 16000
- pcie_info['pcie_static']['pcie_interface_version'] is: 4
- pcie_info['pcie_static']['slot_type'] is: CEM
- pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
- pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
- pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
- pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
-ok
-test_walkthrough (__main__.TestAmdSmiPythonInterface) ... ###Test amdsmi_get_processor_handles()
-###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 0
-###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_asic_info
- asic_info['market_name'] is: NAVI21
- asic_info['vendor_id'] is: 0x1002
- asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
- asic_info['device_id'] is: 0x73bf
- asic_info['rev_id'] is: 0xc3
-
- asic_info['asic_serial'] is: 0x81C16890A5911040
-
- asic_info['oam_id'] is: N/A
-
-###Test amdsmi_get_power_cap_info
- power_info['dpm_cap'] is: 1
- power_info['power_cap'] is: 203000000
-
-###Test amdsmi_get_gpu_vbios_info
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['name'] is: NAVI21 Gaming XL D412
-
- vbios_info['version'] is: 020.001.000.038.015697
-
-###Test amdsmi_get_gpu_board_info
- board_info['model_number'] is: N/A
-
- board_info['product_serial'] is: N/A
-
- board_info['fru_id'] is: N/A
-
- board_info['manufacturer_name'] is: Advanced Micro Devices, Inc. [AMD/ATI]
-
- board_info['product_name'] is: Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
-
-###Test amdsmi_get_fw_info
-FW name: AMDSMI_FW_ID_CP_CE
-FW version: 37
-FW name: AMDSMI_FW_ID_CP_PFP
-FW version: 98
-FW name: AMDSMI_FW_ID_CP_ME
-FW version: 64
-FW name: AMDSMI_FW_ID_CP_MEC1
-FW version: 118
-FW name: AMDSMI_FW_ID_CP_MEC2
-FW version: 118
-FW name: AMDSMI_FW_ID_RLC
-FW version: 96
-FW name: AMDSMI_FW_ID_SDMA0
-FW version: 83
-FW name: AMDSMI_FW_ID_SDMA1
-FW version: 83
-FW name: AMDSMI_FW_ID_VCN
-FW version: 31.1E.00.8
-FW name: AMDSMI_FW_ID_PSP_SOSDRV
-FW version: 21.0E.64
-FW name: AMDSMI_FW_ID_ASD
-FW version: 553648340
-FW name: AMDSMI_FW_ID_TA_RAS
-FW version: 1B.00.01.3E
-FW name: AMDSMI_FW_ID_TA_XGMI
-FW version: 20.00.00.0F
-FW name: AMDSMI_FW_ID_PM
-FW version: 58.89.0
-###Test amdsmi_get_gpu_driver_info
-Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.7.8', 'driver_date': '2015/01/01 00:00'}
-###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = 0
-###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 1
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_asic_info
- asic_info['market_name'] is: Navi 21 GL-XL [Radeon PRO W6800]
- asic_info['vendor_id'] is: 0x1002
- asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
- asic_info['device_id'] is: 0x73a3
- asic_info['rev_id'] is: 0x00
-
- asic_info['asic_serial'] is: 0x1F75223E5E64EAC1
-
- asic_info['oam_id'] is: N/A
-
-###Test amdsmi_get_power_cap_info
- power_info['dpm_cap'] is: 1
- power_info['power_cap'] is: 213000000
-
-###Test amdsmi_get_gpu_vbios_info
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['name'] is: NAVI21 D43001 GLXL
-
- vbios_info['version'] is: 020.001.000.060.016898
-
-###Test amdsmi_get_gpu_board_info
- board_info['model_number'] is: N/A
-
- board_info['product_serial'] is: N/A
-
- board_info['fru_id'] is: N/A
-
- board_info['manufacturer_name'] is: Advanced Micro Devices, Inc. [AMD/ATI]
-
- board_info['product_name'] is: Navi 21 GL-XL [Radeon PRO W6800]
-
-###Test amdsmi_get_fw_info
-FW name: AMDSMI_FW_ID_CP_CE
-FW version: 37
-FW name: AMDSMI_FW_ID_CP_PFP
-FW version: 98
-FW name: AMDSMI_FW_ID_CP_ME
-FW version: 64
-FW name: AMDSMI_FW_ID_CP_MEC1
-FW version: 118
-FW name: AMDSMI_FW_ID_CP_MEC2
-FW version: 118
-FW name: AMDSMI_FW_ID_RLC
-FW version: 96
-FW name: AMDSMI_FW_ID_SDMA0
-FW version: 83
-FW name: AMDSMI_FW_ID_SDMA1
-FW version: 83
-FW name: AMDSMI_FW_ID_VCN
-FW version: 31.1E.00.8
-FW name: AMDSMI_FW_ID_PSP_SOSDRV
-FW version: 21.0E.64
-FW name: AMDSMI_FW_ID_ASD
-FW version: 553648340
-FW name: AMDSMI_FW_ID_TA_RAS
-FW version: 1B.00.01.3E
-FW name: AMDSMI_FW_ID_TA_XGMI
-FW version: 20.00.00.0F
-FW name: AMDSMI_FW_ID_PM
-FW version: 58.89.0
-###Test amdsmi_get_gpu_driver_info
-Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.7.8', 'driver_date': '2015/01/01 00:00'}
-###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = 1
-ok
+/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -v
+test_check_res (__main__.TestAmdSmiPythonBDF) ... ok
+test_format_bdf (__main__.TestAmdSmiPythonBDF) ... ok
+test_parse_bdf (__main__.TestAmdSmiPythonBDF) ... ok
----------------------------------------------------------------------
-Ran 6 tests in 0.077s
+Ran 3 tests in 0.001s
OK
```
```shell
-(Tue Jul-7 12:07:47am)-(CPU 0.3%:0:Net 18)-(charpoag@mlsetools2:/opt/rocm/share/amd_smi/tests/python_unittest)-(44K:3)
-> python3 -m pytest -s -ra -vvv -p no:cacheprovider
-==================================== test session starts =====================================
-platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3
-rootdir: /opt/rocm/share/amd_smi
-configfile: pyproject.toml
-collected 6 items
+/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "temperature" -v
+test_temperature_metric (__main__.TestAmdSmiPythonInterface) ...
-integration_test.py::TestAmdSmiInit::test_init PASSED
-integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info ###Test amdsmi_get_gpu_bad_page_info
+###Test Processor 0, bdf: 0000:43:00.0
-**** [ERROR] | Test: test_bad_page_info | Caught AmdSmiLibraryException
-PASSED
-integration_test.py::TestAmdSmiPythonInterface::test_bdf_device_id ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['version'] is: 020.001.000.038.015697
-
- vbios_info['name'] is: NAVI21 Gaming XL D412
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 81ff73bf-0000-1000-80c1-6890a5911040
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_vbios_info
-
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['version'] is: 020.001.000.060.016898
-
- vbios_info['name'] is: NAVI21 D43001 GLXL
-
-###Test amdsmi_get_gpu_device_uuid
-
- uuid is: 1fff73a3-0000-1000-8075-223e5e64eac1
-PASSED
-integration_test.py::TestAmdSmiPythonInterface::test_ecc ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_ras_feature_info
-
-**** [ERROR] | Test: test_ecc | Caught AmdSmiLibraryException
-PASSED
-integration_test.py::TestAmdSmiPythonInterface::test_gpu_performance ###Test Processor 0, bdf: 0000:08:00.0
-
-###Test amdsmi_get_gpu_activity
- engine_usage['gfx_activity'] is: 3 %
- engine_usage['umc_activity'] is: 0 %
- engine_usage['mm_activity'] is: 0 %
-
-###Test amdsmi_get_power_info
- power_info['current_socket_power'] is: N/A
- power_info['average_socket_power'] is: 8
- power_info['gfx_voltage'] is: 768
- power_info['soc_voltage'] is: 918
- power_info['mem_voltage'] is: 1250
- power_info['power_limit'] is: 203000000
-###Test amdsmi_is_gpu_power_management_enabled
- Is power management enabled is: True
###Test amdsmi_get_temp_metric
- Current temperature for EDGE is: 44
- Current temperature for HOTSPOT is: 45
- Current temperature for VRAM is: 40
+
+ Current temperature for HOTSPOT is: 33
+ Current temperature for VRAM is: 32
+
###Test amdsmi_get_temp_metric
+
+ Limit (critical) temperature for HOTSPOT is: 110
+ Limit (critical) temperature for VRAM is: 100
+
+###Test amdsmi_get_temp_metric
+
+ Shutdown (emergency) temperature for HOTSPOT is: 115
+ Shutdown (emergency) temperature for VRAM is: 105
+
+ok
+test_temperature_metric_edge (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
+###Test amdsmi_get_temp_metric
+
+ Current temperature for EDGE is: 31
Limit (critical) temperature for EDGE is: 100
- Limit (critical) temperature for HOTSPOT is: 110
- Limit (critical) temperature for VRAM is: 100
-###Test amdsmi_get_temp_metric
Shutdown (emergency) temperature for EDGE is: 105
- Shutdown (emergency) temperature for HOTSPOT is: 115
- Shutdown (emergency) temperature for VRAM is: 105
-###Test amdsmi_get_clock_info
- Current clock for domain GFX is: 500
- Max clock for domain GFX is: 2475
- Min clock for domain GFX is: 500
- Is GFX clock locked: 0
- Is GFX clock in deep sleep: 255
- Current clock for domain MEM is: 96
- Max clock for domain MEM is: 1000
- Min clock for domain MEM is: 96
- Is MEM clock in deep sleep: 255
- Current clock for domain VCLK0 is: 0
- Max clock for domain VCLK0 is: 0
- Min clock for domain VCLK0 is: 0
- Is VCLK0 clock in deep sleep: 255
- Current clock for domain VCLK1 is: 0
- Max clock for domain VCLK1 is: 0
- Min clock for domain VCLK1 is: 0
- Is VCLK1 clock in deep sleep: 255
- Current clock for domain DCLK0 is: 0
- Max clock for domain DCLK0 is: 0
- Min clock for domain DCLK0 is: 0
- Is DCLK0 clock in deep sleep: 255
- Current clock for domain DCLK1 is: 0
- Max clock for domain DCLK1 is: 0
- Min clock for domain DCLK1 is: 0
- Is DCLK1 clock in deep sleep: 255
-###Test amdsmi_get_pcie_info
- pcie_info['pcie_metric']['pcie_width'] is: 4
- pcie_info['pcie_static']['max_pcie_width'] is: 16
- pcie_info['pcie_metric']['pcie_speed'] is: 5000 MT/s
- pcie_info['pcie_static']['max_pcie_speed'] is: 16000
- pcie_info['pcie_static']['pcie_interface_version'] is: 4
- pcie_info['pcie_static']['slot_type'] is: CEM
- pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
- pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
- pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
- pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
-###Test Processor 1, bdf: 0000:44:00.0
-###Test amdsmi_get_gpu_activity
- engine_usage['gfx_activity'] is: 0 %
- engine_usage['umc_activity'] is: 0 %
- engine_usage['mm_activity'] is: 0 %
+ok
+test_temperature_metric_hbm (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
-###Test amdsmi_get_power_info
- power_info['current_socket_power'] is: N/A
- power_info['average_socket_power'] is: 13
- power_info['gfx_voltage'] is: 781
- power_info['soc_voltage'] is: 806
- power_info['mem_voltage'] is: 1250
- power_info['power_limit'] is: 213000000
-###Test amdsmi_is_gpu_power_management_enabled
- Is power management enabled is: True
###Test amdsmi_get_temp_metric
- Current temperature for EDGE is: 36
- Current temperature for HOTSPOT is: 39
- Current temperature for VRAM is: 38
+
+**** [ERROR] | Test: test_temperature_metric_hbm | Caught AmdSmiLibraryException: Error code:
+ 2 | AMDSMI_STATUS_NOT_SUPPORTED - Feature not supported
+ok
+test_temperature_metric_plx (__main__.TestAmdSmiPythonInterface) ...
+
+###Test Processor 0, bdf: 0000:43:00.0
+
###Test amdsmi_get_temp_metric
- Limit (critical) temperature for EDGE is: 109
- Limit (critical) temperature for HOTSPOT is: 110
- Limit (critical) temperature for VRAM is: 100
-###Test amdsmi_get_temp_metric
- Shutdown (emergency) temperature for EDGE is: 114
- Shutdown (emergency) temperature for HOTSPOT is: 115
- Shutdown (emergency) temperature for VRAM is: 105
-###Test amdsmi_get_clock_info
- Current clock for domain GFX is: 500
- Max clock for domain GFX is: 2555
- Min clock for domain GFX is: 500
- Is GFX clock locked: 0
- Is GFX clock in deep sleep: 255
- Current clock for domain MEM is: 96
- Max clock for domain MEM is: 1000
- Min clock for domain MEM is: 96
- Is MEM clock in deep sleep: 255
- Current clock for domain VCLK0 is: 0
- Max clock for domain VCLK0 is: 0
- Min clock for domain VCLK0 is: 0
- Is VCLK0 clock in deep sleep: 255
- Current clock for domain VCLK1 is: 0
- Max clock for domain VCLK1 is: 0
- Min clock for domain VCLK1 is: 0
- Is VCLK1 clock in deep sleep: 255
- Current clock for domain DCLK0 is: 0
- Max clock for domain DCLK0 is: 0
- Min clock for domain DCLK0 is: 0
- Is DCLK0 clock in deep sleep: 255
- Current clock for domain DCLK1 is: 0
- Max clock for domain DCLK1 is: 0
- Min clock for domain DCLK1 is: 0
- Is DCLK1 clock in deep sleep: 255
-###Test amdsmi_get_pcie_info
- pcie_info['pcie_metric']['pcie_width'] is: 16
- pcie_info['pcie_static']['max_pcie_width'] is: 16
- pcie_info['pcie_metric']['pcie_speed'] is: 8000 MT/s
- pcie_info['pcie_static']['max_pcie_speed'] is: 16000
- pcie_info['pcie_static']['pcie_interface_version'] is: 4
- pcie_info['pcie_static']['slot_type'] is: CEM
- pcie_info['pcie_metric']['pcie_replay_count'] is: N/A
- pcie_info['pcie_metric']['pcie_bandwidth'] is: N/A
- pcie_info['pcie_metric']['pcie_l0_to_recovery_count'] is: N/A
- pcie_info['pcie_metric']['pcie_replay_roll_over_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_sent_count'] is: N/A
- pcie_info['pcie_metric']['pcie_nak_received_count'] is: N/A
-PASSED
-integration_test.py::TestAmdSmiPythonInterface::test_walkthrough ###Test amdsmi_get_processor_handles()
-###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 0
-###Test Processor 0, bdf: 0000:08:00.0
-###Test amdsmi_get_gpu_asic_info
- asic_info['market_name'] is: NAVI21
- asic_info['vendor_id'] is: 0x1002
- asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
- asic_info['device_id'] is: 0x73bf
- asic_info['rev_id'] is: 0xc3
+ Current temperature for PLX is: 30
+ Limit (critical) temperature for PLX is: 30
+ Shutdown (emergency) temperature for PLX is: 30
- asic_info['asic_serial'] is: 0x81C16890A5911040
-
- asic_info['oam_id'] is: N/A
-
-###Test amdsmi_get_power_cap_info
- power_info['dpm_cap'] is: 1
- power_info['power_cap'] is: 203000000
-
-###Test amdsmi_get_gpu_vbios_info
- vbios_info['part_number'] is: 113-D41207XL-038
- vbios_info['build_date'] is: 2020/10/06 17:59
- vbios_info['name'] is: NAVI21 Gaming XL D412
-
- vbios_info['version'] is: 020.001.000.038.015697
-
-###Test amdsmi_get_gpu_board_info
- board_info['model_number'] is: N/A
-
- board_info['product_serial'] is: N/A
-
- board_info['fru_id'] is: N/A
-
- board_info['manufacturer_name'] is: Advanced Micro Devices, Inc. [AMD/ATI]
-
- board_info['product_name'] is: Navi 21 [Radeon RX 6800/6800 XT / 6900 XT]
-
-###Test amdsmi_get_fw_info
-FW name: AMDSMI_FW_ID_CP_CE
-FW version: 37
-FW name: AMDSMI_FW_ID_CP_PFP
-FW version: 98
-FW name: AMDSMI_FW_ID_CP_ME
-FW version: 64
-FW name: AMDSMI_FW_ID_CP_MEC1
-FW version: 118
-FW name: AMDSMI_FW_ID_CP_MEC2
-FW version: 118
-FW name: AMDSMI_FW_ID_RLC
-FW version: 96
-FW name: AMDSMI_FW_ID_SDMA0
-FW version: 83
-FW name: AMDSMI_FW_ID_SDMA1
-FW version: 83
-FW name: AMDSMI_FW_ID_VCN
-FW version: 31.1E.00.8
-FW name: AMDSMI_FW_ID_PSP_SOSDRV
-FW version: 21.0E.64
-FW name: AMDSMI_FW_ID_ASD
-FW version: 553648340
-FW name: AMDSMI_FW_ID_TA_RAS
-FW version: 1B.00.01.3E
-FW name: AMDSMI_FW_ID_TA_XGMI
-FW version: 20.00.00.0F
-FW name: AMDSMI_FW_ID_PM
-FW version: 58.89.0
-###Test amdsmi_get_gpu_driver_info
-Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.7.8', 'driver_date': '2015/01/01 00:00'}
-###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = 0
-###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = 1
-###Test Processor 1, bdf: 0000:44:00.0
-
-###Test amdsmi_get_gpu_asic_info
- asic_info['market_name'] is: Navi 21 GL-XL [Radeon PRO W6800]
- asic_info['vendor_id'] is: 0x1002
- asic_info['vendor_name'] is: Advanced Micro Devices Inc. [AMD/ATI]
- asic_info['device_id'] is: 0x73a3
- asic_info['rev_id'] is: 0x00
-
- asic_info['asic_serial'] is: 0x1F75223E5E64EAC1
-
- asic_info['oam_id'] is: N/A
-
-###Test amdsmi_get_power_cap_info
- power_info['dpm_cap'] is: 1
- power_info['power_cap'] is: 213000000
-
-###Test amdsmi_get_gpu_vbios_info
- vbios_info['part_number'] is: 113-D4300100-100
- vbios_info['build_date'] is: 2021/04/22 09:34
- vbios_info['name'] is: NAVI21 D43001 GLXL
-
- vbios_info['version'] is: 020.001.000.060.016898
-
-###Test amdsmi_get_gpu_board_info
- board_info['model_number'] is: N/A
-
- board_info['product_serial'] is: N/A
-
- board_info['fru_id'] is: N/A
-
- board_info['manufacturer_name'] is: Advanced Micro Devices, Inc. [AMD/ATI]
-
- board_info['product_name'] is: Navi 21 GL-XL [Radeon PRO W6800]
-
-###Test amdsmi_get_fw_info
-FW name: AMDSMI_FW_ID_CP_CE
-FW version: 37
-FW name: AMDSMI_FW_ID_CP_PFP
-FW version: 98
-FW name: AMDSMI_FW_ID_CP_ME
-FW version: 64
-FW name: AMDSMI_FW_ID_CP_MEC1
-FW version: 118
-FW name: AMDSMI_FW_ID_CP_MEC2
-FW version: 118
-FW name: AMDSMI_FW_ID_RLC
-FW version: 96
-FW name: AMDSMI_FW_ID_SDMA0
-FW version: 83
-FW name: AMDSMI_FW_ID_SDMA1
-FW version: 83
-FW name: AMDSMI_FW_ID_VCN
-FW version: 31.1E.00.8
-FW name: AMDSMI_FW_ID_PSP_SOSDRV
-FW version: 21.0E.64
-FW name: AMDSMI_FW_ID_ASD
-FW version: 553648340
-FW name: AMDSMI_FW_ID_TA_RAS
-FW version: 1B.00.01.3E
-FW name: AMDSMI_FW_ID_TA_XGMI
-FW version: 20.00.00.0F
-FW name: AMDSMI_FW_ID_PM
-FW version: 58.89.0
-###Test amdsmi_get_gpu_driver_info
-Driver info: {'driver_name': 'amdgpu', 'driver_version': '6.7.8', 'driver_date': '2015/01/01 00:00'}
-###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = 1
-PASSED
-
-===================================== 6 passed in 0.10s ======================================
-```
-
-```shell
-$ python3 /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "*test_init" -vvv
-test_init (__main__.TestAmdSmiInit) ... ok
+ok
----------------------------------------------------------------------
-Ran 1 test in 0.009s
+Ran 4 tests in 0.466s
OK
-
```
```shell
-(Tue Jul-7 12:10:10am)-(CPU 0.3%:0:Net 16)-(charpoag@mlsetools2:/opt/rocm/share/amd_smi/tests/python_unittest)-(44K:3)
-> python3 -m pytest -ra -vvv -p no:cacheprovider
-==================================== test session starts =====================================
-platform linux -- Python 3.8.10, pytest-8.2.2, pluggy-1.5.0 -- /usr/bin/python3
-rootdir: /opt/rocm/share/amd_smi
-configfile: pyproject.toml
-collected 6 items
+/opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "info" -b -v
+test_asic_kfd_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_bad_page_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_board_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_clock_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_clock_info_vclk0_dclk0 (__main__.TestAmdSmiPythonInterface) ... ok
+test_clock_info_vclk1_dclk1 (__main__.TestAmdSmiPythonInterface) ... ok
+test_driver_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_fw_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_pcie_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_power_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_ras_feature_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_socket_info (__main__.TestAmdSmiPythonInterface) ... ok
+test_vbios_info (__main__.TestAmdSmiPythonInterface) ... ok
-integration_test.py::TestAmdSmiInit::test_init PASSED [ 16%]
-integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info PASSED [ 33%]
-integration_test.py::TestAmdSmiPythonInterface::test_bdf_device_id PASSED [ 50%]
-integration_test.py::TestAmdSmiPythonInterface::test_ecc PASSED [ 66%]
-integration_test.py::TestAmdSmiPythonInterface::test_gpu_performance PASSED [ 83%]
-integration_test.py::TestAmdSmiPythonInterface::test_walkthrough PASSED [100%]
+----------------------------------------------------------------------
+Ran 13 tests in 0.506s
-===================================== 6 passed in 0.11s ======================================
+OK
```
\ No newline at end of file
diff --git a/projects/amdsmi/tests/python_unittest/integration_test.py b/projects/amdsmi/tests/python_unittest/integration_test.py
index 7c829e87bc..51cd8e08a0 100755
--- a/projects/amdsmi/tests/python_unittest/integration_test.py
+++ b/projects/amdsmi/tests/python_unittest/integration_test.py
@@ -32,6 +32,9 @@ import threading
import multiprocessing
from datetime import datetime
+# Note: amdsmi_status_code_to_string is not tested due to the nature and functionality of the AMDSMI Python wrapper.
+# The function is to be tested in the future after the wrapper is updated to return status codes after API calls.
+
def handle_exceptions(func):
"""Exposes, silences, and logs AMD SMI exceptions to users what exception was raised.
@@ -46,15 +49,19 @@ def handle_exceptions(func):
return func(*args, **kwargs)
except amdsmi.AmdSmiRetryException as e:
print("**** [ERROR] | Test: " + str(func.__name__) + " | Caught AmdSmiRetryException: {}".format(e))
+ amdsmi.amdsmi_shut_down()
pass
except amdsmi.AmdSmiTimeoutException as e:
print("**** [ERROR] | Test: " + str(func.__name__) + " | Caught AmdSmiTimeoutException: {}".format(e))
+ amdsmi.amdsmi_shut_down()
pass
except amdsmi.AmdSmiLibraryException as e:
print("**** [ERROR] | Test: " + str(func.__name__) + " | Caught AmdSmiLibraryException: {}".format(e))
+ amdsmi.amdsmi_shut_down()
pass
except Exception as e:
print("**** [ERROR] | Test: " + str(func.__name__) + " | Caught unknown exception: {}".format(e))
+ amdsmi.amdsmi_shut_down()
pass
return wrapper
@@ -68,13 +75,52 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
@handle_exceptions
def setUp(self):
amdsmi.amdsmi_init()
+
@handle_exceptions
def tearDown(self):
amdsmi.amdsmi_shut_down()
- # Bad page is not supported in Navi21 and Navi31
+ def test_asic_kfd_info(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_asic_info \n")
+ asic_info = amdsmi.amdsmi_get_gpu_asic_info(processors[i])
+ print(" asic_info['market_name'] is: {}".format(
+ asic_info['market_name']))
+ print(" asic_info['vendor_id'] is: {}".format(
+ asic_info['vendor_id']))
+ print(" asic_info['vendor_name'] is: {}".format(
+ asic_info['vendor_name']))
+ print(" asic_info['device_id'] is: {}".format(
+ asic_info['device_id']))
+ print(" asic_info['rev_id'] is: {}".format(
+ asic_info['rev_id']))
+ print(" asic_info['asic_serial'] is: {}".format(
+ asic_info['asic_serial']))
+ print(" asic_info['oam_id'] is: {}".format(
+ asic_info['oam_id']))
+ print(" asic_info['target_graphics_version'] is: {}".format(
+ asic_info['target_graphics_version']))
+ print(" asic_info['num_compute_units'] is: {}".format(
+ asic_info['num_compute_units']))
+ print("\n###Test amdsmi_get_gpu_kfd_info \n")
+ kfd_info = amdsmi.amdsmi_get_gpu_kfd_info(processors[i])
+ print(" kfd_info['kfd_id'] is: {}".format(
+ kfd_info['kfd_id']))
+ print(" kfd_info['node_id'] is: {}".format(
+ kfd_info['node_id']))
+ print()
+ self.tearDown()
+
+ # amdsmi_get_gpu_bad_page_info is not supported in Navi2x, Navi3x
@handle_exceptions
def test_bad_page_info(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -96,14 +142,17 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
print()
j += 1
print()
+ self.tearDown()
def test_bdf_device_id(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
for i in range(0, len(processors)):
bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_processor_handle_from_bdf \n")
processor = amdsmi.amdsmi_get_processor_handle_from_bdf(bdf)
print("\n###Test amdsmi_get_gpu_vbios_info \n")
vbios_info = amdsmi.amdsmi_get_gpu_vbios_info(processor)
@@ -119,49 +168,83 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
uuid = amdsmi.amdsmi_get_gpu_device_uuid(processor)
print(" uuid is: {}".format(uuid))
print()
+ self.tearDown()
- def test_ecc(self):
+ def test_board_info(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
for i in range(0, len(processors)):
bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
- print("\n###Test amdsmi_get_gpu_total_ecc_count \n")
- ecc_info = amdsmi.amdsmi_get_gpu_total_ecc_count(processors[i])
- print("Number of uncorrectable errors: {}".format(
- ecc_info['uncorrectable_count']))
- print("Number of correctable errors: {}".format(
- ecc_info['correctable_count']))
- print("Number of deferred errors: {}".format(
- ecc_info['deferred_count']))
- self.assertGreaterEqual(ecc_info['uncorrectable_count'], 0)
- self.assertGreaterEqual(ecc_info['correctable_count'], 0)
- self.assertGreaterEqual(ecc_info['deferred_count'], 0)
+ print("\n###Test amdsmi_get_gpu_board_info \n")
+ board_info = amdsmi.amdsmi_get_gpu_board_info(processors[i])
+ print(" board_info['model_number'] is: {}".format(
+ board_info['model_number']))
+ print(" board_info['product_serial'] is: {}".format(
+ board_info['product_serial']))
+ print(" board_info['fru_id'] is: {}".format(
+ board_info['fru_id']))
+ print(" board_info['manufacturer_name'] is: {}".format(
+ board_info['manufacturer_name']))
+ print(" board_info['product_name'] is: {}".format(
+ board_info['product_name']))
print()
+ self.tearDown()
- # RAS is not supported in Navi21 and Navi31
+ def test_clock_frequency(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_clk_freq \n")
+ clock_frequency = amdsmi.amdsmi_get_clk_freq(
+ processors[i], amdsmi.AmdSmiClkType.SYS)
+ print(" SYS clock_frequency['num_supported']: {}".format(
+ clock_frequency['num_supported']))
+ print(" SYS clock_frequency['current']: {}".format(
+ clock_frequency['current']))
+ print(" SYS clock_frequency['frequency']: {}".format(
+ clock_frequency['frequency']))
+ clock_frequency = amdsmi.amdsmi_get_clk_freq(
+ processors[i], amdsmi.AmdSmiClkType.DF)
+ print(" DF clock_frequency['num_supported']: {}".format(
+ clock_frequency['num_supported']))
+ print(" DF clock_frequency['current']: {}".format(
+ clock_frequency['current']))
+ print(" DF clock_frequency['frequency']: {}".format(
+ clock_frequency['frequency']))
+ print()
+ self.tearDown()
+
+ # amdsmi_get_clk_freq with AmdSmiClkType.DCEF is not supported in MI210, MI300A
@handle_exceptions
- def test_ras(self):
+ def test_clock_frequency_DCEF(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
for i in range(0, len(processors)):
bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
- print("\n###Test amdsmi_get_gpu_ras_feature_info \n")
- ras_feature = amdsmi.amdsmi_get_gpu_ras_feature_info(processors[i])
- print("ras_feature: " + str(ras_feature))
- if ras_feature != None:
- print("ras_feature: " + str(ras_feature))
- print("RAS eeprom version: {}".format(ras_feature['eeprom_version']))
- print("RAS parity schema: {}".format(ras_feature['parity_schema']))
- print("RAS single bit schema: {}".format(ras_feature['single_bit_schema']))
- print("RAS double bit schema: {}".format(ras_feature['double_bit_schema']))
- print("Poisioning supported: {}".format(ras_feature['poison_schema']))
+ print("\n###Test amdsmi_get_clk_freq \n")
+ clock_frequency = amdsmi.amdsmi_get_clk_freq(
+ processors[i], amdsmi.AmdSmiClkType.DCEF)
+ print(" DCEF clock_frequency['num_supported']: {}".format(
+ clock_frequency['num_supported']))
+ print(" DCEF clock_frequency['current']: {}".format(
+ clock_frequency['current']))
+ print(" DCEF clock_frequency['frequency']: {}".format(
+ clock_frequency['frequency']))
print()
+ self.tearDown()
def test_clock_info(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -192,10 +275,12 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
print(" Is MEM clock in deep sleep: {}".format(
clock_measure['clk_deep_sleep']))
print()
+ self.tearDown()
- # VCLK0 and DCLK0 are not supported in MI210
+ # AmdSmiClkType.VCLK0 and DCLK0 are not supported in MI210
@handle_exceptions
- def test_gpu_clock_vclk0_dclk0(self):
+ def test_clock_info_vclk0_dclk0(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -224,10 +309,12 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
print(" Is DCLK0 clock in deep sleep: {}".format(
clock_measure['clk_deep_sleep']))
print()
+ self.tearDown()
- # VCLK1 and DCLK1 are not supported in Navi 31, MI210, and MI300
+ # AmdSmiClkType.VCLK1 and DCLK1 are not supported in MI210, MI300A, MI300X
@handle_exceptions
- def test_gpu_clock_vclk1_dclk1(self):
+ def test_clock_info_vclk1_dclk1(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -256,8 +343,118 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
print(" Is DCLK1 clock in deep sleep: {}".format(
clock_measure['clk_deep_sleep']))
print()
+ self.tearDown()
+
+ def test_driver_info(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_driver_info \n")
+ driver_info = amdsmi.amdsmi_get_gpu_driver_info(processors[i])
+ print("Driver info: {}".format(driver_info))
+ print()
+ self.tearDown()
+
+ # amdsmi_get_gpu_ecc_count is not supported in Navi2x, Navi3x, MI210, MI300A
+ @handle_exceptions
+ def test_ecc_count_block(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ gpu_blocks = {
+ "INVALID": amdsmi.AmdSmiGpuBlock.INVALID,
+ "UMC": amdsmi.AmdSmiGpuBlock.UMC,
+ "SDMA": amdsmi.AmdSmiGpuBlock.SDMA,
+ "GFX": amdsmi.AmdSmiGpuBlock.GFX,
+ "MMHUB": amdsmi.AmdSmiGpuBlock.MMHUB,
+ "ATHUB": amdsmi.AmdSmiGpuBlock.ATHUB,
+ "PCIE_BIF": amdsmi.AmdSmiGpuBlock.PCIE_BIF,
+ "HDP": amdsmi.AmdSmiGpuBlock.HDP,
+ "XGMI_WAFL": amdsmi.AmdSmiGpuBlock.XGMI_WAFL,
+ "DF": amdsmi.AmdSmiGpuBlock.DF,
+ "SMN": amdsmi.AmdSmiGpuBlock.SMN,
+ "SEM": amdsmi.AmdSmiGpuBlock.SEM,
+ "MP0": amdsmi.AmdSmiGpuBlock.MP0,
+ "MP1": amdsmi.AmdSmiGpuBlock.MP1,
+ "FUSE": amdsmi.AmdSmiGpuBlock.FUSE,
+ "MCA": amdsmi.AmdSmiGpuBlock.MCA,
+ "VCN": amdsmi.AmdSmiGpuBlock.VCN,
+ "JPEG": amdsmi.AmdSmiGpuBlock.JPEG,
+ "IH": amdsmi.AmdSmiGpuBlock.IH,
+ "MPIO": amdsmi.AmdSmiGpuBlock.MPIO,
+ "RESERVED": amdsmi.AmdSmiGpuBlock.RESERVED
+ }
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_ecc_count \n")
+ for block_name, block_code in gpu_blocks.items():
+ ecc_count = amdsmi.amdsmi_get_gpu_ecc_count(
+ processors[i], block_code)
+ print(" Number of uncorrectable errors for {}: {}".format(
+ block_name, ecc_count['uncorrectable_count']))
+ print(" Number of correctable errors for {}: {}".format(
+ block_name, ecc_count['correctable_count']))
+ print(" Number of deferred errors for {}: {}".format(
+ block_name, ecc_count['deferred_count']))
+ self.assertGreaterEqual(ecc_count['uncorrectable_count'], 0)
+ self.assertGreaterEqual(ecc_count['correctable_count'], 0)
+ self.assertGreaterEqual(ecc_count['deferred_count'], 0)
+ print()
+ print()
+ self.tearDown()
+
+ def test_ecc_count_total(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_total_ecc_count \n")
+ ecc_info = amdsmi.amdsmi_get_gpu_total_ecc_count(processors[i])
+ print("Number of uncorrectable errors: {}".format(
+ ecc_info['uncorrectable_count']))
+ print("Number of correctable errors: {}".format(
+ ecc_info['correctable_count']))
+ print("Number of deferred errors: {}".format(
+ ecc_info['deferred_count']))
+ self.assertGreaterEqual(ecc_info['uncorrectable_count'], 0)
+ self.assertGreaterEqual(ecc_info['correctable_count'], 0)
+ self.assertGreaterEqual(ecc_info['deferred_count'], 0)
+ print()
+ self.tearDown()
+
+ def test_fw_info(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_fw_info \n")
+ fw_info = amdsmi.amdsmi_get_fw_info(processors[i])
+ fw_num = len(fw_info['fw_list'])
+ self.assertLessEqual(fw_num, len(amdsmi.AmdSmiFwBlock))
+ for j in range(0, fw_num):
+ fw = fw_info['fw_list'][j]
+ if fw['fw_version'] != 0:
+ print(" FW name: {}".format(
+ fw['fw_name'].name))
+ print(" FW version: {}".format(
+ fw['fw_version']))
+ print()
+ self.tearDown()
def test_gpu_activity(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -273,8 +470,31 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
print(" engine_usage['mm_activity'] is: {} %".format(
engine_usage['mm_activity']))
print()
+ self.tearDown()
- def test_pcie(self):
+ def test_memory_usage(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_memory_usage \n")
+ memory_usage = amdsmi.amdsmi_get_gpu_memory_usage(
+ processors[i], amdsmi.AmdSmiMemoryType.VRAM)
+ print(" memory_usage for VRAM is: {}".format(memory_usage))
+ memory_usage = amdsmi.amdsmi_get_gpu_memory_usage(
+ processors[i], amdsmi.AmdSmiMemoryType.VIS_VRAM)
+ print(" memory_usage for VIS_VRAM is: {}".format(memory_usage))
+ memory_usage = amdsmi.amdsmi_get_gpu_memory_usage(
+ processors[i], amdsmi.AmdSmiMemoryType.GTT)
+ print(" memory_usage for GTT is: {}".format(memory_usage))
+ print()
+ self.tearDown()
+
+ def test_pcie_info(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -308,8 +528,10 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
print(" pcie_info['pcie_metric']['pcie_nak_received_count'] is: {}".format(
pcie_info['pcie_metric']['pcie_nak_received_count']))
print()
+ self.tearDown()
- def test_power(self):
+ def test_power_info(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -330,13 +552,99 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
power_info['mem_voltage']))
print(" power_info['power_limit'] is: {}".format(
power_info['power_limit']))
+ print("\n###Test amdsmi_get_power_cap_info \n")
+ power_cap_info = amdsmi.amdsmi_get_power_cap_info(processors[i])
+ print(" power_info['dpm_cap'] is: {}".format(
+ power_cap_info['dpm_cap']))
+ print(" power_info['power_cap'] is: {}".format(
+ power_cap_info['power_cap']))
print("\n###Test amdsmi_is_gpu_power_management_enabled \n")
is_power_management_enabled = amdsmi.amdsmi_is_gpu_power_management_enabled(processors[i])
- print(" Is power management enabled is: {}".format(
+ print(" Power management enabled: {}".format(
is_power_management_enabled))
print()
+ self.tearDown()
- def test_temperature(self):
+ def test_process_list(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_process_list \n")
+ process_list = amdsmi.amdsmi_get_gpu_process_list(processors[i])
+ print(" Process list: {}".format(process_list))
+ print()
+ self.tearDown()
+
+ def test_processor_type(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_processor_type \n")
+ processor_type = amdsmi.amdsmi_get_processor_type(processors[i])
+ print(" Processor type is: {}".format(processor_type['processor_type']))
+ print()
+ self.tearDown()
+
+ # amdsmi_get_gpu_ras_block_features_enabled is not supported in Navi2x, Navi3x
+ @handle_exceptions
+ def test_ras_block_features_enabled(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_ras_block_features_enabled \n")
+ ras_enabled = amdsmi.amdsmi_get_gpu_ras_block_features_enabled(processors[i])
+ for j in range(0, len(ras_enabled)):
+ print(" RAS status for {} is: {}".format(ras_enabled[j]['block'], ras_enabled[j]['status']))
+ print()
+ self.tearDown()
+
+ # amdsmi_get_gpu_ras_feature_info is not supported in Navi2x, Navi3x
+ @handle_exceptions
+ def test_ras_feature_info(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_ras_feature_info \n")
+ ras_feature = amdsmi.amdsmi_get_gpu_ras_feature_info(processors[i])
+ if ras_feature != None:
+ print("RAS eeprom version: {}".format(ras_feature['eeprom_version']))
+ print("RAS parity schema: {}".format(ras_feature['parity_schema']))
+ print("RAS single bit schema: {}".format(ras_feature['single_bit_schema']))
+ print("RAS double bit schema: {}".format(ras_feature['double_bit_schema']))
+ print("Poisoning supported: {}".format(ras_feature['poison_schema']))
+ print()
+ self.tearDown()
+
+ def test_socket_info(self):
+ self.setUp()
+ print("\n\n###Test amdsmi_get_socket_handles")
+ sockets = amdsmi.amdsmi_get_socket_handles()
+ for i in range(0, len(sockets)):
+ print("\n\n###Test Socket {}".format(i))
+ print("\n###Test amdsmi_get_socket_info \n")
+ socket_name = amdsmi.amdsmi_get_socket_info(sockets[i])
+ print(" Socket: {}".format(socket_name))
+ print()
+ self.tearDown()
+
+ def test_temperature_metric(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -371,10 +679,12 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
print(" Shutdown (emergency) temperature for VRAM is: {}".format(
temperature_measure))
print()
+ self.tearDown()
- # Edge temperature is not supported in MI300
+ # AmdSmiTemperatureType.EDGE is not supported in MI300A, MI300X
@handle_exceptions
- def test_temperature_edge(self):
+ def test_temperature_metric_edge(self):
+ self.setUp()
processors = amdsmi.amdsmi_get_processor_handles()
self.assertGreaterEqual(len(processors), 1)
self.assertLessEqual(len(processors), 32)
@@ -383,21 +693,168 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
print("\n###Test amdsmi_get_temp_metric \n")
temperature_measure = amdsmi.amdsmi_get_temp_metric(
- processors[i], amdsmi.AmdSmiTemperatureType.EDGE, amdsmi.AmdSmiTemperatureMetric.CURRENT) # current
+ processors[i], amdsmi.AmdSmiTemperatureType.EDGE, amdsmi.AmdSmiTemperatureMetric.CURRENT)
print(" Current temperature for EDGE is: {}".format(
temperature_measure))
temperature_measure = amdsmi.amdsmi_get_temp_metric(
- processors[i], amdsmi.AmdSmiTemperatureType.EDGE, amdsmi.AmdSmiTemperatureMetric.CRITICAL) # slowdown/limit
+ processors[i], amdsmi.AmdSmiTemperatureType.EDGE, amdsmi.AmdSmiTemperatureMetric.CRITICAL)
print(" Limit (critical) temperature for EDGE is: {}".format(
temperature_measure))
temperature_measure = amdsmi.amdsmi_get_temp_metric(
- processors[i], amdsmi.AmdSmiTemperatureType.EDGE, amdsmi.AmdSmiTemperatureMetric.EMERGENCY) # shutdown
+ processors[i], amdsmi.AmdSmiTemperatureType.EDGE, amdsmi.AmdSmiTemperatureMetric.EMERGENCY)
print(" Shutdown (emergency) temperature for EDGE is: {}".format(
temperature_measure))
print()
+ self.tearDown()
+ def test_temperature_metric_plx(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_temp_metric \n")
+ temperature_measure = amdsmi.amdsmi_get_temp_metric(
+ processors[i], amdsmi.AmdSmiTemperatureType.PLX, amdsmi.AmdSmiTemperatureMetric.CURRENT)
+ print(" Current temperature for PLX is: {}".format(
+ temperature_measure))
+ temperature_measure = amdsmi.amdsmi_get_temp_metric(
+ processors[i], amdsmi.AmdSmiTemperatureType.PLX, amdsmi.AmdSmiTemperatureMetric.CRITICAL)
+ print(" Limit (critical) temperature for PLX is: {}".format(
+ temperature_measure))
+ temperature_measure = amdsmi.amdsmi_get_temp_metric(
+ processors[i], amdsmi.AmdSmiTemperatureType.PLX, amdsmi.AmdSmiTemperatureMetric.EMERGENCY)
+ print(" Shutdown (emergency) temperature for PLX is: {}".format(
+ temperature_measure))
+ print()
+ self.tearDown()
+
+ # AmdSmiTemperatureType.HBM_0, HBM_1, HBM_2, HBM_3 are not supported in Navi2x, Navi3x, MI210, MI300A
+ @handle_exceptions
+ def test_temperature_metric_hbm(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ temp_types = {
+ "HBM_0": amdsmi.AmdSmiTemperatureType.HBM_0,
+ "HBM_1": amdsmi.AmdSmiTemperatureType.HBM_1,
+ "HBM_2": amdsmi.AmdSmiTemperatureType.HBM_2,
+ "HBM_3": amdsmi.AmdSmiTemperatureType.HBM_3,
+ }
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_temp_metric \n")
+ for temp_type_name, temp_type_code in temp_types.items():
+ temperature_measure = amdsmi.amdsmi_get_temp_metric(
+ processors[i], temp_type_code, amdsmi.AmdSmiTemperatureMetric.CURRENT)
+ print(" Current temperature for {} is: {}".format(
+ temp_type_name, temperature_measure))
+ temperature_measure = amdsmi.amdsmi_get_temp_metric(
+ processors[i], temp_type_code, amdsmi.AmdSmiTemperatureMetric.CRITICAL)
+ print(" Limit (critical) temperature for {} is: {}".format(
+ temp_type_name, temperature_measure))
+ temperature_measure = amdsmi.amdsmi_get_temp_metric(
+ processors[i], temp_type_code, amdsmi.AmdSmiTemperatureMetric.EMERGENCY)
+ print(" Shutdown (emergency) temperature for {} is: {}".format(
+ temp_type_name, temperature_measure))
+ print()
+ self.tearDown()
+
+ def test_utilization_count(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_utilization_count \n")
+ utilization_counter_types = [
+ amdsmi.AmdSmiUtilizationCounterType.COARSE_GRAIN_GFX_ACTIVITY,
+ amdsmi.AmdSmiUtilizationCounterType.COARSE_GRAIN_MEM_ACTIVITY,
+ amdsmi.AmdSmiUtilizationCounterType.COARSE_DECODER_ACTIVITY
+ ]
+ utilization_count = amdsmi.amdsmi_get_utilization_count(
+ processors[i], utilization_counter_types)
+ print(" Timestamp: {}".format(
+ utilization_count[0]['timestamp']))
+ print(" Utilization count for {} is: {}".format(
+ utilization_count[1]['type'], utilization_count[1]['value']))
+ print(" Utilization count for {} is: {}".format(
+ utilization_count[2]['type'], utilization_count[2]['value']))
+ print(" Utilization count for {} is: {}".format(
+ utilization_count[3]['type'], utilization_count[3]['value']))
+ self.assertLessEqual(len(processors), 32)
+ print()
+ utilization_counter_types = [
+ amdsmi.AmdSmiUtilizationCounterType.FINE_GRAIN_GFX_ACTIVITY,
+ amdsmi.AmdSmiUtilizationCounterType.FINE_GRAIN_MEM_ACTIVITY,
+ amdsmi.AmdSmiUtilizationCounterType.FINE_DECODER_ACTIVITY
+ ]
+ utilization_count = amdsmi.amdsmi_get_utilization_count(
+ processors[i], utilization_counter_types)
+ print(" Timestamp: {}".format(
+ utilization_count[0]['timestamp']))
+ print(" Utilization count for {} is: {}".format(
+ utilization_count[1]['type'], utilization_count[1]['value']))
+ print(" Utilization count for {} is: {}".format(
+ utilization_count[2]['type'], utilization_count[2]['value']))
+ print(" Utilization count for {} is: {}".format(
+ utilization_count[3]['type'], utilization_count[3]['value']))
+ print()
+ self.tearDown()
+
+ def test_vbios_info(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_vbios_info \n")
+ vbios_info = amdsmi.amdsmi_get_gpu_vbios_info(processors[i])
+ print(" vbios_info['part_number'] is: {}".format(
+ vbios_info['part_number']))
+ print(" vbios_info['build_date'] is: {}".format(
+ vbios_info['build_date']))
+ print(" vbios_info['name'] is: {}".format(
+ vbios_info['name']))
+ print(" vbios_info['version'] is: {}".format(
+ vbios_info['version']))
+ print()
+ self.tearDown()
+
+ def test_vendor_name(self):
+ self.setUp()
+ processors = amdsmi.amdsmi_get_processor_handles()
+ self.assertGreaterEqual(len(processors), 1)
+ self.assertLessEqual(len(processors), 32)
+ for i in range(0, len(processors)):
+ bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
+ print("\n\n###Test Processor {}, bdf: {}".format(i, bdf))
+ print("\n###Test amdsmi_get_gpu_vendor_name \n")
+ vendor_name = amdsmi.amdsmi_get_gpu_vendor_name(processors[i])
+ print(" Vendor name is: {}".format(vendor_name))
+ print()
+ self.tearDown()
+
+ # @unittest.SkipTest
def test_walkthrough(self):
- walk_through(self)
+ print("\n\n#######################################################################")
+ print("========> test_walkthrough start <========\n")
+ self.test_asic_kfd_info()
+ self.test_power_info()
+ self.test_vbios_info()
+ self.test_board_info()
+ self.test_fw_info()
+ self.test_driver_info()
+ print("\n========> test_walkthrough end <========")
+ print("#######################################################################\n")
# Unstable on workstation cards
# @handle_exceptions
@@ -486,80 +943,5 @@ class TestAmdSmiPythonInterface(unittest.TestCase):
# # t3.join()
# print("\n========> test_z_gpureset_asicinfo_multithread end <========\n")
-def walk_through(self):
- print("\n###Test amdsmi_get_processor_handles() \n")
- processors = amdsmi.amdsmi_get_processor_handles()
- for i in range(0, len(processors)):
- print("\n###Test amdsmi_get_gpu_device_bdf() | START walk_through | processor i = " + str(i) + "\n")
- bdf = amdsmi.amdsmi_get_gpu_device_bdf(processors[i])
- print("###Test Processor {}, bdf: {} ".format(i, bdf))
- print("\n###Test amdsmi_get_gpu_asic_info \n")
- asic_info = amdsmi.amdsmi_get_gpu_asic_info(processors[i])
- print(" asic_info['market_name'] is: {}".format(
- asic_info['market_name']))
- print(" asic_info['vendor_id'] is: {}".format(
- asic_info['vendor_id']))
- print(" asic_info['vendor_name'] is: {}".format(
- asic_info['vendor_name']))
- print(" asic_info['device_id'] is: {}".format(
- asic_info['device_id']))
- print(" asic_info['rev_id'] is: {}\n".format(
- asic_info['rev_id']))
- print(" asic_info['asic_serial'] is: {}\n".format(
- asic_info['asic_serial']))
- print(" asic_info['oam_id'] is: {}\n".format(
- asic_info['oam_id']))
- print(" asic_info['target_graphics_version'] is: {}\n".format(
- asic_info['target_graphics_version']))
- print("\n###Test amdsmi_get_gpu_kfd_info \n")
- kfd_info = amdsmi.amdsmi_get_gpu_kfd_info(processors[i])
- print(" kfd_info['kfd_id'] is: {}\n".format(
- kfd_info['kfd_id']))
- print(" kfd_info['node_id'] is: {}\n".format(
- kfd_info['node_id']))
- print("###Test amdsmi_get_power_cap_info \n")
- power_info = amdsmi.amdsmi_get_power_cap_info(processors[i])
- print(" power_info['dpm_cap'] is: {}".format(
- power_info['dpm_cap']))
- print(" power_info['power_cap'] is: {}\n".format(
- power_info['power_cap']))
- print("###Test amdsmi_get_gpu_vbios_info \n")
- vbios_info = amdsmi.amdsmi_get_gpu_vbios_info(processors[i])
- print(" vbios_info['part_number'] is: {}".format(
- vbios_info['part_number']))
- print(" vbios_info['build_date'] is: {}".format(
- vbios_info['build_date']))
- print(" vbios_info['name'] is: {}\n".format(
- vbios_info['name']))
- print(" vbios_info['version'] is: {}\n".format(
- vbios_info['version']))
- print("###Test amdsmi_get_gpu_board_info \n")
- board_info = amdsmi.amdsmi_get_gpu_board_info(processors[i])
- print(" board_info['model_number'] is: {}\n".format(
- board_info['model_number']))
- print(" board_info['product_serial'] is: {}\n".format(
- board_info['product_serial']))
- print(" board_info['fru_id'] is: {}\n".format(
- board_info['fru_id']))
- print(" board_info['manufacturer_name'] is: {}\n".format(
- board_info['manufacturer_name']))
- print(" board_info['product_name'] is: {}\n".format(
- board_info['product_name']))
- print("###Test amdsmi_get_fw_info \n")
- fw_info = amdsmi.amdsmi_get_fw_info(processors[i])
- fw_num = len(fw_info['fw_list'])
- self.assertLessEqual(fw_num, len(amdsmi.AmdSmiFwBlock))
- for j in range(0, fw_num):
- fw = fw_info['fw_list'][j]
- if fw['fw_version'] != 0:
- print("FW name: {}".format(
- fw['fw_name'].name))
- print("FW version: {}".format(
- fw['fw_version']))
- print("\n###Test amdsmi_get_gpu_driver_info \n")
- driver_info = amdsmi.amdsmi_get_gpu_driver_info(processors[i])
- print("Driver info: {}".format(driver_info))
- print("\n###Test amdsmi_get_gpu_driver_info() | END walk_through | processor i = " + str(i) + "\n")
-
if __name__ == '__main__':
unittest.main()
\ No newline at end of file