133 lines
6.3 KiB
C
133 lines
6.3 KiB
C
#ifndef XMEDIA_CL_H
|
|
#define XMEDIA_CL_H
|
|
|
|
#include "xmedia_cl_common.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
xmedia_cl_s32 xmedia_cl_init(xmedia_cl_void);
|
|
xmedia_cl_s32 xmedia_cl_uninit(xmedia_cl_void);
|
|
|
|
// get the device list
|
|
xmedia_cl_s32 xmedia_cl_get_device_ids(xmedia_cl_device_type_e device_type,
|
|
xmedia_cl_device_id *devices,
|
|
xmedia_cl_u32 *num_devices);
|
|
|
|
xmedia_cl_s32 xmedia_cl_release_device_ids(xmedia_cl_device_id *devices,
|
|
xmedia_cl_u32 *num_devices);
|
|
|
|
xmedia_cl_context xmedia_cl_create_context(xmedia_cl_u32 num_devices,
|
|
xmedia_cl_device_id *devices,
|
|
xmedia_cl_s32 *err_code);
|
|
|
|
xmedia_cl_s32 xmedia_cl_release_context(xmedia_cl_context context);
|
|
|
|
xmedia_cl_s32 xmedia_cl_wait_for_events(xmedia_cl_u32 num_events,
|
|
xmedia_cl_event *events);
|
|
|
|
xmedia_cl_s32 xmedia_cl_release_event(xmedia_cl_event event);
|
|
|
|
xmedia_cl_s32 xmedia_cl_query_event_status(xmedia_cl_event event,
|
|
xmedia_cl_s32 *status);
|
|
|
|
xmedia_cl_s32 xmedia_cl_graph_querysize_from_file(const char *model,
|
|
xmedia_cl_u32 *worksize,
|
|
xmedia_cl_u32 *weightsize);
|
|
xmedia_cl_s32 xmedia_cl_graph_querysize_from_buff(const char *model,
|
|
xmedia_cl_u32 *worksize,
|
|
xmedia_cl_u32 *weightsize);
|
|
xmedia_cl_s32 xmedia_cl_graph_loadmodel_from_file(xmedia_cl_context *context,
|
|
const char *model,
|
|
xmedia_cl_graph *graph);
|
|
xmedia_cl_s32 xmedia_cl_graph_loadmodel_from_buff(xmedia_cl_context *context,
|
|
const char *model,
|
|
xmedia_cl_graph *graph);
|
|
xmedia_cl_s32 xmedia_cl_set_workspace_addr(xmedia_cl_context context,
|
|
void *workspace_addr,
|
|
xmedia_cl_u32 worksize);
|
|
xmedia_cl_s32 xmedia_cl_get_workspace_addr(xmedia_cl_context context,
|
|
void **workspace_addr,
|
|
xmedia_cl_u32 *worksize);
|
|
xmedia_cl_s32 xmedia_cl_graph_loadmodel_from_file_withmem(
|
|
xmedia_cl_context *context, const char *model, void *workspace,
|
|
xmedia_cl_u32 worksize, void *weight, xmedia_cl_u32 weightsize,
|
|
xmedia_cl_graph *graph);
|
|
xmedia_cl_s32 xmedia_cl_graph_loadmodel_from_buff_withmem(
|
|
xmedia_cl_context *context, const char *model, void *workspace,
|
|
xmedia_cl_u32 worksize, void *weight, xmedia_cl_u32 weightsize,
|
|
xmedia_cl_graph *graph);
|
|
xmedia_cl_s32 xmedia_cl_graph_loadmodel_from_buff_mmz_mem(
|
|
xmedia_cl_context *context, const char *model, void *workspace,
|
|
xmedia_cl_u32 worksize, xmedia_cl_graph *graph);
|
|
xmedia_cl_s32 xmedia_cl_graph_get_input(xmedia_cl_graph graph,
|
|
xmedia_cl_u32 input_num,
|
|
xmedia_cl_tensor_info_inout *input);
|
|
xmedia_cl_s32 xmedia_cl_graph_get_output(xmedia_cl_graph graph,
|
|
xmedia_cl_u32 output_num,
|
|
xmedia_cl_tensor_info_inout *output);
|
|
xmedia_cl_s32
|
|
xmedia_cl_graph_set_inout(xmedia_cl_graph graph,
|
|
const xmedia_cl_tensor_info_inout *input,
|
|
const xmedia_cl_tensor_info_inout *output);
|
|
xmedia_cl_s32 xmedia_cl_graph_process(xmedia_cl_graph graph);
|
|
xmedia_cl_s32 xmedia_cl_graph_submit(xmedia_cl_graph graph,
|
|
xmedia_cl_event *event);
|
|
xmedia_cl_s32 xmedia_cl_graph_unload(xmedia_cl_graph graph);
|
|
|
|
xmedia_cl_s32 xmedia_cl_graph_set_compress_config(xmedia_cl_graph graph,
|
|
void *device_head_addr,
|
|
xmedia_cl_u32 head_size,
|
|
xmedia_cl_u32 break_line);
|
|
|
|
xmedia_cl_s32 xmedia_cl_graph_communicate(xmedia_cl_graph graph,
|
|
xmedia_cl_u32 *model_id);
|
|
|
|
xmedia_cl_s32 xmedia_cl_graph_decommunicate(xmedia_cl_graph graph,
|
|
xmedia_cl_u32 model_id);
|
|
/*
|
|
目前任务优先级定义四个,从0~3,优先级依次升高,具体见宏定义:
|
|
XMEDIA_CL_JOB_SCHEDULE_PRIO_MIN
|
|
XMEDIA_CL_JOB_SCHEDULE_PRIO_MEDIUM
|
|
XMEDIA_CL_JOB_SCHEDULE_PRIO_HIGH
|
|
XMEDIA_CL_JOB_SCHEDULE_PRIO_MAX
|
|
*/
|
|
xmedia_cl_s32 xmedia_cl_graph_set_schedule_prio(xmedia_cl_graph graph,
|
|
xmedia_cl_u32 prio);
|
|
|
|
xmedia_cl_s32 xmedia_cl_set_event_callback(
|
|
xmedia_cl_event event, xmedia_cl_s32 status,
|
|
void (*notify)(xmedia_cl_event, xmedia_cl_s32, void *), void *data);
|
|
|
|
xmedia_cl_s32
|
|
xmedia_cl_set_profiling(xmedia_cl_graph graph,
|
|
xmedia_cl_profiling_params profiling_params);
|
|
|
|
xmedia_cl_s32 xmedia_cl_graph_set_dynamic_batch_size(
|
|
xmedia_cl_graph graph, xmedia_cl_tensor_info_inout *input,
|
|
xmedia_cl_u32 index, xmedia_cl_u32 batch_size);
|
|
|
|
xmedia_cl_s32 xmedia_cl_graph_get_private_data(xmedia_cl_graph graph,
|
|
void **private_data,
|
|
xmedia_cl_u32 *data_size);
|
|
xmedia_cl_s32
|
|
xmedia_cl_graph_get_memory_reuse_type(xmedia_cl_graph graph,
|
|
xmedia_cl_memory_reuse_type *memory_type);
|
|
|
|
xmedia_cl_s32 xmedia_cl_graph_get_private_data_from_file(
|
|
const char *model, void *private_data, xmedia_cl_u32 data_size);
|
|
xmedia_cl_s32 xmedia_cl_graph_get_private_data_from_buff(
|
|
const char *model, void *private_data, xmedia_cl_u32 data_size);
|
|
xmedia_cl_s32
|
|
xmedia_cl_graph_query_model_info_from_file(const char *model, void *info,
|
|
xmedia_cl_model_info_type info_type);
|
|
xmedia_cl_s32
|
|
xmedia_cl_graph_query_model_info_from_buff(const char *model, void *info,
|
|
xmedia_cl_model_info_type info_type);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|