# 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).
## 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.
## Pre-Requisites Before Running Tests
Follow our install/build guides to ensure the Python API is installed correctly according to [AMD SMI installation](https://rocm.docs.amd.com/projects/amdsmi/en/latest/).
***Versions***: Python 3.8+
## 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```
The recommended method to run the tests:
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)
```/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
~~~shell
/opt/rocm/share/amd_smi/tests/python_unittest/unit_tests.py -b -v
test_check_res (__main__.TestAmdSmiPythonBDF) ... ok
test_format_bdf (__main__.TestAmdSmiPythonBDF) ... ok
test_parse_bdf (__main__.TestAmdSmiPythonBDF) ... ok
----------------------------------------------------------------------
Ran 3 tests in 0.001s
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```
```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
~~~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
================================================= 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 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
PASSED
====================================================== 6 passed in 0.13s ======================================================
~~~
### 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```
```python3 -m pytest -p no:cacheprovider /opt/rocm/share/amd_smi/tests/python_unittest/integration_test.py -k "not test_gpu_performance" -v```
ex.
Click for example: Pytest Run: Verbose on + Filter (or exclude) a Test
~~~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::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%]
=============================================== 5 passed, 1 deselected in 0.09s ===============================================
~~~
## Run Tests
### Example Runs
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
----------------------------------------------------------------------
Ran 6 tests in 0.077s
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
integration_test.py::TestAmdSmiInit::test_init PASSED
integration_test.py::TestAmdSmiPythonInterface::test_bad_page_info ###Test amdsmi_get_gpu_bad_page_info
**** [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
###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: 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
###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
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
----------------------------------------------------------------------
Ran 1 test in 0.009s
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
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%]
===================================== 6 passed in 0.11s ======================================
```