From db8d076b35eb242e55d7aa57357e4c8fcea0b569 Mon Sep 17 00:00:00 2001 From: "Bill(Shuzhou) Liu" Date: Wed, 14 Apr 2021 16:04:46 -0400 Subject: [PATCH] Unit test for energy accumulator counter Add a few unit tests for energy accumulator counter. Change-Id: Ib78a67e29465de9c14e6e934c5d62ec64de66d8a [ROCm/rocm_smi_lib commit: 392d13e31821b2179656e77fca702dbad3746018] --- .../functional/metrics_counter_read.cc | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/projects/rocm-smi-lib/tests/rocm_smi_test/functional/metrics_counter_read.cc b/projects/rocm-smi-lib/tests/rocm_smi_test/functional/metrics_counter_read.cc index 2d675ffb5f..e8af7c79e6 100644 --- a/projects/rocm-smi-lib/tests/rocm_smi_test/functional/metrics_counter_read.cc +++ b/projects/rocm-smi-lib/tests/rocm_smi_test/functional/metrics_counter_read.cc @@ -99,7 +99,35 @@ void TestMetricsCounterRead::Run(void) { for (uint32_t i = 0; i < num_monitor_devs(); ++i) { PrintDeviceHeader(i); + IF_VERB(STANDARD) { + std::cout << "\t**GPU METRICS ENERGY COUNTER:\n"; + } + + uint64_t power; uint64_t timestamp; + err = rsmi_dev_energy_count_get(i, &power, ×tamp); + if (err != RSMI_STATUS_SUCCESS) { + if (err == RSMI_STATUS_NOT_SUPPORTED) { + IF_VERB(STANDARD) { + std::cout << "\t**" << + "Not supported on this machine" << std::endl; + return; + } + } + } else { + CHK_ERR_ASRT(err); + IF_VERB(STANDARD) { + std::cout << std::dec << "power=" + << power << '\n'; + std::cout << std::dec << "timestamp=" + << timestamp << '\n'; + } + } + + // Verify api support checking functionality is working + err = rsmi_dev_energy_count_get(i, nullptr, nullptr); + ASSERT_EQ(err, RSMI_STATUS_INVALID_ARGS); + // Coarse Grain counters rsmi_utilization_counter_t utilization_counters[2]; utilization_counters[0].type = RSMI_COARSE_GRAIN_GFX_ACTIVITY;