Finalize the rocprofiler fields

Change-Id: I4ed1c4309f21bdcc7281d911663036caf5947182
Signed-off-by: Galantsev, Dmitrii <dmitrii.galantsev@amd.com>
This commit is contained in:
Galantsev, Dmitrii
2024-06-04 19:37:42 -05:00
parent e11afbf60f
commit 07c414af5e
5 changed files with 79 additions and 57 deletions
+9 -2
View File
@@ -24,8 +24,10 @@ THE SOFTWARE.
#define RDC_MODULES_RDC_ROCP_RDCROCPBASE_H_
#include <rocprofiler/rocprofiler.h>
#include <chrono>
#include <cstdint>
#include <map>
#include <unordered_set>
#include <vector>
#include "rdc/rdc.h"
@@ -69,12 +71,17 @@ class RdcRocpBase {
std::map<const char*, double> metric_to_value = {};
// array of features for each device
std::map<uint32_t, rocprofiler_feature_t> feature;
// rocprofiler_feature_t features[dev_count][features_count] = {};
void read_feature(rocprofiler_t* context, const unsigned feature_count);
void read_feature(rocprofiler_t* context, const unsigned feature_count, uint32_t gpu_index);
int run_profiler(uint32_t gpu_index, rdc_field_t field);
std::vector<hsa_queue_t*> queues;
hsa_agent_arr_t agent_arr = {};
std::map<rdc_field_t, const char*> field_to_metric = {};
// these fields must be divided by time passed
std::unordered_set<rdc_field_t> eval_fields = {
RDC_FI_PROF_EVAL_MEM_R_BW, RDC_FI_PROF_EVAL_MEM_W_BW, RDC_FI_PROF_EVAL_FLOPS_16,
RDC_FI_PROF_EVAL_FLOPS_32, RDC_FI_PROF_EVAL_FLOPS_64,
};
std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> start_time;
/**
* @brief Convert from rocmtools status into RDC status