rocm_smi_lib: Fix Refactoring gpu_metrics code
Uses new support for 'gpu_metrics_v1_4' Code changes related to the following: * rsmi gpu_metrics APIs * rsmi gpu_metrics Logs * new data structure fields added in 1.4 * added APIs for all other existing metrics before 1.4 * added support to older metrics; 1.1, and 1.2 * public APIs renamed to start with prefix 'rsmi_dev_metrics_' * Unit tests updated * Examples updated Build changes related to the following: None Change-Id: Ibdaf031be9d916020b4049544dbd725858c7711d Signed-off-by: Oliveira, Daniel <daniel.oliveira@amd.com>
Ta zmiana jest zawarta w:
%! (template.HTML=
Oliveira, Daniel)złożyło 2023-11-10 19:05:09 -06:00
1 rodzic
e5627d2bf1
złożenie
2c8ba4cae9
11 plików zmienionych
+5624
-933
Żadne pliki nie pasują do Twojego wyszukiwania
@@ -100,7 +100,7 @@ void TestGpuMetricsRead::Run(void) {
|
||||
PrintDeviceHeader(i);
|
||||
|
||||
IF_VERB(STANDARD) {
|
||||
std::cout << "\t**GPU METRICS:\n";
|
||||
std::cout << "\t**GPU METRICS: Using static struct (Backwards Compatibility):\n";
|
||||
}
|
||||
rsmi_gpu_metrics_t smu;
|
||||
err = rsmi_dev_gpu_metrics_info_get(i, &smu);
|
||||
@@ -191,4 +191,380 @@ void TestGpuMetricsRead::Run(void) {
|
||||
err = rsmi_dev_gpu_metrics_info_get(i, nullptr);
|
||||
ASSERT_EQ(err, RSMI_STATUS_INVALID_ARGS);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
auto val_ui16 = uint16_t(0);
|
||||
auto val_ui32 = uint32_t(0);
|
||||
auto val_ui64 = uint64_t(0);
|
||||
auto status_code(rsmi_status_t::RSMI_STATUS_SUCCESS);
|
||||
for (uint32_t i = 0; i < num_monitor_devs(); ++i) {
|
||||
PrintDeviceHeader(i);
|
||||
|
||||
auto temp_edge_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_temp_edge_get(i, &temp_edge_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_hotspot_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_temp_hotspot_get(i, &temp_hotspot_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_mem_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_temp_mem_get(i, &temp_mem_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_vrgfx_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_temp_vrgfx_get(i, &temp_vrgfx_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_vrsoc_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_temp_vrsoc_get(i, &temp_vrsoc_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_vrmem_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_temp_vrmem_get(i, &temp_vrmem_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
GPUMetricTempHbm_t temp_hbm_values;
|
||||
status_code = rsmi_dev_metrics_temp_hbm_get(i, &temp_hbm_values);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_curr_socket_power_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_curr_socket_power_get(i, &temp_curr_socket_power_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_energy_accum_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_energy_acc_get(i, &temp_energy_accum_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_avg_socket_power_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_socket_power_get(i, &temp_avg_socket_power_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_gfx_activity_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_gfx_activity_get(i, &temp_avg_gfx_activity_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_avg_umc_activity_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_umc_activity_get(i, &temp_avg_umc_activity_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_avg_mm_activity_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_mm_activity_get(i, &temp_avg_mm_activity_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
GPUMetricVcnActivity_t temp_vcn_values;
|
||||
status_code = rsmi_dev_metrics_vcn_activity_get(i, &temp_vcn_values);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_mem_activity_accum_value = val_ui32;
|
||||
status_code = rsmi_dev_metrics_mem_activity_acc_get(i, &temp_mem_activity_accum_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_gfx_activity_accum_value = val_ui32;
|
||||
status_code = rsmi_dev_metrics_gfx_activity_acc_get(i, &temp_gfx_activity_accum_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_avg_gfx_clock_freq_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_gfx_clock_frequency_get(i, &temp_avg_gfx_clock_freq_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_soc_clock_freq_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_soc_clock_frequency_get(i, &temp_avg_soc_clock_freq_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_uclock_freq_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_uclock_frequency_get(i, &temp_avg_uclock_freq_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_vclock0_freq_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_vclock0_frequency_get(i, &temp_avg_vclock0_freq_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_dclock0_freq_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_dclock0_frequency_get(i, &temp_avg_dclock0_freq_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_vclock1_freq_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_vclock1_frequency_get(i, &temp_avg_vclock1_freq_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_avg_dclock1_freq_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_avg_dclock1_frequency_get(i, &temp_avg_dclock1_freq_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_curr_vclk1_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_curr_vclk1_get(i, &temp_curr_vclk1_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_curr_dclk1_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_curr_dclk1_get(i, &temp_curr_dclk1_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_curr_uclk_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_curr_uclk_get(i, &temp_curr_uclk_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
GPUMetricCurrDClk0_t temp_curr_dclk0_values;
|
||||
status_code = rsmi_dev_metrics_curr_dclk0_get(i, &temp_curr_dclk0_values);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
GPUMetricCurrGfxClk_t temp_curr_gfxclk_values;
|
||||
status_code = rsmi_dev_metrics_curr_gfxclk_get(i, &temp_curr_gfxclk_values);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
GPUMetricCurrSocClk_t temp_curr_socclk_values;
|
||||
status_code = rsmi_dev_metrics_curr_socclk_get(i, &temp_curr_socclk_values);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
GPUMetricCurrVClk0_t temp_curr_vclk0_values;
|
||||
status_code = rsmi_dev_metrics_curr_vclk0_get(i, &temp_curr_vclk0_values);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_indep_throttle_status_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_indep_throttle_status_get(i, &temp_indep_throttle_status_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_throttle_status_value = val_ui32;
|
||||
status_code = rsmi_dev_metrics_throttle_status_get(i, &temp_throttle_status_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_gfxclk_lock_status_value = val_ui32;
|
||||
status_code = rsmi_dev_metrics_gfxclk_lock_status_get(i, &temp_gfxclk_lock_status_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
auto temp_curr_fan_speed_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_curr_fan_speed_get(i, &temp_curr_fan_speed_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_link_width_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_pcie_link_width_get(i, &temp_pcie_link_width_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_pcie_link_speed_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_pcie_link_speed_get(i, &temp_pcie_link_speed_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_pcie_bandwidth_accum_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_pcie_bandwidth_acc_get(i, &temp_pcie_bandwidth_accum_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_bandwidth_inst_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_pcie_bandwidth_inst_get(i, &temp_pcie_bandwidth_inst_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_l0_recov_count_accum_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_pcie_l0_recov_count_acc_get(i, &temp_pcie_l0_recov_count_accum_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_replay_count_accum_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_pcie_replay_count_acc_get(i, &temp_pcie_replay_count_accum_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_pcie_replay_rover_count_accum_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_pcie_replay_rover_count_acc_get(i, &temp_pcie_replay_rover_count_accum_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_xgmi_link_width_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_xgmi_link_width_get(i, &temp_xgmi_link_width_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_xgmi_link_speed_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_xgmi_link_speed_get(i, &temp_xgmi_link_speed_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
GPUMetricXgmiReadDataAcc_t temp_xgmi_read_values;
|
||||
status_code = rsmi_dev_metrics_xgmi_read_data_get(i, &temp_xgmi_read_values);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
GPUMetricXgmiWriteDataAcc_t temp_xgmi_write_values;
|
||||
status_code = rsmi_dev_metrics_xgmi_write_data_get(i, &temp_xgmi_write_values);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_voltage_soc_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_volt_soc_get(i, &temp_voltage_soc_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_voltage_gfx_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_volt_gfx_get(i, &temp_voltage_gfx_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_voltage_mem_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_volt_mem_get(i, &temp_voltage_mem_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
auto temp_system_clock_counter_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_system_clock_counter_get(i, &temp_system_clock_counter_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_firmware_timestamp_value = val_ui64;
|
||||
status_code = rsmi_dev_metrics_firmware_timestamp_get(i, &temp_firmware_timestamp_value);
|
||||
CHK_ERR_ASRT(status_code);
|
||||
|
||||
auto temp_xcd_counter_value = val_ui16;
|
||||
status_code = rsmi_dev_metrics_xcd_counter_get(i, &temp_xcd_counter_value);
|
||||
if (status_code != RSMI_STATUS_NOT_SUPPORTED) {
|
||||
CHK_ERR_ASRT(status_code);
|
||||
}
|
||||
|
||||
IF_VERB(STANDARD) {
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Temperature]" << "\n";
|
||||
std::cout << "\t -> temp_edge(): " << temp_edge_value << "\n";
|
||||
std::cout << "\t -> temp_hotspot(): " << temp_hotspot_value << "\n";
|
||||
std::cout << "\t -> temp_mem(): " << temp_mem_value << "\n";
|
||||
std::cout << "\t -> temp_vrgfx(): " << temp_vrgfx_value << "\n";
|
||||
std::cout << "\t -> temp_vrsoc(): " << temp_vrsoc_value << "\n";
|
||||
std::cout << "\t -> temp_vrmem(): " << temp_vrmem_value << "\n";
|
||||
std::cout << "\t -> temp_hbm(): " << temp_hbm_values << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Power/Energy]" << "\n";
|
||||
std::cout << "\t -> current_socket_power(): " << temp_curr_socket_power_value << "\n";
|
||||
std::cout << "\t -> energy_accum(): " << temp_energy_accum_value << "\n";
|
||||
std::cout << "\t -> average_socket_power(): " << temp_avg_socket_power_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Utilization]" << "\n";
|
||||
std::cout << "\t -> average_gfx_activity(): " << temp_avg_gfx_activity_value << "\n";
|
||||
std::cout << "\t -> average_umc_activity(): " << temp_avg_umc_activity_value << "\n";
|
||||
std::cout << "\t -> average_mm_activity(): " << temp_avg_mm_activity_value << "\n";
|
||||
std::cout << "\t -> vcn_activity(): " << temp_vcn_values << "\n";
|
||||
std::cout << "\t -> mem_activity_accum(): " << temp_mem_activity_accum_value << "\n";
|
||||
std::cout << "\t -> gfx_activity_accum(): " << temp_gfx_activity_accum_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Average Clock]" << "\n";
|
||||
std::cout << "\t -> average_gfx_clock_frequency(): " << temp_avg_gfx_clock_freq_value << "\n";
|
||||
std::cout << "\t -> average_soc_clock_frequency(): " << temp_avg_soc_clock_freq_value << "\n";
|
||||
std::cout << "\t -> average_uclock_frequency(): " << temp_avg_uclock_freq_value << "\n";
|
||||
std::cout << "\t -> average_vclock0_frequency(): " << temp_avg_vclock0_freq_value << "\n";
|
||||
std::cout << "\t -> average_dclock0_frequency(): " << temp_avg_dclock0_freq_value << "\n";
|
||||
std::cout << "\t -> average_vclock1_frequency(): " << temp_avg_vclock1_freq_value << "\n";
|
||||
std::cout << "\t -> average_dclock1_frequency(): " << temp_avg_dclock1_freq_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Current Clock]" << "\n";
|
||||
std::cout << "\t -> current_vclock1(): " << temp_curr_vclk1_value << "\n";
|
||||
std::cout << "\t -> current_dclock1(): " << temp_curr_dclk1_value << "\n";
|
||||
std::cout << "\t -> current_uclock(): " << temp_curr_uclk_value << "\n";
|
||||
std::cout << "\t -> current_dclk0(): " << temp_curr_dclk0_values << "\n";
|
||||
std::cout << "\t -> current_gfxclk(): " << temp_curr_gfxclk_values << "\n";
|
||||
std::cout << "\t -> current_soc_clock(): " << temp_curr_socclk_values << "\n";
|
||||
std::cout << "\t -> current_vclk0(): " << temp_curr_vclk0_values << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Throttle]" << "\n";
|
||||
std::cout << "\t -> indep_throttle_status(): " << temp_indep_throttle_status_value << "\n";
|
||||
std::cout << "\t -> throttle_status(): " << temp_throttle_status_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Gfx Clock Lock]" << "\n";
|
||||
std::cout << "\t -> gfxclk_lock_status(): " << temp_gfxclk_lock_status_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Current Fan Speed]" << "\n";
|
||||
std::cout << "\t -> current_fan_speed(): " << temp_curr_fan_speed_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Link/Bandwidth/Speed]" << "\n";
|
||||
std::cout << "\t -> pcie_link_width(): " << temp_pcie_link_width_value << "\n";
|
||||
std::cout << "\t -> pcie_link_speed(): " << temp_pcie_link_speed_value << "\n";
|
||||
std::cout << "\t -> pcie_bandwidth_accum(): " << temp_pcie_bandwidth_accum_value << "\n";
|
||||
std::cout << "\t -> pcie_bandwidth_inst(): " << temp_pcie_bandwidth_inst_value << "\n";
|
||||
std::cout << "\t -> pcie_l0_recov_count_accum(): " << temp_pcie_l0_recov_count_accum_value << "\n";
|
||||
std::cout << "\t -> pcie_replay_count_accum(): " << temp_pcie_replay_count_accum_value << "\n";
|
||||
std::cout << "\t -> pcie_replay_rollover_count_accum(): " << temp_pcie_replay_rover_count_accum_value << "\n";
|
||||
std::cout << "\t -> xgmi_link_width(): " << temp_xgmi_link_width_value << "\n";
|
||||
std::cout << "\t -> xgmi_link_speed(): " << temp_xgmi_link_speed_value << "\n";
|
||||
std::cout << "\t -> xgmi_read_data(): " << temp_xgmi_read_values << "\n";
|
||||
std::cout << "\t -> xgmi_write_data(): " << temp_xgmi_write_values << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Voltage]" << "\n";
|
||||
std::cout << "\t -> voltage_soc(): " << temp_voltage_soc_value << "\n";
|
||||
std::cout << "\t -> voltage_gfx(): " << temp_voltage_gfx_value << "\n";
|
||||
std::cout << "\t -> voltage_mem(): " << temp_voltage_mem_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[Timestamp]" << "\n";
|
||||
std::cout << "\t -> system_clock_counter(): " << temp_system_clock_counter_value << "\n";
|
||||
std::cout << "\t -> firmware_timestamp(): " << temp_firmware_timestamp_value << "\n";
|
||||
|
||||
std::cout << "\n";
|
||||
std::cout << "\t[XCD CounterVoltage]" << "\n";
|
||||
std::cout << "\t -> xcd_counter(): " << temp_xcd_counter_value << "\n";
|
||||
std::cout << "\n\n";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -167,7 +167,900 @@ void TestMeasureApiExecutionTime::Run(void) {
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
//Test execution time for each individual gpu metric
|
||||
auto val_ui16 = uint16_t(0);
|
||||
auto val_ui32 = uint32_t(0);
|
||||
auto val_ui64 = uint64_t(0);
|
||||
GPUMetricTempHbm_t temp_hbm_values;
|
||||
GPUMetricVcnActivity_t temp_vcn_values;
|
||||
GPUMetricCurrDClk0_t temp_curr_dclk0_values;
|
||||
GPUMetricCurrGfxClk_t temp_curr_gfxclk_values;
|
||||
GPUMetricCurrSocClk_t temp_curr_socclk_values;
|
||||
GPUMetricCurrVClk0_t temp_curr_vclk0_values;
|
||||
GPUMetricXgmiReadDataAcc_t temp_xgmi_read_values;
|
||||
GPUMetricXgmiWriteDataAcc_t temp_xgmi_write_values;
|
||||
auto status_code(rsmi_status_t::RSMI_STATUS_SUCCESS);
|
||||
|
||||
start = std::chrono::high_resolution_clock::now();
|
||||
auto start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_temp_edge_get(dv_ind, &val_ui16);
|
||||
}
|
||||
std::cout.precision(prev);
|
||||
auto stop_api = std::chrono::high_resolution_clock::now();
|
||||
auto duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_temp_edge_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_temp_hotspot_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_temp_hotspot_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_temp_mem_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_temp_mem_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_temp_vrgfx_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_temp_vrgfx_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_temp_vrsoc_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_temp_vrsoc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_temp_vrmem_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_temp_vrmem_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_temp_hbm_get(dv_ind, &temp_hbm_values);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_temp_hbm_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_socket_power_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_socket_power_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_energy_acc_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_energy_acc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_socket_power_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_socket_power_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_gfx_activity_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_gfx_activity_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_umc_activity_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_umc_activity_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_mm_activity_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_mm_activity_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_vcn_activity_get(dv_ind, &temp_vcn_values);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_vcn_activity_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_mem_activity_acc_get(dv_ind, &val_ui32);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_mem_activity_acc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_gfx_activity_acc_get(dv_ind, &val_ui32);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_gfx_activity_acc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_gfx_clock_frequency_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_gfx_clock_frequency_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_soc_clock_frequency_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_soc_clock_frequency_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_uclock_frequency_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_uclock_frequency_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_vclock0_frequency_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_vclock0_frequency_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_dclock0_frequency_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_dclock0_frequency_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_vclock1_frequency_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_vclock1_frequency_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_avg_dclock1_frequency_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_avg_dclock1_frequency_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_vclk1_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_vclk1_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_dclk1_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_dclk1_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_uclk_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_uclk_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_dclk0_get(dv_ind, &temp_curr_dclk0_values);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_dclk0_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_gfxclk_get(dv_ind, &temp_curr_gfxclk_values);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_gfxclk_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_socclk_get(dv_ind, &temp_curr_socclk_values);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_socclk_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_vclk0_get(dv_ind, &temp_curr_vclk0_values);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_vclk0_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_indep_throttle_status_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_indep_throttle_status_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_throttle_status_get(dv_ind, &val_ui32);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_throttle_status_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_gfxclk_lock_status_get(dv_ind, &val_ui32);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_gfxclk_lock_status_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_curr_fan_speed_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_curr_fan_speed_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_pcie_link_width_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_pcie_link_width_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_pcie_link_speed_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_pcie_link_speed_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_pcie_bandwidth_acc_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_pcie_bandwidth_acc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_pcie_bandwidth_inst_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_pcie_bandwidth_inst_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_pcie_l0_recov_count_acc_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_pcie_l0_recov_count_acc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_pcie_replay_count_acc_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_pcie_replay_count_acc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_pcie_replay_rover_count_acc_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_pcie_replay_rover_count_acc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_xgmi_link_width_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_xgmi_link_width_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_xgmi_link_speed_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_xgmi_link_speed_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_xgmi_read_data_get(dv_ind, &temp_xgmi_read_values);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_xgmi_read_data_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_xgmi_write_data_get(dv_ind, &temp_xgmi_write_values);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_xgmi_write_data_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_volt_soc_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_volt_soc_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_volt_gfx_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_volt_gfx_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_volt_mem_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_volt_mem_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_system_clock_counter_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_system_clock_counter_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_firmware_timestamp_get(dv_ind, &val_ui64);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_firmware_timestamp_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
start_api = std::chrono::high_resolution_clock::now();
|
||||
for (int i=0; i < repeat; ++i) {
|
||||
status_code = rsmi_dev_metrics_xcd_counter_get(dv_ind, &val_ui16);
|
||||
}
|
||||
stop_api = std::chrono::high_resolution_clock::now();
|
||||
duration_api = std::chrono::duration_cast<std::chrono::microseconds>(stop_api - start_api);
|
||||
if (status_code != rsmi_status_t::RSMI_STATUS_SUCCESS){
|
||||
skip = true;
|
||||
}
|
||||
if (!skip) {
|
||||
std::cout << "\rsmi_dev_metrics_xcd_counter_get() execution time: "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * repeat);
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "----------------------------------------------------------------------------" << std::endl;
|
||||
|
||||
stop = std::chrono::high_resolution_clock::now();
|
||||
duration = std::chrono::duration_cast<std::chrono::microseconds>(stop - start);
|
||||
if (!skip) {
|
||||
const auto kTOTAL_GPU_METRICS_APIS = uint16_t(52);
|
||||
std::cout << "\rTotal execution time (All APIs): "
|
||||
<< (float(duration_api.count()) / repeat) << " microseconds" << std::endl;
|
||||
EXPECT_LT(duration_api.count(), 500 * (repeat * kTOTAL_GPU_METRICS_APIS));
|
||||
}
|
||||
skip = false;
|
||||
std::cout << "============================================================================" << std::endl;
|
||||
|
||||
}
|
||||
std::cout.precision(prev);
|
||||
|
||||
}
|
||||
@@ -106,7 +106,7 @@ void TestTempRead::Run(void) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t type;
|
||||
uint32_t type(0);
|
||||
for (uint32_t x = 0; x < num_iterations(); ++x) {
|
||||
for (uint32_t i = 0; i < num_monitor_devs(); ++i) {
|
||||
PrintDeviceHeader(i);
|
||||
|
||||
Reference in new issue
Zablokuj użytkownika