/* Description: profiling related data Copyright : All right reserved by ICT Author : Zhang Zhonghai Date : 2024/04/06 */ #ifndef PROFILING_H_ #define PROFILING_H_ #include #include #include #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, TD_SEED_CNT, TD_ALIGN_1_CNT, TD_ALIGN_2_CNT, TD_MSW_CNT, }; // gdat enum { GD_READ_CNT = 0, }; // GLOBAL enum { G_ALL = 0, G_LOAD_IDX, G_PIPELINE, G_READ, G_COMPUTE, G_WRITE, G_SEED_AND_EXT, G_MEM_PESTAT, G_GEN_SAM, G_UNCOMPRESS, G_gather_matesw_task, G_calc_matesw, G_get_matesw_data, G_gen_sam, G_update_stats_cache, }; // THREAD enum { T_SEEDING = 0, T_GEN_SEQ, T_SMEM, T_SEED_1, T_SEED_2, T_SEED_3, T_CHAIN, T_GEN_CHAIN, T_SA, T_FLT_CHAIN, T_FLT_CHANNED_SEEDS, T_EXTENSION, T_MEM_CHAIN2ALN, T_BSW_EXT, T_SORT_DEDUP, T_GEN_SAM, T_MEM_REG2ALN, T_MSW_1, T_MSW_2, T_MSW_GET_REF, T_MSW_PACK_SEQ, T_CHAIN_ALL, T_ALN_ALL, T_INS_SIZE, T_SAL, T_READ_SA, T_BSW, T_BSW_ALL, T_SAM_MATESW, T_KSW_ALIGN2, T_KSW_REVERSE, T_SAM_REG2ALN, T_SAM_ALN2SAM, T_SAM_GEN_ALT, 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