|
|
|
@ -12,6 +12,11 @@
|
|
|
|
|
#define METRICS_SAMPLE_COUNT (METRICS_UPDATE_PERIOD_MS/METRICS_POLLING_PERIOD_MS)
|
|
|
|
|
#define NUM_HBM_INSTANCES 4
|
|
|
|
|
|
|
|
|
|
#define UPDATE_METRIC_AVERAGE(FIELD) do { int value_sum = 0; for (size_t s=0; s < METRICS_SAMPLE_COUNT; s++) { value_sum += metrics_buffer[s].FIELD; } amdgpu_common_metrics.FIELD = value_sum / METRICS_SAMPLE_COUNT; } while(0)
|
|
|
|
|
#define UPDATE_METRIC_AVERAGE_FLOAT(FIELD) do { float value_sum = 0; for (size_t s=0; s < METRICS_SAMPLE_COUNT; s++) { value_sum += metrics_buffer[s].FIELD; } amdgpu_common_metrics.FIELD = value_sum / METRICS_SAMPLE_COUNT; } while(0)
|
|
|
|
|
#define UPDATE_METRIC_MAX(FIELD) do { int cur_max = metrics_buffer[0].FIELD; for (size_t s=1; s < METRICS_SAMPLE_COUNT; s++) { cur_max = MAX(cur_max, metrics_buffer[s].FIELD); }; amdgpu_common_metrics.FIELD = cur_max; } while(0)
|
|
|
|
|
#define UPDATE_METRIC_LAST(FIELD) do { amdgpu_common_metrics.FIELD = metrics_buffer[METRICS_SAMPLE_COUNT - 1].FIELD; } while(0)
|
|
|
|
|
|
|
|
|
|
struct metrics_table_header {
|
|
|
|
|
uint16_t structure_size;
|
|
|
|
|
uint8_t format_revision;
|
|
|
|
@ -172,8 +177,8 @@ struct amdgpu_common_metrics {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
bool amdgpu_verify_metrics(const std::string& path);
|
|
|
|
|
extern void amdgpu_get_metrics();
|
|
|
|
|
void amdgpu_get_metrics();
|
|
|
|
|
extern std::string metrics_path;
|
|
|
|
|
extern void amdgpu_get_instant_metrics(struct amdgpu_common_metrics *metrics);
|
|
|
|
|
extern void amdgpu_metrics_polling_thread();
|
|
|
|
|
extern void amdgpu_get_samples_and_copy(struct amdgpu_common_metrics metrics_buffer[METRICS_SAMPLE_COUNT], bool gpu_load_needs_dividing);
|
|
|
|
|
void amdgpu_get_instant_metrics(struct amdgpu_common_metrics *metrics);
|
|
|
|
|
void amdgpu_metrics_polling_thread();
|
|
|
|
|
void amdgpu_get_samples_and_copy(struct amdgpu_common_metrics metrics_buffer[METRICS_SAMPLE_COUNT], bool &gpu_load_needs_dividing);
|
|
|
|
|