11bd4fe43Sopenharmony_ci/* 21bd4fe43Sopenharmony_ci * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED. 31bd4fe43Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41bd4fe43Sopenharmony_ci * you may not use this file except in compliance with the License. 51bd4fe43Sopenharmony_ci * You may obtain a copy of the License at 61bd4fe43Sopenharmony_ci * 71bd4fe43Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81bd4fe43Sopenharmony_ci * 91bd4fe43Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101bd4fe43Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111bd4fe43Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121bd4fe43Sopenharmony_ci * See the License for the specific language governing permissions and 131bd4fe43Sopenharmony_ci * limitations under the License. 141bd4fe43Sopenharmony_ci */ 151bd4fe43Sopenharmony_ci 161bd4fe43Sopenharmony_ci#ifndef __HI_RUNTIME_API__ 171bd4fe43Sopenharmony_ci#define __HI_RUNTIME_API__ 181bd4fe43Sopenharmony_ci 191bd4fe43Sopenharmony_ci#include "hi_type.h" 201bd4fe43Sopenharmony_ci#include "hi_runtime_comm.h" 211bd4fe43Sopenharmony_ci 221bd4fe43Sopenharmony_ci#ifdef __cplusplus 231bd4fe43Sopenharmony_ci#if __cplusplus 241bd4fe43Sopenharmony_ciextern "C" { 251bd4fe43Sopenharmony_ci#endif 261bd4fe43Sopenharmony_ci#endif /* __cplusplus */ 271bd4fe43Sopenharmony_ci 281bd4fe43Sopenharmony_ci/* **************************************************************************** 291bd4fe43Sopenharmony_ci* Prototype : HI_SVPRT_RUNTIME_Init 301bd4fe43Sopenharmony_ci* Description : Environment Init 311bd4fe43Sopenharmony_ci* Parameters : HI_CHAR *pszGlobalSetting GlobalSetting for runtime 321bd4fe43Sopenharmony_ci if NULL, use default 331bd4fe43Sopenharmony_ci HI_RUNTIME_MEM_CTRL_S *pstMemCtrl Memory Controll by alloc,flush,and free 341bd4fe43Sopenharmony_ci if NULL, use mmz 351bd4fe43Sopenharmony_ci* Return Value : HI_SUCCESS: Success; Error codes: Failure. 361bd4fe43Sopenharmony_ci**************************************************************************** */ 371bd4fe43Sopenharmony_ciHI_S32 HI_SVPRT_RUNTIME_Init(IN const HI_CHAR* pszGlobalSetting, IN HI_RUNTIME_MEM_CTRL_S* pstMemCtrl); 381bd4fe43Sopenharmony_ci 391bd4fe43Sopenharmony_ci/* **************************************************************************** 401bd4fe43Sopenharmony_ci* Prototype : HI_SVPRT_RUNTIME_LoadModelGroupSync 411bd4fe43Sopenharmony_ci* Description : Load model 421bd4fe43Sopenharmony_ci* Parameters : HI_CHAR* pstModelGroupConfig Input Group Config 431bd4fe43Sopenharmony_ci HI_RUNTIME_GROUP_INFO_S* pstModelGroupAttr Group Info, such as wk,cop,connector 441bd4fe43Sopenharmony_ci HI_RUNTIME_GROUP_HANDLE* phGroupHandle output Group Handle 451bd4fe43Sopenharmony_ci* Return Value : HI_SUCCESS: Success; Error codes: Failure. 461bd4fe43Sopenharmony_ci**************************************************************************** */ 471bd4fe43Sopenharmony_ciHI_S32 HI_SVPRT_RUNTIME_LoadModelGroup(IN const HI_CHAR* pstModelGroupConfig, 481bd4fe43Sopenharmony_ci IN HI_RUNTIME_GROUP_INFO_S* pstModelGroupAttr, OUT HI_RUNTIME_GROUP_HANDLE* phGroupHandle); 491bd4fe43Sopenharmony_ci 501bd4fe43Sopenharmony_ci/* **************************************************************************** 511bd4fe43Sopenharmony_ci * Prototype : HI_SVPRT_RUNTIME_ForwardGroupSync 521bd4fe43Sopenharmony_ci * Description : Perform prediction on input sample(s), and output responses for corresponding sample(s), Sync Fuction 531bd4fe43Sopenharmony_ci * Parameters : HI_RUNTIME_GROUP_HANDLE hGroupHandle Group Handle generated by 541bd4fe43Sopenharmony_ci * HI_SVPRT_RUNTIME_LoadModelGroup HI_RUNTIME_GROUP_SRC_BLOB_ARRAY_PTR pstSrc Input Blobs 551bd4fe43Sopenharmony_ci * HI_RUNTIME_GROUP_DST_BLOB_ARRAY_PTR pstDst Output Blobs. 561bd4fe43Sopenharmony_ci * Return Value: HI_SUCCESS: Success; Error codes: Failure. 571bd4fe43Sopenharmony_ci * *************************************************************************** */ 581bd4fe43Sopenharmony_ciHI_S32 HI_SVPRT_RUNTIME_ForwardGroupSync(IN const HI_RUNTIME_GROUP_HANDLE hGroupHandle, 591bd4fe43Sopenharmony_ci IN const HI_RUNTIME_GROUP_SRC_BLOB_ARRAY_PTR pstSrc, OUT HI_RUNTIME_GROUP_DST_BLOB_ARRAY_PTR pstDst, 601bd4fe43Sopenharmony_ci IN HI_U64 u64SrcId); 611bd4fe43Sopenharmony_ci 621bd4fe43Sopenharmony_ci/* **************************************************************************** 631bd4fe43Sopenharmony_ci* Prototype : HI_SVPRT_RUNTIME_ForwardGroupASync 641bd4fe43Sopenharmony_ci* Description : Perform prediction on input sample(s), and output responses for corresponding sample(s),ASync 651bd4fe43Sopenharmony_ciFunction 661bd4fe43Sopenharmony_ci* Parameters : HI_RUNTIME_GROUP_HANDLE hGroupHandle Group Handle generated by 671bd4fe43Sopenharmony_ciHI_SVPRT_RUNTIME_LoadModelGroup can't be NULL 681bd4fe43Sopenharmony_ci* HI_RUNTIME_GROUP_SRC_BLOB_ARRAY_PTR pstSrc Input Blobs 691bd4fe43Sopenharmony_ci* HI_RUNTIME_GROUP_DST_BLOB_ARRAY_PTR pstDst Output Blobs. 701bd4fe43Sopenharmony_ci* HI_U64 u64SrcId Frame id set by user, 711bd4fe43Sopenharmony_ci* can be duplicate number 721bd4fe43Sopenharmony_ci* HI_RUNTIME_Forward_CallBack pCbFun Callback for ForwardGroup, 731bd4fe43Sopenharmony_ci* can't be null 741bd4fe43Sopenharmony_ci* Return Value: HI_SUCCESS: Success; Error codes: Failure. 751bd4fe43Sopenharmony_ci**************************************************************************** */ 761bd4fe43Sopenharmony_ciHI_S32 HI_SVPRT_RUNTIME_ForwardGroupASync(IN const HI_RUNTIME_GROUP_HANDLE hGroupHandle, 771bd4fe43Sopenharmony_ci IN const HI_RUNTIME_GROUP_SRC_BLOB_ARRAY_PTR pstSrc, OUT HI_RUNTIME_GROUP_DST_BLOB_ARRAY_PTR pstDst, 781bd4fe43Sopenharmony_ci IN HI_U64 u64SrcId, IN HI_RUNTIME_Forward_Callback pCbFun); 791bd4fe43Sopenharmony_ci 801bd4fe43Sopenharmony_ci/* **************************************************************************** 811bd4fe43Sopenharmony_ci * Prototype : HI_SVPRT_RUNTIME_UnloadModel 821bd4fe43Sopenharmony_ci * Description : Unload model 831bd4fe43Sopenharmony_ci * Parameters : HI_RUNTIME_GROUP_HANDLE hGroupHandle Group Handle generated by 841bd4fe43Sopenharmony_ci * HI_SVPRT_RUNTIME_LoadModelGroup can not be NULL 851bd4fe43Sopenharmony_ci * 861bd4fe43Sopenharmony_ci * Return Value : HI_SUCCESS: Success; Error codes: Failure. 871bd4fe43Sopenharmony_ci * *************************************************************************** */ 881bd4fe43Sopenharmony_ciHI_S32 HI_SVPRT_RUNTIME_UnloadModelGroup(IN const HI_RUNTIME_GROUP_HANDLE hGroupHandle); 891bd4fe43Sopenharmony_ci 901bd4fe43Sopenharmony_ci/* **************************************************************************** 911bd4fe43Sopenharmony_ci * Prototype : HI_SVPRT_RUNTIME_deInit 921bd4fe43Sopenharmony_ci * Description : Environment DeInit 931bd4fe43Sopenharmony_ci * Return Value : HI_SUCCESS: Success; Error codes: Failure. 941bd4fe43Sopenharmony_ci * *************************************************************************** */ 951bd4fe43Sopenharmony_ciHI_S32 HI_SVPRT_RUNTIME_DeInit(); 961bd4fe43Sopenharmony_ci 971bd4fe43Sopenharmony_ci#ifdef __cplusplus 981bd4fe43Sopenharmony_ci#if __cplusplus 991bd4fe43Sopenharmony_ci} 1001bd4fe43Sopenharmony_ci#endif 1011bd4fe43Sopenharmony_ci#endif /* __cplusplus */ 1021bd4fe43Sopenharmony_ci 1031bd4fe43Sopenharmony_ci#endif /* __HI_RUNTIME_API__ */ 104