Files

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