205 lines
5.7 KiB
C
205 lines
5.7 KiB
C
#ifndef XMEDIA_CL_COMMON_H
|
|
#define XMEDIA_CL_COMMON_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define XMEDIA_CL_MAX_DIMS_NUM 8
|
|
#define XMEDIA_CL_BATCH_NUM 8
|
|
|
|
/*xmedia_cl_job_schedule_prio_flags */
|
|
#define XMEDIA_CL_JOB_SCHEDULE_PRIO_MIN 0
|
|
#define XMEDIA_CL_JOB_SCHEDULE_PRIO_MEDIUM 1
|
|
#define XMEDIA_CL_JOB_SCHEDULE_PRIO_HIGH 2
|
|
#define XMEDIA_CL_JOB_SCHEDULE_PRIO_MAX 3
|
|
|
|
/*xmedia_cl_error_code*/
|
|
#define XMEDIA_CL_SUCCESS 0
|
|
#define XMEDIA_CL_OUT_OF_HOST_MEMORY -6
|
|
#define XMEDIA_CL_INVALID_VALUE -30
|
|
#define XMEDIA_CL_INVALID_DEVICE_TYPE -31
|
|
#define XMEDIA_CL_INVALID_PLATFORM -32
|
|
#define XMEDIA_CL_INVALID_DEVICE -33
|
|
#define XMEDIA_CL_INVALID_CONTEXT -34
|
|
#define XMEDIA_CL_INVALID_COMMAND_QUEUE -36
|
|
#define XMEDIA_CL_INVALID_HOST_PTR -37
|
|
#define XMEDIA_CL_INVALID_MEM_OBJECT -38
|
|
#define XMEDIA_CL_INVALID_BINARY -42
|
|
#define XMEDIA_CL_INVALID_PROGRAM -44
|
|
#define XMEDIA_CL_INVALID_PROGRAM_EXECUTABLE -45
|
|
#define XMEDIA_CL_INVALID_KERNEL_NAME -46
|
|
#define XMEDIA_CL_INVALID_KERNEL -48
|
|
#define XMEDIA_CL_INVALID_ARG_INDEX -49
|
|
#define XMEDIA_CL_INVALID_ARG_VALUE -50
|
|
#define XMEDIA_CL_INVALID_ARG_SIZE -51
|
|
#define XMEDIA_CL_INVALID_KERNEL_ARGS -52
|
|
#define XMEDIA_CL_WAIT_EVENT_FAILED -56
|
|
#define XMEDIA_CL_INVALID_EVENT_WAIT_LIST -57
|
|
#define XMEDIA_CL_INVALID_EVENT -58
|
|
#define XMEDIA_CL_INVALID_OPERATION -59
|
|
#define XMEDIA_CL_INVALID_UNINIT -60
|
|
#define XMEDIA_CL_INVALID_BUFFER_SIZE -61
|
|
#define XMEDIA_CL_INVALID_USER_FUNC -62
|
|
#define XMEDIA_CL_ALREADY_INIT -63
|
|
#define XMEDIA_CL_INVALID_MODEL -64
|
|
#define XMEDIA_CL_READ_MODEL_FAIL -65
|
|
#define XMEDIA_CL_INSUFFICIENT_SIZE -66
|
|
#define XMEDIA_CL_CALL_INTERFUNC_ERR -67
|
|
#define XMEDIA_CL_ERROR_MODEL_TYPE -68
|
|
#define XMEDIA_CL_ERROR_ADDR_ALIGN -69
|
|
#define XMEDIA_CL_UNSUPPORT_DYNAMIC_OUTPUT -70
|
|
#define XMEDIA_CL_MODEL_DECOMPRESS_FAIL -71
|
|
#define XMEDIA_CL_ERROR_COMPRESS_TYPE -72
|
|
#define XMEDIA_CL_ERROR_PROC_TYPE -73
|
|
#define XMEDIA_CL_OUT_OF_MAX_BATCH -74
|
|
#define XMEDIA_CL_NOT_FIND_FILE -75
|
|
#define XMEDIA_CL_CONTEXT_WORKSPACE_FAIL -76
|
|
#define XMEDIA_CL_PRIVATE_DATA_NULL -77
|
|
#define XMEDIA_CL_PRIVATE_DATA_SIZE_ERROR -78
|
|
#define XMEDIA_CL_UNSUPPORT_INFO_TYPE -79
|
|
|
|
typedef char xmedia_cl_s8;
|
|
typedef unsigned char xmedia_cl_u8;
|
|
typedef signed int xmedia_cl_s32;
|
|
typedef unsigned int xmedia_cl_u32;
|
|
typedef signed long long xmedia_cl_s64;
|
|
typedef unsigned long long xmedia_cl_u64;
|
|
typedef signed short xmedia_cl_s16;
|
|
typedef unsigned short xmedia_cl_u16;
|
|
typedef float xmedia_cl_float;
|
|
typedef double xmedia_cl_double;
|
|
typedef void xmedia_cl_void;
|
|
|
|
typedef enum xmedia_cl_device_type {
|
|
XMEDIA_CL_DEVICE_CPU = 0,
|
|
XMEDIA_CL_DEVICE_NPU = 1,
|
|
XMEDIA_CL_DEVICE_ALL = 2,
|
|
} xmedia_cl_device_type_e;
|
|
|
|
typedef enum tensor_type {
|
|
XMEDIA_CL_TENSOR_INPUT = 0,
|
|
XMEDIA_CL_TENSOR_CONST,
|
|
XMEDIA_CL_TENSOR_OUTPUT,
|
|
XMEDIA_CL_TENSOR_WORKSPACE,
|
|
UNKNOWN
|
|
} xmedia_cl_tensor_type_e;
|
|
|
|
typedef enum xmedia_cl_status {
|
|
XMEDIA_CL_QUEUED = 0,
|
|
XMEDIA_CL_SUBMITTED = 1,
|
|
XMEDIA_CL_RUNNING = 2,
|
|
XMEDIA_CL_COMPLETED = 3,
|
|
XMEDIA_CL_FAILED = 4,
|
|
} xmedia_cl_status_e;
|
|
|
|
typedef enum {
|
|
XMEDIA_CL_INT8 = 0,
|
|
XMEDIA_CL_UINT8 = 1,
|
|
XMEDIA_CL_INT16 = 2,
|
|
XMEDIA_CL_UINT16 = 3,
|
|
XMEDIA_CL_FP16 = 4,
|
|
XMEDIA_CL_INT32 = 5,
|
|
XMEDIA_CL_FP32 = 6,
|
|
XMEDIA_CL_INT4 = 7,
|
|
XMEDIA_CL_UINT12 = 8,
|
|
XMEDIA_CL_UINT10 = 9,
|
|
XMEDIA_CL_DATA_TYPE_END
|
|
} xmedia_cl_data_type;
|
|
|
|
typedef enum {
|
|
XMEDIA_CL_FORMAT_RGB = 0,
|
|
XMEDIA_CL_FORMAT_RGrGbB,
|
|
XMEDIA_CL_FORMAT_BGbGrR,
|
|
XMEDIA_CL_FORMAT_GrRBGb = 3,
|
|
XMEDIA_CL_FORMAT_GbBRGr,
|
|
XMEDIA_CL_FORMAT_YUV,
|
|
XMEDIA_CL_FORMAT_YVU = 6,
|
|
} xmedia_cl_data_format;
|
|
|
|
typedef enum {
|
|
XMEDIA_CL_WORKSPACE = 0,
|
|
XMEDIA_CL_WORKSPACE_INPUT = 1,
|
|
XMEDIA_CL_WORKSPACE_OUTPUT = 2,
|
|
XMEDIA_CL_WORKSPACE_INPUT_OUTPUT = 3,
|
|
} xmedia_cl_memory_reuse_type;
|
|
|
|
typedef enum {
|
|
XMEDIA_CL_PROFILING_TYPE_NORMAL = 0,
|
|
XMEDIA_CL_PROFILING_TYPE_SIMPLE = 1,
|
|
} xmedia_cl_profiling_type_e;
|
|
|
|
typedef enum {
|
|
XMEDIA_CL_PROFILING_OFF = 0,
|
|
XMEDIA_CL_PROFILING_ON = 1,
|
|
} xmedia_cl_profiling_flag_e;
|
|
|
|
typedef struct _xmedia_cl_profiling_params {
|
|
xmedia_cl_profiling_type_e profiling_type;
|
|
xmedia_cl_profiling_flag_e profiling_flag;
|
|
} xmedia_cl_profiling_params;
|
|
|
|
typedef struct _xmedia_cl_tensor_shape {
|
|
xmedia_cl_u32 ndims;
|
|
xmedia_cl_u32 dims[XMEDIA_CL_MAX_DIMS_NUM];
|
|
xmedia_cl_u32 pch[XMEDIA_CL_MAX_DIMS_NUM];
|
|
xmedia_cl_data_type type;
|
|
} xmedia_cl_tensor_shape;
|
|
|
|
typedef struct _xmedia_cl_tensor_quant {
|
|
xmedia_cl_float scale;
|
|
xmedia_cl_s32 zp;
|
|
} xmedia_cl_tensor_quant;
|
|
|
|
typedef struct _xmedia_cl_tensor_list {
|
|
xmedia_cl_u32 num;
|
|
xmedia_cl_u32 *id;
|
|
} xmedia_cl_tensor_list;
|
|
|
|
typedef struct _xmedia_cl_tensor_batch {
|
|
xmedia_cl_u32 batch_count;
|
|
xmedia_cl_u32 batch[XMEDIA_CL_BATCH_NUM];
|
|
} xmedia_cl_tensor_batch;
|
|
|
|
typedef struct _xmedia_cl_tensor {
|
|
xmedia_cl_u32 tensor_id;
|
|
void *addr;
|
|
xmedia_cl_tensor_shape shape;
|
|
xmedia_cl_tensor_quant quant;
|
|
xmedia_cl_u32 size;
|
|
xmedia_cl_s8 *name;
|
|
} xmedia_cl_tensor;
|
|
|
|
typedef struct _xmedia_cl_tensor_info_inout {
|
|
xmedia_cl_u32 num;
|
|
xmedia_cl_tensor *tensor;
|
|
xmedia_cl_tensor_batch *tensor_batch;
|
|
xmedia_cl_u32 *current_batch;
|
|
} xmedia_cl_tensor_info_inout;
|
|
|
|
typedef struct _xmedia_cl_mem_info {
|
|
xmedia_cl_u32 worksize;
|
|
xmedia_cl_u32 weightsize;
|
|
xmedia_cl_u32 inputsize;
|
|
xmedia_cl_u32 outputsize;
|
|
xmedia_cl_u32 codesize;
|
|
xmedia_cl_u32 memory_reuse_type;
|
|
xmedia_cl_u32 private_data_size;
|
|
} xmedia_cl_mem_info;
|
|
|
|
typedef enum {
|
|
XMEDIA_CL_MEM_INFO = 0,
|
|
} xmedia_cl_model_info_type;
|
|
|
|
typedef struct _xmedia_cl_device_id *xmedia_cl_device_id;
|
|
typedef struct _xmedia_cl_event *xmedia_cl_event;
|
|
typedef struct _xmedia_cl_context *xmedia_cl_context;
|
|
|
|
typedef void *xmedia_cl_graph;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|