94 lines
2.3 KiB
C
94 lines
2.3 KiB
C
|
||
enum {
|
||
GSHADOW,
|
||
GREMOTE,
|
||
GREDISTRIBUTION,
|
||
GREGIONIN,
|
||
GNUMOP
|
||
};
|
||
|
||
struct GpuOpTime { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> gpu
|
||
double gpu_to_cpu;
|
||
double cpu_to_gpu;
|
||
double gpu_to_gpu;
|
||
};
|
||
|
||
struct ThreadTime { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
double user_time;
|
||
double sys_time;
|
||
};
|
||
|
||
struct GpuMetric {
|
||
unsigned int countMeasures; /**< количество измерений характеристики */
|
||
double timeProductive; /**< полезное время */
|
||
double timeLost; /**< потерянное время */
|
||
|
||
// -- Агрегированные значения (для box-диаграммы)
|
||
double min; /**< минимальное значение */
|
||
double mean; /**< среднее */
|
||
double max; /**< максимальное значение */
|
||
double sum; /**< сумма значений */
|
||
};
|
||
|
||
struct GpuTime { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> gpu
|
||
char * gpu_name;
|
||
double prod_time;
|
||
double lost_time;
|
||
// double kernel_exec;
|
||
// double loop_exec;
|
||
// double get_actual;
|
||
// double data_reorg;
|
||
// double reduction;
|
||
// double gpu_runtime_compilation;
|
||
// double gpu_to_cpu;
|
||
// double cpu_to_gpu;
|
||
// double gpu_to_gpu;
|
||
// struct GpuOpTime op_times[GNUMOP];
|
||
struct GpuMetric metrics[DVMH_STAT_METRIC_FORCE_INT];
|
||
};
|
||
|
||
struct ColOp { //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
long ncall;
|
||
double comm;
|
||
double synch;
|
||
double real_comm;
|
||
double time_var;
|
||
double overlap;
|
||
};
|
||
|
||
struct OpGrp {
|
||
double calls;
|
||
double lost_time;
|
||
double prod;
|
||
};
|
||
|
||
struct ProcTimes {
|
||
double prod_cpu;
|
||
double prod_sys;
|
||
double prod_io;
|
||
double exec_time;
|
||
double sys_time;
|
||
double real_comm;
|
||
double lost_time;
|
||
double insuf_user;
|
||
double insuf_sys;
|
||
double comm;
|
||
double idle;
|
||
double load_imb;
|
||
double synch;
|
||
double time_var;
|
||
double overlap;
|
||
double thr_user_time;
|
||
double thr_sys_time;
|
||
double gpu_time_prod;
|
||
double gpu_time_lost;
|
||
unsigned long num_threads;
|
||
struct ThreadTime * th_times;
|
||
unsigned long num_gpu;
|
||
struct GpuTime *gpu_times;
|
||
struct ColOp col_op[4];//4~RED
|
||
};
|
||
|
||
typedef struct OpGrp OpGrp;
|
||
typedef struct ProcTimes ProcTimes;
|