96 lines
2.5 KiB
C
Executable File
96 lines
2.5 KiB
C
Executable File
/*
|
|
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
|