ss928_framework/svp/common/sample_common_svp_npu.h

96 lines
2.5 KiB
C
Raw Permalink Normal View History

2024-12-16 13:31:45 +08:00
/*
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