diff --git a/projects/amdsmi/include/rocm_smi/rocm_smi.h b/projects/amdsmi/include/rocm_smi/rocm_smi.h index 939be4b623..f6dc922747 100755 --- a/projects/amdsmi/include/rocm_smi/rocm_smi.h +++ b/projects/amdsmi/include/rocm_smi/rocm_smi.h @@ -838,6 +838,9 @@ struct metrics_table_header_t { // This should match NUM_HBM_INSTANCES #define RSMI_NUM_HBM_INSTANCES 4 +// Unit conversion factor for HBM temperatures +#define CENTRIGRADE_TO_MILLI_CENTIGRADE 1000 + typedef struct { // TODO(amd) Doxygen documents /// \cond Ignore in docs. diff --git a/projects/amdsmi/src/rocm_smi.cc b/projects/amdsmi/src/rocm_smi.cc index 1f26c0ba40..9d24744c70 100755 --- a/projects/amdsmi/src/rocm_smi.cc +++ b/projects/amdsmi/src/rocm_smi.cc @@ -2062,13 +2062,17 @@ rsmi_dev_temp_metric_get(uint32_t dv_ind, uint32_t sensor_type, } if (sensor_type == RSMI_TEMP_TYPE_HBM_0) { - *temperature = gpu_metrics.temperature_hbm[0]; + *temperature = gpu_metrics.temperature_hbm[0] * + CENTRIGRADE_TO_MILLI_CENTIGRADE; } else if (sensor_type == RSMI_TEMP_TYPE_HBM_1) { - *temperature = gpu_metrics.temperature_hbm[1]; + *temperature = gpu_metrics.temperature_hbm[1] * + CENTRIGRADE_TO_MILLI_CENTIGRADE; } else if (sensor_type == RSMI_TEMP_TYPE_HBM_2) { - *temperature = gpu_metrics.temperature_hbm[2]; + *temperature = gpu_metrics.temperature_hbm[2] * + CENTRIGRADE_TO_MILLI_CENTIGRADE; } else if (sensor_type == RSMI_TEMP_TYPE_HBM_3) { - *temperature = gpu_metrics.temperature_hbm[3]; + *temperature = gpu_metrics.temperature_hbm[3] * + CENTRIGRADE_TO_MILLI_CENTIGRADE; } else { return RSMI_STATUS_NOT_SUPPORTED; }