/** * Copyright 2020 Huawei Technologies Co., Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ACL_STUB_INC_ACL_MDL #define ACL_STUB_INC_ACL_MDL #include "acl_base.h" #define ACL_MAX_DIM_CNT 128 #define ACL_MAX_TENSOR_NAME_LEN 128 #define ACL_MAX_BATCH_NUM 128 #define ACL_MAX_HW_NUM 128 #define ACL_MAX_SHAPE_COUNT 128 typedef struct aclmdlDataset aclmdlDataset; typedef struct aclmdlDesc aclmdlDesc; typedef struct aclmdlIODims { char name[ACL_MAX_TENSOR_NAME_LEN]; size_t dimCount; int64_t dims[ACL_MAX_DIM_CNT]; } aclmdlIODims; aclmdlDesc *aclmdlCreateDesc(); aclError aclmdlDestroyDesc(aclmdlDesc *modelDesc); aclError aclmdlGetDesc(aclmdlDesc *modelDesc, uint32_t modelId); size_t aclmdlGetNumInputs(aclmdlDesc *modelDesc); size_t aclmdlGetNumOutputs(aclmdlDesc *modelDesc); size_t aclmdlGetInputSizeByIndex(aclmdlDesc *modelDesc, size_t index); size_t aclmdlGetOutputSizeByIndex(aclmdlDesc *modelDesc, size_t index); aclmdlDataset *aclmdlCreateDataset(); aclError aclmdlDestroyDataset(const aclmdlDataset *dataSet); aclError aclmdlAddDatasetBuffer(aclmdlDataset *dataSet, aclDataBuffer *dataBuffer); size_t aclmdlGetDatasetNumBuffers(const aclmdlDataset *dataSet); aclDataBuffer *aclmdlGetDatasetBuffer(const aclmdlDataset *dataSet, size_t index); aclError aclmdlLoadFromFile(const char *modelPath, uint32_t *modelId); aclError aclmdlLoadFromMem(const void *model, size_t modelSize, uint32_t *modelId); aclError aclmdlLoadFromFileWithMem(const char *modelPath, uint32_t *modelId, void *workPtr, size_t workSize, void *weightPtr, size_t weightSize); aclError aclmdlLoadFromMemWithMem(const void *model, size_t modelSize, uint32_t *modelId, void *workPtr, size_t workSize, void *weightPtr, size_t weightSize); aclError aclmdlExecute(uint32_t modelId, const aclmdlDataset *input, aclmdlDataset *output); aclError aclmdlExecuteAsync(uint32_t modelId, const aclmdlDataset *input, aclmdlDataset *output, aclrtStream stream); aclError aclmdlUnload(uint32_t modelId); aclError aclmdlQuerySize(const char *fileName, size_t *workSize, size_t *weightSize); aclError aclmdlQuerySizeFromMem(const void *model, size_t modelSize, size_t *workSize, size_t *weightSize); aclError aclmdlGetInputDims(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims); aclError aclmdlGetOutputDims(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims); aclError aclmdlGetCurOutputDims(const aclmdlDesc *modelDesc, size_t index, aclmdlIODims *dims); aclFormat aclmdlGetInputFormat(const aclmdlDesc *modelDesc, size_t index); aclFormat aclmdlGetOutputFormat(const aclmdlDesc *modelDesc, size_t index); aclDataType aclmdlGetInputDataType(const aclmdlDesc *modelDesc, size_t index); aclDataType aclmdlGetOutputDataType(const aclmdlDesc *modelDesc, size_t index); #endif