/* Copyright (c), 2001-2022, Shenshu Tech. Co., Ltd. */ #ifndef SAMPLE_COMMON_SVP_NPU_H #define SAMPLE_COMMON_SVP_NPU_H #include "ot_type.h" #include "svp_acl.h" #include "svp_acl_mdl.h" #define MACRO_SVP_NPU_MAX_THREAD_NUM 16 #define MACRO_SVP_NPU_MAX_TASK_NUM 16 #define MACRO_SVP_NPU_MAX_MODEL_NUM 1 #define MACRO_SVP_NPU_EXTRA_INPUT_NUM 2 #define MACRO_SVP_NPU_BYTE_BIT_NUM 8 #define MACRO_SVP_NPU_SHOW_TOP_NUM 5 #define MACRO_SVP_NPU_MAX_NAME_LEN 32 #define MACRO_SVP_NPU_MAX_MEM_SIZE 0xFFFFFFFF #define MACRO_SVP_NPU_RECT_LEFT_TOP 0 #define MACRO_SVP_NPU_RECT_RIGHT_TOP 1 #define MACRO_SVP_NPU_RECT_RIGHT_BOTTOM 2 #define MACRO_SVP_NPU_RECT_LEFT_BOTTOM 3 #define MACRO_SVP_NPU_THRESHOLD_NUM 4 #define MACRO_SVP_NPU_RFCN_THRESHOLD_NUM 2 #define MACRO_SVP_NPU_AICPU_WAIT_TIME 1000 #define MACRO_SVP_NPU_RECT_COLOR 0x0000FF00 #define MACRO_SVP_NPU_MILLIC_SEC 20000 #define MACRO_SVP_NPU_IMG_THREE_CHN 3 #define MACRO_SVP_NPU_DOUBLE 2 typedef struct { td_u32 model_id; td_bool is_load_flag; td_ulong model_mem_size; td_void *model_mem_ptr; svp_acl_mdl_desc *model_desc; size_t input_num; size_t output_num; size_t dynamic_batch_idx; } struct_svp_npu_model_info; typedef struct { td_u32 max_batch_num; td_u32 dynamic_batch_num; td_u32 total_t; td_bool is_cached; td_u32 model_idx; } struct_svp_npu_task_cfg; typedef struct { struct_svp_npu_task_cfg cfg; svp_acl_mdl_dataset *input_dataset; svp_acl_mdl_dataset *output_dataset; td_void *task_buf_ptr; size_t task_buf_size; size_t task_buf_stride; td_void *work_buf_ptr; size_t work_buf_size; size_t work_buf_stride; } struct_svp_npu_task_info; typedef struct { td_void *work_buf_ptr; size_t work_buf_size; size_t work_buf_stride; } struct_svp_npu_shared_work_buf; typedef struct { td_float score; td_u32 class_id; } struct_svp_npu_top_n_result; typedef struct { td_char *num_name; td_char *roi_name; td_bool has_background; td_u32 roi_offset; } struct_svp_npu_detection_info; typedef struct { td_float nms_threshold; td_float score_threshold; td_float min_height; td_float min_width; td_char *name; } struct_svp_npu_threshold; /* acl init */ td_s32 libapi_common_svp_npu_acl_init(const td_char *acl_config_path, td_s32 dev_id); /* acl deinit */ td_void libapi_common_svp_npu_acl_deinit(td_s32 dev_id); #endif