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