You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
3.3 KiB
75 lines
3.3 KiB
/**
|
|
* 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 |