#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