hyb-align/profiling.h

133 lines
2.4 KiB
C

/*
Description: profiling related data
Copyright : All right reserved by ICT
Author : Zhang Zhonghai
Date : 2024/04/06
*/
#ifndef PROFILING_H_
#define PROFILING_H_
#include <emmintrin.h>
#include <immintrin.h>
#include <stdint.h>
#define USE_RDTSC 1
#define LIM_THREAD 128
#define LIM_THREAD_PROF_TYPE 128
#define LIM_GLOBAL_PROF_TYPE 128
#define LIM_THREAD_DATA_TYPE 256
#define LIM_GLOBAL_DATA_TYPE 256
#ifdef SHOW_PERF
extern uint64_t proc_freq;
extern uint64_t tprof[LIM_THREAD_PROF_TYPE][LIM_THREAD];
extern uint64_t gprof[LIM_GLOBAL_PROF_TYPE];
#endif
#ifdef SHOW_DATA_PERF
extern int64_t tdat[LIM_THREAD_DATA_TYPE][LIM_THREAD];
extern int64_t t_sd[LIM_THREAD_DATA_TYPE][LIM_THREAD];
extern int64_t gdat[LIM_GLOBAL_DATA_TYPE];
extern int64_t gd1[LIM_GLOBAL_DATA_TYPE];
#endif
#ifdef SHOW_PERF
#if USE_RDTSC
#define PROF_START(tmp_time) const uint64_t prof_tmp_##tmp_time = __rdtsc()
#define PROF_END(result, tmp_time) result += __rdtsc() - prof_tmp_##tmp_time
#else
#define PROF_START(tmp_time) uint64_t prof_tmp_##tmp_time = realtime_msec()
#define PROF_END(result, tmp_time) result += realtime_msec() - prof_tmp_##tmp_time
#endif
#else
#define PROF_START(tmp_time)
#define PROF_END(result, tmp_time)
#endif
// tdat
enum {
TD_SEED_1_0 = 0,
TD_SEED_1_1,
TD_SEED_1_2,
TD_SEED_1_3,
TD_SEED_1_4,
TD_SEED_1_5,
};
// GLOBAL
enum {
G_ALL = 0,
G_PIPELINE,
G_READ,
G_WRITE,
G_COMPUTE,
G_PREPARE,
G_LOAD_IDX,
G_MEM_PREPARE,
G_MEM_KERNEL,
G_MEM_PESTAT,
G_MEM_SAM,
G_KSW_LOOP,
G_KSW_END_LOOP,
G_read_seq
};
// THREAD
enum {
T_SEED_ALL = 0,
T_CHAIN_ALL,
T_ALN_ALL,
T_INS_SIZE,
T_SEED_1,
T_SEED_2,
T_SEED_3,
T_SAL,
T_GEN_CHAIN,
T_FLT_CHAIN,
T_FLT_CHANNED_SEEDS,
T_READ_SA,
T_BSW,
T_BSW_ALL,
T_SAM_MATESW,
T_KSW_ALIGN2,
T_KSW_REVERSE,
T_SAM_REG2ALN,
T_KSW_LOOP,
T_SEED_LEN,
T_SEED_1_ALL,
T_SEED_1_0,
T_SEED_1_1,
T_SEED_1_2,
T_SEED_1_3,
T_SEED_1_3_1,
T_SEED_1_3_2,
T_SEED_1_3_3,
T_SEED_1_3_4,
T_SEED_1_3_5,
T_SEED_1_3_6,
T_SEED_1_3_7,
T_SEED_2_ALL,
T_SEED_2_0,
T_SEED_2_1,
T_SEED_2_2,
T_SEED_2_2_0,
T_SEED_2_2_1,
T_SEED_2_2_2,
T_SEED_2_2_3,
T_SEED_3_ALL,
T_SEED_3_0,
T_SEED_3_1,
T_SEED_3_2,
T_SEED_3_3,
T_SEED_3_3_0,
T_SEED_3_3_1,
T_SEED_3_3_2
};
int display_stats(int);
#endif