2025-11-07 21:31:11 +08:00
|
|
|
/*
|
|
|
|
|
Description: profiling related data
|
|
|
|
|
|
|
|
|
|
Copyright : All right reserved by ICT
|
|
|
|
|
|
|
|
|
|
Author : Zhang Zhonghai
|
|
|
|
|
Date : 2024/04/06
|
|
|
|
|
*/
|
|
|
|
|
#ifndef PROFILING_H_
|
|
|
|
|
#define PROFILING_H_
|
|
|
|
|
|
2025-11-16 01:37:21 +08:00
|
|
|
#include <emmintrin.h>
|
|
|
|
|
#include <immintrin.h>
|
2025-11-07 21:31:11 +08:00
|
|
|
#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,
|
2026-01-13 01:15:33 +08:00
|
|
|
TD_SEED_CNT,
|
|
|
|
|
TD_MATESW_CNT,
|
|
|
|
|
TD_ALIGN_1_CNT,
|
|
|
|
|
TD_ALIGN_2_CNT,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// gdat
|
|
|
|
|
enum {
|
|
|
|
|
GD_READ_CNT = 0,
|
2025-11-07 21:31:11 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// GLOBAL
|
|
|
|
|
enum {
|
|
|
|
|
G_ALL = 0,
|
2025-12-04 17:04:11 +08:00
|
|
|
G_LOAD_IDX,
|
2025-11-07 21:31:11 +08:00
|
|
|
G_PIPELINE,
|
|
|
|
|
G_READ,
|
|
|
|
|
G_COMPUTE,
|
2025-12-04 17:04:11 +08:00
|
|
|
G_WRITE,
|
|
|
|
|
G_SEED_AND_EXT,
|
2025-11-07 21:31:11 +08:00
|
|
|
G_MEM_PESTAT,
|
2025-12-04 17:04:11 +08:00
|
|
|
G_GEN_SAM,
|
|
|
|
|
G_UNCOMPRESS
|
2025-11-07 21:31:11 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// THREAD
|
|
|
|
|
enum {
|
2025-12-04 17:04:11 +08:00
|
|
|
T_SEEDING = 0,
|
|
|
|
|
T_GEN_SEQ,
|
|
|
|
|
T_SMEM,
|
2025-11-07 21:31:11 +08:00
|
|
|
T_SEED_1,
|
|
|
|
|
T_SEED_2,
|
|
|
|
|
T_SEED_3,
|
2025-12-04 17:04:11 +08:00
|
|
|
T_CHAIN,
|
2025-11-07 21:31:11 +08:00
|
|
|
T_GEN_CHAIN,
|
2025-12-04 17:04:11 +08:00
|
|
|
T_SA,
|
2025-11-07 21:31:11 +08:00
|
|
|
T_FLT_CHAIN,
|
|
|
|
|
T_FLT_CHANNED_SEEDS,
|
2025-12-04 17:04:11 +08:00
|
|
|
T_EXTENSION,
|
|
|
|
|
T_MEM_CHAIN2ALN,
|
|
|
|
|
T_BSW_EXT,
|
|
|
|
|
T_SORT_DEDUP,
|
|
|
|
|
T_GEN_SAM,
|
|
|
|
|
T_MEM_REG2ALN,
|
|
|
|
|
|
|
|
|
|
T_CHAIN_ALL,
|
|
|
|
|
T_ALN_ALL,
|
|
|
|
|
T_INS_SIZE,
|
|
|
|
|
T_SAL,
|
2025-11-07 21:31:11 +08:00
|
|
|
T_READ_SA,
|
|
|
|
|
T_BSW,
|
|
|
|
|
T_BSW_ALL,
|
|
|
|
|
T_SAM_MATESW,
|
|
|
|
|
T_KSW_ALIGN2,
|
|
|
|
|
T_KSW_REVERSE,
|
|
|
|
|
T_SAM_REG2ALN,
|
2026-01-13 01:15:33 +08:00
|
|
|
T_SAM_ALN2SAM,
|
|
|
|
|
T_SAM_GEN_ALT,
|
2025-11-07 21:31:11 +08:00
|
|
|
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,
|
2026-01-13 01:15:33 +08:00
|
|
|
T_SEED_3_3_2,
|
|
|
|
|
T_MSW_1,
|
|
|
|
|
T_MSW_2,
|
2025-11-07 21:31:11 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
int display_stats(int);
|
|
|
|
|
|
|
|
|
|
#endif
|