Fix GPU metric tests & cleanup test output
- CLI: Added average_power to display if current_power is empty
- CLI: fixed PCIe current_speed not displaying GT/s
- ROCm API: 1.3 & 1.4
-> commented out setting avg clocks to current clock value
(leave as max uint value, not re-assign; these are not same values)
-> commented out setting current_socket_power = average_power
(leave as max uint value, not re-assign; these are not same values)
-> For all non-array clocks, placed value in first
array[0] to keep outputs consistent
(helps xcd calc)
- ROCm API: rsmi_dev_metrics_curr_gfxclk_get fixed to count
XCDs using backwards compatible rsmi_dev_gpu_metrics_info_get.
- ^ Fixes XCD count overall + assigning clock[0] in 1.3 to curr
freq
- AMD SMI API: amdsmi_get_gpu_metrics_info() initialized all new
1.5 metric values for all lower metric tables
- AMD SMI API: wrapper -> fix is here + returns correct AMD SMI return
- AMD SMI API: wrapper -> now displays amdsmi return status as
string in logs
- gpu_metrics_read.cc -> now has better overview of backwards
compatible output
- gpu_metrics_read.cc -> Cleaned up output, added units, and
display all array output
Signed-off-by: Charis Poag <Charis.Poag@amd.com>
Change-Id: Id5b60ded5b0ed2cdf0f96ca72c79e356f0410960
[ROCm/amdsmi commit: 5ff5af0b5a]
This commit is contained in:
@@ -116,7 +116,13 @@ amdsmi_status_t rsmi_wrapper(F && f,
|
||||
uint32_t gpu_index = gpu_device->get_gpu_id();
|
||||
auto rstatus = std::forward<F>(f)(gpu_index,
|
||||
std::forward<Args>(args)...);
|
||||
return amd::smi::rsmi_to_amdsmi_status(rstatus);
|
||||
r = amd::smi::rsmi_to_amdsmi_status(rstatus);
|
||||
std::ostringstream ss;
|
||||
const char *status_string;
|
||||
amdsmi_status_code_to_string(r, &status_string);
|
||||
ss << __PRETTY_FUNCTION__ << " | returning status = " << status_string;
|
||||
LOG_INFO(ss);
|
||||
return r;
|
||||
}
|
||||
|
||||
amdsmi_status_t
|
||||
@@ -1098,7 +1104,21 @@ amdsmi_status_t amdsmi_get_gpu_metrics_info(
|
||||
(sizeof(pgpu_metrics->jpeg_activity) /
|
||||
sizeof(pgpu_metrics->jpeg_activity[0])),
|
||||
std::numeric_limits<uint16_t>::max());
|
||||
pgpu_metrics->mem_bandwidth_acc =
|
||||
static_cast<uint64_t>(std::numeric_limits<uint64_t>::max());
|
||||
pgpu_metrics->mem_max_bandwidth =
|
||||
static_cast<uint32_t>(std::numeric_limits<uint32_t>::max());
|
||||
pgpu_metrics->pcie_nak_sent_count_acc =
|
||||
static_cast<uint32_t>(std::numeric_limits<uint32_t>::max());
|
||||
pgpu_metrics->pcie_nak_rcvd_count_acc =
|
||||
static_cast<uint32_t>(std::numeric_limits<uint32_t>::max());
|
||||
}
|
||||
std::ostringstream ss;
|
||||
const char *status_string;
|
||||
amdsmi_status_code_to_string(ret, &status_string);
|
||||
ss << __PRETTY_FUNCTION__
|
||||
<< " | END, returning status = " << status_string;
|
||||
LOG_TRACE(ss);
|
||||
// END: REMOVE WHATS ABOVE ME
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user