@@ -5,5 +5,6 @@ approvers: | |||||
reviewers: | reviewers: | ||||
- justin_zhao | - justin_zhao | ||||
- zhangyongfeng88 | - zhangyongfeng88 | ||||
- w00267184 | |||||
options: | options: | ||||
no_parent_owners: true | no_parent_owners: true |
@@ -869,7 +869,7 @@ ACL_FUNC_VISIBILITY aclError aclmdlSetAIPPInputFormat(aclmdlAIPP *aippParmsSet, | |||||
* | * | ||||
* @see aclmdlCreateAIPP | * @see aclmdlCreateAIPP | ||||
*/ | */ | ||||
ACL_FUNC_VISIBILITY aclError aclmdlSetAIPPCscParams(aclmdlAIPP *aippParmsSet, int8_t csc_switch, int16_t cscMatrixR0C0, | |||||
ACL_FUNC_VISIBILITY aclError aclmdlSetAIPPCscParams(aclmdlAIPP *aippParmsSet, int8_t cscSwitch, int16_t cscMatrixR0C0, | |||||
int16_t cscMatrixR0C1, int16_t cscMatrixR0C2, int16_t cscMatrixR1C0, | int16_t cscMatrixR0C1, int16_t cscMatrixR0C2, int16_t cscMatrixR1C0, | ||||
int16_t cscMatrixR1C1, int16_t cscMatrixR1C2, int16_t cscMatrixR2C0, | int16_t cscMatrixR1C1, int16_t cscMatrixR1C2, int16_t cscMatrixR2C0, | ||||
int16_t cscMatrixR2C1, int16_t cscMatrixR2C2, | int16_t cscMatrixR2C1, int16_t cscMatrixR2C2, | ||||
@@ -1106,7 +1106,7 @@ ACL_FUNC_VISIBILITY aclError aclmdlGetAippType(uint32_t modelId, size_t index, a | |||||
* | * | ||||
* @param modelId [IN] model id | * @param modelId [IN] model id | ||||
* @param index [IN] index of tensor | * @param index [IN] index of tensor | ||||
* @param aippinfo [OUT] Pointer for static aipp info | |||||
* @param aippInfo [OUT] Pointer for static aipp info | |||||
* | * | ||||
* @retval ACL_SUCCESS The function is successfully executed. | * @retval ACL_SUCCESS The function is successfully executed. | ||||
* @retval ACL_ERROR_MODEL_AIPP_NOT_EXIST The tensor of index is not configured with aipp | * @retval ACL_ERROR_MODEL_AIPP_NOT_EXIST The tensor of index is not configured with aipp | ||||
@@ -1115,7 +1115,7 @@ ACL_FUNC_VISIBILITY aclError aclmdlGetAippType(uint32_t modelId, size_t index, a | |||||
* @see aclmdlLoadFromFile | aclmdlLoadFromMem | aclmdlLoadFromFileWithMem | | * @see aclmdlLoadFromFile | aclmdlLoadFromMem | aclmdlLoadFromFileWithMem | | ||||
* aclmdlLoadFromMemWithMem | aclmdlGetInputIndexByName | * aclmdlLoadFromMemWithMem | aclmdlGetInputIndexByName | ||||
*/ | */ | ||||
ACL_FUNC_VISIBILITY aclError aclmdlGetFirstAippInfo(uint32_t modelId, size_t index, aclAippInfo *aippinfo); | |||||
ACL_FUNC_VISIBILITY aclError aclmdlGetFirstAippInfo(uint32_t modelId, size_t index, aclAippInfo *aippInfo); | |||||
/** | /** | ||||
* @ingroup AscendCL | * @ingroup AscendCL | ||||
@@ -541,7 +541,7 @@ ACL_FUNC_VISIBILITY aclError aclrtSynchronizeEvent(aclrtEvent event); | |||||
* | * | ||||
* @see aclrtCreateEvent | aclrtRecordEvent | aclrtSynchronizeStream | * @see aclrtCreateEvent | aclrtRecordEvent | aclrtSynchronizeStream | ||||
*/ | */ | ||||
ACL_FUNC_VISIBILITY aclError aclrtEventElapsedTime(float *ms, aclrtEvent start, aclrtEvent end); | |||||
ACL_FUNC_VISIBILITY aclError aclrtEventElapsedTime(float *ms, aclrtEvent startEvent, aclrtEvent endEvent); | |||||
/** | /** | ||||
* @ingroup AscendCL | * @ingroup AscendCL | ||||
@@ -733,6 +733,43 @@ ACL_FUNC_VISIBILITY aclError aclrtMemcpyAsync(void *dst, size_t destMax, const v | |||||
/** | /** | ||||
* @ingroup AscendCL | * @ingroup AscendCL | ||||
* @brief synchronous memory replication of two-dimensional matrix between host and device | |||||
* | |||||
* @param dst [IN] destination address pointer | |||||
* @param dpitch [IN] pitch of destination memory | |||||
* @param src [IN] source address pointer | |||||
* @param spitch [IN] pitch of source memory | |||||
* @param width [IN] width of matrix transfer | |||||
* @param height [IN] height of matrix transfer | |||||
* @param kind [IN] memcpy type | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError aclrtMemcpy2d(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, | |||||
size_t height, aclrtMemcpyKind kind); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief asynchronous memory replication of two-dimensional matrix between host and device | |||||
* | |||||
* @param dst [IN] destination address pointer | |||||
* @param dpitch [IN] pitch of destination memory | |||||
* @param src [IN] source address pointer | |||||
* @param spitch [IN] pitch of source memory | |||||
* @param width [IN] width of matrix transfer | |||||
* @param height [IN] height of matrix transfer | |||||
* @param kind [IN] memcpy type | |||||
* @param stream [IN] asynchronized task stream | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError aclrtMemcpy2dAsync(void *dst, size_t dpitch, const void *src, size_t spitch, size_t width, | |||||
size_t height, aclrtMemcpyKind kind, aclrtStream stream); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Asynchronous initialize memory | * @brief Asynchronous initialize memory | ||||
* and set contents of memory to specified value async | * and set contents of memory to specified value async | ||||
* | * | ||||
@@ -0,0 +1,426 @@ | |||||
/** | |||||
* Copyright 2019-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 INC_EXTERNAL_ACL_ACL_TDT_QUEUE_H_ | |||||
#define INC_EXTERNAL_ACL_ACL_TDT_QUEUE_H_ | |||||
#include "acl/acl_base.h" | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
#define ACL_TDT_QUEUE_PERMISSION_MANAGE 1 | |||||
#define ACL_TDT_QUEUE_PERMISSION_DEQUEUE 2 | |||||
#define ACL_TDT_QUEUE_PERMISSION_ENQUEUE 4 | |||||
typedef void *acltdtBuf; | |||||
typedef struct tagMemQueueAttr acltdtQueueAttr; | |||||
typedef struct acltdtQueueRouteList acltdtQueueRouteList; | |||||
typedef struct acltdtQueueRouteQueryInfo acltdtQueueRouteQueryInfo; | |||||
typedef struct acltdtQueueRoute acltdtQueueRoute; | |||||
typedef enum { ACL_TDT_QUEUE_NAME_PTR = 0, ACL_TDT_QUEUE_DEPTH_UINT32 } acltdtQueueAttrType; | |||||
typedef enum { | |||||
ACL_TDT_QUEUE_ROUTE_SRC_UINT32 = 0, | |||||
ACL_TDT_QUEUE_ROUTE_DST_UINT32, | |||||
ACL_TDT_QUEUE_ROUTE_STATUS_INT32 | |||||
} acltdtQueueRouteParamType; | |||||
typedef enum { | |||||
ACL_TDT_QUEUE_ROUTE_QUERY_SRC = 0, | |||||
ACL_TDT_QUEUE_ROUTE_QUERY_DST, | |||||
ACL_TDT_QUEUE_ROUTE_QUERY_SRC_AND_DST | |||||
} acltdtQueueRouteQueryMode; | |||||
typedef enum { | |||||
ACL_TDT_QUEUE_ROUTE_QUERY_MODE_ENUM = 0, | |||||
ACL_TDT_QUEUE_ROUTE_QUERY_SRC_ID_UINT32, | |||||
ACL_TDT_QUEUE_ROUTE_QUERY_DST_ID_UINT32 | |||||
} acltdtQueueRouteQueryInfoParamType; | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief create queue | |||||
* | |||||
* @param attr [IN] pointer to the queue attr | |||||
* @param qid [OUT] pointer to the qid | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtDestroyQueue | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtCreateQueue(const acltdtQueueAttr *attr, uint32_t *qid); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief destroy queue | |||||
* | |||||
* @param qid [IN] qid which to be destroyed | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtCreateQueue | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtDestroyQueue(uint32_t qid); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief enqueue function | |||||
* | |||||
* @param qid [IN] qid | |||||
* @param buf [IN] acltdtBuf | |||||
* @param timeout [IN] timeout | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtDequeue | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtEnqueue(uint32_t qid, acltdtBuf buf, int32_t timeout); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief dequeue function | |||||
* | |||||
* @param qid [IN] qid | |||||
* @param buf [OUT] pointer to the acltdtBuf | |||||
* @param timeout [IN] timeout | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtEnqueue | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtDequeue(uint32_t qid, acltdtBuf *buf, int32_t timeout); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief grant queue to other process | |||||
* | |||||
* @param qid [IN] qid | |||||
* @param pid [IN] pid of dst process | |||||
* @param permission [IN] permission of queue | |||||
* @param timeout [IN] timeout | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see ACL_TDT_QUEUE_PERMISSION_MANAGE | ACL_TDT_QUEUE_PERMISSION_DEQUEUE | ACL_TDT_QUEUE_PERMISSION_ENQUEUE | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtGrantQueue(uint32_t qid, int32_t pid, uint32_t permission, int32_t timeout); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief attach queue in current process | |||||
* | |||||
* @param qid [IN] qid | |||||
* @param timeout [IN] timeout | |||||
* @param permission [OUT] permission of queue | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtGrantQueue | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtAttachQueue(uint32_t qid, int32_t timeout, uint32_t *permission); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief bind queue routes | |||||
* | |||||
* @param qRouteList [IN|OUT] pointer to the route list | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtBindQueueRoutes(acltdtQueueRouteList *qRouteList); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief unbind queue routes | |||||
* | |||||
* @param qRouteList [IN|OUT] pointer to the route list | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtUnbindQueueRoutes(acltdtQueueRouteList *qRouteList); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief query queue routes according to query mode | |||||
* | |||||
* @param queryInfo [IN] pointer to the queue route query info | |||||
* @param qRouteList [IN|OUT] pointer to the route list | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtQueryQueueRoutes(const acltdtQueueRouteQueryInfo *queryInfo, | |||||
acltdtQueueRouteList *qRouteList); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief alloc acltdtBuf | |||||
* | |||||
* @param size [IN] alloc buf size | |||||
* @param buf [OUT] pointer to the acltdtBuf | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtFreeBuf | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtAllocBuf(size_t size, acltdtBuf *buf); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief free acltdtBuf | |||||
* | |||||
* @param buf [IN] pointer to the acltdtBuf | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtAllocBuf | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtFreeBuf(acltdtBuf buf); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief get data buf address | |||||
* | |||||
* @param buf [IN] acltdtBuf | |||||
* @param dataPtr [OUT] pointer to the data ptr which is acquired from acltdtBuf | |||||
* @param size [OUT] pointer to the size | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtAllocBuf | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtGetBufData(const acltdtBuf buf, void **dataPtr, size_t *size); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Create the queue attr | |||||
* | |||||
* @retval null for failed | |||||
* @retval OtherValues success | |||||
* | |||||
* @see acltdtDestroyQueueAttr | |||||
*/ | |||||
ACL_FUNC_VISIBILITY acltdtQueueAttr *acltdtCreateQueueAttr(); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Destroy the queue attr | |||||
* | |||||
* @param attr [IN] pointer to the queue attr | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtCreateQueueAttr | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtDestroyQueueAttr(const acltdtQueueAttr *attr); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Set parameter for queue attr | |||||
* | |||||
* @param attr [IN|OUT] pointer to the queue attr | |||||
* @param type [IN] parameter type | |||||
* @param len [IN] parameter length | |||||
* @param param [IN] pointer to parameter value | |||||
* | |||||
* @retval ACL_SUCCESS for success, other for failure | |||||
* | |||||
* @see acltdtCreateQueueAttr | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtSetQueueAttr(acltdtQueueAttr *attr, acltdtQueueAttrType type, size_t len, | |||||
const void *param); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* | |||||
* @brief Get parameter for queue attr. | |||||
* | |||||
* @param attr [IN] pointer to the queue attr | |||||
* @param type [IN] parameter type | |||||
* @param len [IN] parameter length | |||||
* @param paramRetSize [OUT] pointer to parameter real length | |||||
* @param param [OUT] pointer to parameter value | |||||
* | |||||
* @retval ACL_SUCCESS for success, other for failure | |||||
* | |||||
* @see acltdtCreateQueueAttr | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtGetQueueAttr(const acltdtQueueAttr *attr, acltdtQueueAttrType type, size_t len, | |||||
size_t *paramRetSize, void *param); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Create the queue route | |||||
* | |||||
* @param srcId [IN] src id of queue route | |||||
* @param dstId [IN] dst id of queue route | |||||
* | |||||
* @retval null for failed | |||||
* @retval OtherValues success | |||||
* | |||||
* @see acltdtDestroyQueueRoute | |||||
*/ | |||||
ACL_FUNC_VISIBILITY acltdtQueueRoute *acltdtCreateQueueRoute(uint32_t srcId, uint32_t dstId); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Destroy the queue attr | |||||
* | |||||
* @param route [IN] pointer to the queue route | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtCreateQueueRoute | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtDestroyQueueRoute(const acltdtQueueRoute *route); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* | |||||
* @brief Get parameter for queue route. | |||||
* | |||||
* @param route [IN] pointer to the queue route | |||||
* @param type [IN] parameter type | |||||
* @param len [IN] parameter length | |||||
* @param paramRetSize [OUT] pointer to parameter real length | |||||
* @param param [OUT] pointer to parameter value | |||||
* | |||||
* @retval ACL_SUCCESS for success, other for failure | |||||
* | |||||
* @see acltdtCreateQueueRoute | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtGetQueueRouteParam(const acltdtQueueRoute *route, acltdtQueueRouteParamType type, | |||||
size_t len, size_t *paramRetSize, void *param); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Create the queue route list | |||||
* | |||||
* @retval null for failed | |||||
* @retval OtherValues success | |||||
* | |||||
* @see acltdtDestroyQueueRouteList | |||||
*/ | |||||
ACL_FUNC_VISIBILITY acltdtQueueRouteList *acltdtCreateQueueRouteList(); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Destroy the queue route list | |||||
* | |||||
* @param routeList [IN] pointer to the queue route list | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtCreateQueueRouteList | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtDestroyQueueRouteList(const acltdtQueueRouteList *routeList); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief add queue route to the route list | |||||
* | |||||
* @param routeList [IN|OUT] pointer to the queue route list | |||||
* @param route [IN] pointer to the queue route | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtCreateQueueRouteList | acltdtCreateQueueRoute | |||||
* | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtAddQueueRoute(acltdtQueueRouteList *routeList, const acltdtQueueRoute *route); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief get queue route from route list | |||||
* | |||||
* @param routeList [IN] pointer to the queue route list | |||||
* @param index [IN] index of queue route in route list | |||||
* @param route [IN|OUT] pointer to the queue route | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtCreateQueueRouteList | acltdtCreateQueueRoute | |||||
* | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtGetQueueRoute(const acltdtQueueRouteList *routeList, size_t index, | |||||
acltdtQueueRoute *route); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Create the queue route query info | |||||
* | |||||
* @retval null for failed | |||||
* @retval OtherValues success | |||||
* | |||||
* @see acltdtDestroyQueueRouteQueryInfo | |||||
*/ | |||||
ACL_FUNC_VISIBILITY acltdtQueueRouteQueryInfo *acltdtCreateQueueRouteQueryInfo(); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Destroy the queue route query info | |||||
* | |||||
* @param info [IN] pointer to the queue route info | |||||
* | |||||
* @retval ACL_SUCCESS The function is successfully executed. | |||||
* @retval OtherValues Failure | |||||
* | |||||
* @see acltdtCreateQueueRouteQueryInfo | |||||
* | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtDestroyQueueRouteQueryInfo(const acltdtQueueRouteQueryInfo *info); | |||||
/** | |||||
* @ingroup AscendCL | |||||
* @brief Set parameter for queue route info | |||||
* | |||||
* @param attr [IN|OUT] pointer to the queue route info | |||||
* @param type [IN] parameter type | |||||
* @param len [IN] parameter length | |||||
* @param param [IN] pointer to parameter value | |||||
* | |||||
* @retval ACL_SUCCESS for success, other for failure | |||||
* | |||||
* @see acltdtCreateQueueRouteQueryInfo | |||||
*/ | |||||
ACL_FUNC_VISIBILITY aclError acltdtSetQueueRouteQueryInfo(acltdtQueueRouteQueryInfo *param, | |||||
acltdtQueueRouteQueryInfoParamType type, size_t len, | |||||
const void *value); | |||||
#ifdef __cplusplus | |||||
} | |||||
#endif | |||||
#endif // INC_EXTERNAL_ACL_ACL_TDT_QUEUE_H_ |
@@ -56,6 +56,10 @@ static const int32_t ACL_ERROR_RT_NO_EVENT_RESOURCE = 207007; // no event res | |||||
static const int32_t ACL_ERROR_RT_NO_STREAM_RESOURCE = 207008; // no stream resource | static const int32_t ACL_ERROR_RT_NO_STREAM_RESOURCE = 207008; // no stream resource | ||||
static const int32_t ACL_ERROR_RT_NO_NOTIFY_RESOURCE = 207009; // no notify resource | static const int32_t ACL_ERROR_RT_NO_NOTIFY_RESOURCE = 207009; // no notify resource | ||||
static const int32_t ACL_ERROR_RT_NO_MODEL_RESOURCE = 207010; // no model resource | static const int32_t ACL_ERROR_RT_NO_MODEL_RESOURCE = 207010; // no model resource | ||||
static const int32_t ACL_ERROR_RT_NO_CDQ_RESOURCE = 207011; // no cdq resource | |||||
static const int32_t ACL_ERROR_RT_OVER_LIMIT = 207012; // over limit | |||||
static const int32_t ACL_ERROR_RT_QUEUE_EMPTY = 207013; // queue is empty | |||||
static const int32_t ACL_ERROR_RT_QUEUE_FULL = 207014; // queue is full | |||||
static const int32_t ACL_ERROR_RT_INTERNAL_ERROR = 507000; // runtime internal error | static const int32_t ACL_ERROR_RT_INTERNAL_ERROR = 507000; // runtime internal error | ||||
static const int32_t ACL_ERROR_RT_TS_ERROR = 507001; // ts internel error | static const int32_t ACL_ERROR_RT_TS_ERROR = 507001; // ts internel error | ||||
@@ -125,7 +125,7 @@ enum acldvppPixelFormat { | |||||
enum acldvppStreamFormat { H265_MAIN_LEVEL = 0, H264_BASELINE_LEVEL, H264_MAIN_LEVEL, H264_HIGH_LEVEL }; | enum acldvppStreamFormat { H265_MAIN_LEVEL = 0, H264_BASELINE_LEVEL, H264_MAIN_LEVEL, H264_HIGH_LEVEL }; | ||||
// Supported Channel Mode | // Supported Channel Mode | ||||
enum acldvppChannelMode { DVPP_CHNMODE_VPC = 1, DVPP_CHNMODE_JPEGD = 2, DVPP_CHNMODE_JPEGE = 4 }; | |||||
enum acldvppChannelMode { DVPP_CHNMODE_VPC = 1, DVPP_CHNMODE_JPEGD = 2, DVPP_CHNMODE_JPEGE = 4, DVPP_CHNMODE_PNGD = 8 }; | |||||
// Supported Border Type | // Supported Border Type | ||||
enum acldvppBorderType { BORDER_CONSTANT = 0, BORDER_REPLICATE, BORDER_REFLECT, BORDER_REFLECT_101 }; | enum acldvppBorderType { BORDER_CONSTANT = 0, BORDER_REPLICATE, BORDER_REFLECT, BORDER_REFLECT_101 }; | ||||
@@ -72,17 +72,23 @@ class GE_FUNC_VISIBILITY StatusFactory { | |||||
class GE_FUNC_VISIBILITY ErrorNoRegisterar { | class GE_FUNC_VISIBILITY ErrorNoRegisterar { | ||||
public: | public: | ||||
ErrorNoRegisterar(uint32_t err, const std::string &desc) { StatusFactory::Instance()->RegisterErrorNo(err, desc); } | |||||
ErrorNoRegisterar(uint32_t err, const char *desc) { StatusFactory::Instance()->RegisterErrorNo(err, desc); } | |||||
ErrorNoRegisterar(uint32_t err, const std::string &desc) { | |||||
StatusFactory::Instance()->RegisterErrorNo(err, desc); | |||||
} | |||||
ErrorNoRegisterar(uint32_t err, const char *desc) { | |||||
StatusFactory::Instance()->RegisterErrorNo(err, desc); | |||||
} | |||||
~ErrorNoRegisterar() {} | ~ErrorNoRegisterar() {} | ||||
}; | }; | ||||
// Code compose(4 byte), runtime: 2 bit, type: 2 bit, level: 3 bit, sysid: 8 bit, modid: 5 bit, value: 12 bit | // Code compose(4 byte), runtime: 2 bit, type: 2 bit, level: 3 bit, sysid: 8 bit, modid: 5 bit, value: 12 bit | ||||
#define GE_ERRORNO(runtime, type, level, sysid, modid, name, value, desc) \ | |||||
constexpr ge::Status name = \ | |||||
((0xFF & (static_cast<uint8_t>(runtime))) << 30) | ((0xFF & (static_cast<uint8_t>(type))) << 28) | \ | |||||
((0xFF & (static_cast<uint8_t>(level))) << 25) | ((0xFF & (static_cast<uint8_t>(sysid))) << 17) | \ | |||||
((0xFF & (static_cast<uint8_t>(modid))) << 12) | (0x0FFF & (static_cast<uint16_t>(value))); \ | |||||
#define GE_ERRORNO(runtime, type, level, sysid, modid, name, value, desc) \ | |||||
constexpr ge::Status name = (static_cast<uint32_t>(0xFFU & (static_cast<uint32_t>(runtime))) << 30) | \ | |||||
(static_cast<uint32_t>(0xFFU & (static_cast<uint32_t>(type))) << 28) | \ | |||||
(static_cast<uint32_t>(0xFFU & (static_cast<uint32_t>(level))) << 25) | \ | |||||
(static_cast<uint32_t>(0xFFU & (static_cast<uint32_t>(sysid))) << 17) | \ | |||||
(static_cast<uint32_t>(0xFFU & (static_cast<uint32_t>(modid))) << 12) | \ | |||||
(static_cast<uint32_t>(0x0FFFU) & (static_cast<uint32_t>(value))); \ | |||||
const ErrorNoRegisterar g_##name##_errorno(name, desc); | const ErrorNoRegisterar g_##name##_errorno(name, desc); | ||||
#define GE_ERRORNO_EXTERNAL(name, desc) const ErrorNoRegisterar g_##name##_errorno(name, desc); | #define GE_ERRORNO_EXTERNAL(name, desc) const ErrorNoRegisterar g_##name##_errorno(name, desc); | ||||
@@ -67,6 +67,7 @@ const char *const OPTION_EXEC_ENABLE_TAILING_OPTIMIZATION = "ge.exec.isTailingOp | |||||
const char *const OPTION_EXEC_DYNAMIC_INPUT = "ge.exec.dynamicInput"; | const char *const OPTION_EXEC_DYNAMIC_INPUT = "ge.exec.dynamicInput"; | ||||
const char *const OPTION_EXEC_DYNAMIC_EXECUTE_MODE = "ge.exec.dynamicGraphExecuteMode"; | const char *const OPTION_EXEC_DYNAMIC_EXECUTE_MODE = "ge.exec.dynamicGraphExecuteMode"; | ||||
const char *const OPTION_EXEC_DATA_INPUTS_SHAPE_RANGE = "ge.exec.dataInputsShapeRange"; | const char *const OPTION_EXEC_DATA_INPUTS_SHAPE_RANGE = "ge.exec.dataInputsShapeRange"; | ||||
const char *const OPTION_EXEC_ENABLE_COPY_OUTPUT_ADDR = "ge.exec.enableCopyOutputAddr"; | |||||
// Option key: memory init | // Option key: memory init | ||||
const char *const GRAPH_MEMORY_MAX_SIZE = "ge.graphMemoryMaxSize"; | const char *const GRAPH_MEMORY_MAX_SIZE = "ge.graphMemoryMaxSize"; | ||||
@@ -58,6 +58,9 @@ static const int32_t ACL_ERROR_RT_NO_STREAM_RESOURCE = 207008; // no stream re | |||||
static const int32_t ACL_ERROR_RT_NO_NOTIFY_RESOURCE = 207009; // no notify resource | static const int32_t ACL_ERROR_RT_NO_NOTIFY_RESOURCE = 207009; // no notify resource | ||||
static const int32_t ACL_ERROR_RT_NO_MODEL_RESOURCE = 207010; // no model resource | static const int32_t ACL_ERROR_RT_NO_MODEL_RESOURCE = 207010; // no model resource | ||||
static const int32_t ACL_ERROR_RT_NO_CDQ_RESOURCE = 207011; // no cdq resource | static const int32_t ACL_ERROR_RT_NO_CDQ_RESOURCE = 207011; // no cdq resource | ||||
static const int32_t ACL_ERROR_RT_OVER_LIMIT = 207012; // over limit | |||||
static const int32_t ACL_ERROR_RT_QUEUE_EMPTY = 207013; // queue is empty | |||||
static const int32_t ACL_ERROR_RT_QUEUE_FULL = 207014; // queue is full | |||||
static const int32_t ACL_ERROR_RT_INTERNAL_ERROR = 507000; // runtime internal error | static const int32_t ACL_ERROR_RT_INTERNAL_ERROR = 507000; // runtime internal error | ||||
static const int32_t ACL_ERROR_RT_TS_ERROR = 507001; // ts internel error | static const int32_t ACL_ERROR_RT_TS_ERROR = 507001; // ts internel error | ||||
@@ -33,7 +33,7 @@ | |||||
extern "C" { | extern "C" { | ||||
#endif | #endif | ||||
#define GE_MODULE_NAME static_cast<int>(GE) | |||||
#define GE_MODULE_NAME static_cast<int32_t>(GE) | |||||
// trace status of log | // trace status of log | ||||
enum TraceStatus { TRACE_INIT = 0, TRACE_RUNNING, TRACE_WAITING, TRACE_STOP }; | enum TraceStatus { TRACE_INIT = 0, TRACE_RUNNING, TRACE_WAITING, TRACE_STOP }; | ||||
@@ -51,43 +51,61 @@ class GE_FUNC_VISIBILITY GeLog { | |||||
}; | }; | ||||
inline bool IsLogEnable(int module_name, int log_level) { | inline bool IsLogEnable(int module_name, int log_level) { | ||||
int32_t enable = CheckLogLevel(module_name, log_level); | |||||
const int32_t enable = CheckLogLevel(module_name, log_level); | |||||
// 1:enable, 0:disable | // 1:enable, 0:disable | ||||
return (enable == 1); | return (enable == 1); | ||||
} | } | ||||
#define GELOGE(ERROR_CODE, fmt, ...) \ | |||||
dlog_error(GE_MODULE_NAME, "%lu %s: ErrorNo: %d(%s) %s" fmt, GeLog::GetTid(), __FUNCTION__, ERROR_CODE, \ | |||||
((GE_GET_ERRORNO_STR(ERROR_CODE)).c_str()), ErrorManager::GetInstance().GetLogHeader().c_str(), \ | |||||
##__VA_ARGS__) | |||||
#define GELOGW(fmt, ...) \ | |||||
if (IsLogEnable(GE_MODULE_NAME, DLOG_WARN)) \ | |||||
dlog_warn(GE_MODULE_NAME, "%lu %s:" fmt, GeLog::GetTid(), __FUNCTION__, ##__VA_ARGS__) | |||||
#define GELOGI(fmt, ...) \ | |||||
if (IsLogEnable(GE_MODULE_NAME, DLOG_INFO)) \ | |||||
dlog_info(GE_MODULE_NAME, "%lu %s:" fmt, GeLog::GetTid(), __FUNCTION__, ##__VA_ARGS__) | |||||
#define GELOGD(fmt, ...) \ | |||||
if (IsLogEnable(GE_MODULE_NAME, DLOG_DEBUG)) \ | |||||
dlog_debug(GE_MODULE_NAME, "%lu %s:" fmt, GeLog::GetTid(), __FUNCTION__, ##__VA_ARGS__) | |||||
#define GEEVENT(fmt, ...) dlog_event(GE_MODULE_NAME, "%lu %s:" fmt, GeLog::GetTid(), __FUNCTION__, ##__VA_ARGS__) | |||||
#define GELOGT(VALUE, fmt, ...) \ | |||||
do { \ | |||||
TraceStatus stat = VALUE; \ | |||||
const char *const TraceStatStr[] = {"INIT", "RUNNING", "WAITING", "STOP"}; \ | |||||
int idx = static_cast<int>(stat); \ | |||||
char *k = const_cast<char *>("status"); \ | |||||
char *v = const_cast<char *>(TraceStatStr[idx]); \ | |||||
KeyValue kv = {k, v}; \ | |||||
DlogWithKV(static_cast<int>(GE_MODULE_NAME), DLOG_TRACE, &kv, 1, "%lu %s:" fmt, GeLog::GetTid(), __FUNCTION__, \ | |||||
##__VA_ARGS__); \ | |||||
} while (0) | |||||
#define GE_LOG_ERROR(MOD_NAME, ERROR_CODE, fmt, ...) \ | |||||
dlog_error(MOD_NAME, "%lu %s: ErrorNo: %d(%s) %s" fmt, GeLog::GetTid(), __FUNCTION__, ERROR_CODE, \ | |||||
((GE_GET_ERRORNO_STR(ERROR_CODE)).c_str()), ErrorManager::GetInstance().GetLogHeader().c_str(), \ | |||||
##__VA_ARGS__) | |||||
#define GELOGE(ERROR_CODE, fmt, ...) \ | |||||
do { \ | |||||
dlog_error(GE_MODULE_NAME, "%lu %s: ErrorNo: %u(%s) %s" fmt, GeLog::GetTid(), &__FUNCTION__[0], ERROR_CODE, \ | |||||
((GE_GET_ERRORNO_STR(ERROR_CODE)).c_str()), ErrorManager::GetInstance().GetLogHeader().c_str(), \ | |||||
##__VA_ARGS__); \ | |||||
} while (false) | |||||
#define GELOGW(fmt, ...) \ | |||||
do { \ | |||||
if (IsLogEnable(GE_MODULE_NAME, DLOG_WARN)) { \ | |||||
dlog_warn(GE_MODULE_NAME, "%lu %s:" fmt, GeLog::GetTid(), &__FUNCTION__[0], ##__VA_ARGS__); \ | |||||
} \ | |||||
} while (false) | |||||
#define GELOGI(fmt, ...) \ | |||||
do { \ | |||||
if (IsLogEnable(GE_MODULE_NAME, DLOG_INFO)) { \ | |||||
dlog_info(GE_MODULE_NAME, "%lu %s:" fmt, GeLog::GetTid(), &__FUNCTION__[0], ##__VA_ARGS__); \ | |||||
} \ | |||||
} while (false) | |||||
#define GELOGD(fmt, ...) \ | |||||
do { \ | |||||
if (IsLogEnable(GE_MODULE_NAME, DLOG_DEBUG)) { \ | |||||
dlog_debug(GE_MODULE_NAME, "%lu %s:" fmt, GeLog::GetTid(), &__FUNCTION__[0], ##__VA_ARGS__); \ | |||||
} \ | |||||
} while (false) | |||||
#define GEEVENT(fmt, ...) \ | |||||
do { \ | |||||
dlog_event(GE_MODULE_NAME, "%lu %s:" fmt, GeLog::GetTid(), &__FUNCTION__[0], ##__VA_ARGS__); \ | |||||
} while (false) | |||||
#define GELOGT(VALUE, fmt, ...) \ | |||||
do { \ | |||||
TraceStatus stat = VALUE; \ | |||||
const char *const TraceStatStr[] = {"INIT", "RUNNING", "WAITING", "STOP"}; \ | |||||
const int32_t idx = static_cast<int32_t>(stat); \ | |||||
char *k = const_cast<char *>("status"); \ | |||||
char *v = const_cast<char *>(TraceStatStr[idx]); \ | |||||
KeyValue kv = {k, v}; \ | |||||
DlogWithKV(GE_MODULE_NAME, DLOG_TRACE, &kv, 1, "%lu %s:" fmt, GeLog::GetTid(), &__FUNCTION__[0], ##__VA_ARGS__); \ | |||||
} while (false) | |||||
#define GE_LOG_ERROR(MOD_NAME, ERROR_CODE, fmt, ...) \ | |||||
do { \ | |||||
dlog_error(MOD_NAME, "%lu %s: ErrorNo: %u(%s) %s" fmt, GeLog::GetTid(), &__FUNCTION__[0], ERROR_CODE, \ | |||||
((GE_GET_ERRORNO_STR(ERROR_CODE)).c_str()), ErrorManager::GetInstance().GetLogHeader().c_str(), \ | |||||
##__VA_ARGS__); \ | |||||
} while (false) | |||||
// print memory when it is greater than 1KB. | // print memory when it is greater than 1KB. | ||||
#define GE_PRINT_DYNAMIC_MEMORY(FUNC, PURPOSE, SIZE) \ | #define GE_PRINT_DYNAMIC_MEMORY(FUNC, PURPOSE, SIZE) \ | ||||
@@ -95,7 +113,7 @@ inline bool IsLogEnable(int module_name, int log_level) { | |||||
if ((SIZE) > 1024) { \ | if ((SIZE) > 1024) { \ | ||||
GELOGI("MallocMemory, func=%s, size=%zu, purpose=%s", (#FUNC), static_cast<size_t>(SIZE), (PURPOSE)); \ | GELOGI("MallocMemory, func=%s, size=%zu, purpose=%s", (#FUNC), static_cast<size_t>(SIZE), (PURPOSE)); \ | ||||
} \ | } \ | ||||
} while (0); | |||||
} while (false) | |||||
#ifdef __cplusplus | #ifdef __cplusplus | ||||
} | } | ||||
#endif | #endif | ||||
@@ -52,82 +52,82 @@ | |||||
GELOGW(__VA_ARGS__); \ | GELOGW(__VA_ARGS__); \ | ||||
} | } | ||||
#define GE_LOGE_IF(condition, ...) \ | |||||
if ((condition)) { \ | |||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
#define GE_LOGE_IF(condition, ...) \ | |||||
if ((condition)) { \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
} | } | ||||
// If expr is not SUCCESS, print the log and return the same value | // If expr is not SUCCESS, print the log and return the same value | ||||
#define GE_CHK_STATUS_RET(expr, ...) \ | |||||
do { \ | |||||
const ge::Status _status = (expr); \ | |||||
if (_status != ge::SUCCESS) { \ | |||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
return _status; \ | |||||
} \ | |||||
} while (0); | |||||
#define GE_CHK_STATUS_RET(expr, ...) \ | |||||
do { \ | |||||
const ge::Status _chk_status = (expr); \ | |||||
if (_chk_status != ge::SUCCESS) { \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
return _chk_status; \ | |||||
} \ | |||||
} while (false) | |||||
// If expr is not SUCCESS, print the log and do not execute return | // If expr is not SUCCESS, print the log and do not execute return | ||||
#define GE_CHK_STATUS(expr, ...) \ | |||||
do { \ | |||||
const ge::Status _status = (expr); \ | |||||
if (_status != ge::SUCCESS) { \ | |||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
} \ | |||||
} while (0); | |||||
#define GE_CHK_STATUS(expr, ...) \ | |||||
do { \ | |||||
const ge::Status _chk_status = (expr); \ | |||||
if (_chk_status != ge::SUCCESS) { \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
} \ | |||||
} while (false) | |||||
// If expr is not SUCCESS, return the same value | // If expr is not SUCCESS, return the same value | ||||
#define GE_CHK_STATUS_RET_NOLOG(expr) \ | |||||
do { \ | |||||
const ge::Status _status = (expr); \ | |||||
if (_status != ge::SUCCESS) { \ | |||||
return _status; \ | |||||
} \ | |||||
} while (0); | |||||
#define GE_CHK_STATUS_RET_NOLOG(expr) \ | |||||
do { \ | |||||
const ge::Status _chk_status = (expr); \ | |||||
if (_chk_status != ge::SUCCESS) { \ | |||||
return _chk_status; \ | |||||
} \ | |||||
} while (false) | |||||
// If expr is not GRAPH_SUCCESS, print the log and return FAILED | // If expr is not GRAPH_SUCCESS, print the log and return FAILED | ||||
#define GE_CHK_GRAPH_STATUS_RET(expr, ...) \ | #define GE_CHK_GRAPH_STATUS_RET(expr, ...) \ | ||||
do { \ | do { \ | ||||
if ((expr) != ge::GRAPH_SUCCESS) { \ | if ((expr) != ge::GRAPH_SUCCESS) { \ | ||||
REPORT_CALL_ERROR("E19999", "Operator graph failed"); \ | REPORT_CALL_ERROR("E19999", "Operator graph failed"); \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
return FAILED; \ | return FAILED; \ | ||||
} \ | } \ | ||||
} while (0); | |||||
} while (false) | |||||
// If expr is not SUCCESS, print the log and execute a custom statement | // If expr is not SUCCESS, print the log and execute a custom statement | ||||
#define GE_CHK_STATUS_EXEC(expr, exec_expr, ...) \ | |||||
do { \ | |||||
const ge::Status _status = (expr); \ | |||||
GE_CHK_BOOL_EXEC(_status == SUCCESS, exec_expr, __VA_ARGS__); \ | |||||
} while (0); | |||||
#define GE_CHK_STATUS_EXEC(expr, exec_expr, ...) \ | |||||
do { \ | |||||
const ge::Status _chk_status = (expr); \ | |||||
GE_CHK_BOOL_EXEC(_chk_status == SUCCESS, exec_expr, __VA_ARGS__); \ | |||||
} while (false) | |||||
// If expr is not true, print the log and return the specified status | // If expr is not true, print the log and return the specified status | ||||
#define GE_CHK_BOOL_RET_STATUS(expr, _status, ...) \ | #define GE_CHK_BOOL_RET_STATUS(expr, _status, ...) \ | ||||
do { \ | do { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (!b) { \ | if (!b) { \ | ||||
REPORT_INNER_ERROR("E19999", __VA_ARGS__); \ | REPORT_INNER_ERROR("E19999", __VA_ARGS__); \ | ||||
GELOGE(_status, __VA_ARGS__); \ | GELOGE(_status, __VA_ARGS__); \ | ||||
return _status; \ | return _status; \ | ||||
} \ | } \ | ||||
} while (0); | |||||
} while (false) | |||||
// If expr is not true, print the log and return the specified status | // If expr is not true, print the log and return the specified status | ||||
#define GE_CHK_BOOL_RET_STATUS_NOLOG(expr, _status, ...) \ | #define GE_CHK_BOOL_RET_STATUS_NOLOG(expr, _status, ...) \ | ||||
do { \ | do { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (!b) { \ | if (!b) { \ | ||||
return _status; \ | return _status; \ | ||||
} \ | } \ | ||||
} while (0); | |||||
} while (false) | |||||
// If expr is not true, print the log and execute a custom statement | // If expr is not true, print the log and execute a custom statement | ||||
#define GE_CHK_BOOL_EXEC(expr, exec_expr, ...) \ | #define GE_CHK_BOOL_EXEC(expr, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (!b) { \ | if (!b) { \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
exec_expr; \ | exec_expr; \ | ||||
} \ | } \ | ||||
} | } | ||||
@@ -135,7 +135,7 @@ | |||||
// If expr is not true, print the log and execute a custom statement | // If expr is not true, print the log and execute a custom statement | ||||
#define GE_CHK_BOOL_EXEC_WARN(expr, exec_expr, ...) \ | #define GE_CHK_BOOL_EXEC_WARN(expr, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (!b) { \ | if (!b) { \ | ||||
GELOGW(__VA_ARGS__); \ | GELOGW(__VA_ARGS__); \ | ||||
exec_expr; \ | exec_expr; \ | ||||
@@ -144,7 +144,7 @@ | |||||
// If expr is not true, print the log and execute a custom statement | // If expr is not true, print the log and execute a custom statement | ||||
#define GE_CHK_BOOL_EXEC_INFO(expr, exec_expr, ...) \ | #define GE_CHK_BOOL_EXEC_INFO(expr, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (!b) { \ | if (!b) { \ | ||||
GELOGI(__VA_ARGS__); \ | GELOGI(__VA_ARGS__); \ | ||||
exec_expr; \ | exec_expr; \ | ||||
@@ -154,7 +154,7 @@ | |||||
// If expr is not true, print the log and execute a custom statement | // If expr is not true, print the log and execute a custom statement | ||||
#define GE_CHK_BOOL_TRUE_EXEC_INFO(expr, exec_expr, ...) \ | #define GE_CHK_BOOL_TRUE_EXEC_INFO(expr, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (b) { \ | if (b) { \ | ||||
GELOGI(__VA_ARGS__); \ | GELOGI(__VA_ARGS__); \ | ||||
exec_expr; \ | exec_expr; \ | ||||
@@ -164,16 +164,16 @@ | |||||
// If expr is true, print logs and execute custom statements | // If expr is true, print logs and execute custom statements | ||||
#define GE_CHK_BOOL_TRUE_EXEC_WITH_LOG(expr, exec_expr, ...) \ | #define GE_CHK_BOOL_TRUE_EXEC_WITH_LOG(expr, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (b) { \ | if (b) { \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
exec_expr; \ | exec_expr; \ | ||||
} \ | } \ | ||||
} | } | ||||
// If expr is true, print the Information log and execute a custom statement | // If expr is true, print the Information log and execute a custom statement | ||||
#define GE_CHK_TRUE_EXEC_INFO(expr, exec_expr, ...) \ | #define GE_CHK_TRUE_EXEC_INFO(expr, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (b) { \ | if (b) { \ | ||||
GELOGI(__VA_ARGS__); \ | GELOGI(__VA_ARGS__); \ | ||||
exec_expr; \ | exec_expr; \ | ||||
@@ -183,9 +183,9 @@ | |||||
// If expr is not SUCCESS, print the log and execute the expression + return | // If expr is not SUCCESS, print the log and execute the expression + return | ||||
#define GE_CHK_BOOL_TRUE_RET_VOID(expr, exec_expr, ...) \ | #define GE_CHK_BOOL_TRUE_RET_VOID(expr, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (b) { \ | if (b) { \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
exec_expr; \ | exec_expr; \ | ||||
return; \ | return; \ | ||||
} \ | } \ | ||||
@@ -194,10 +194,10 @@ | |||||
// If expr is not SUCCESS, print the log and execute the expression + return _status | // If expr is not SUCCESS, print the log and execute the expression + return _status | ||||
#define GE_CHK_BOOL_TRUE_EXEC_RET_STATUS(expr, _status, exec_expr, ...) \ | #define GE_CHK_BOOL_TRUE_EXEC_RET_STATUS(expr, _status, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (b) { \ | if (b) { \ | ||||
REPORT_INNER_ERROR("E19999", __VA_ARGS__); \ | REPORT_INNER_ERROR("E19999", __VA_ARGS__); \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
exec_expr; \ | exec_expr; \ | ||||
return _status; \ | return _status; \ | ||||
} \ | } \ | ||||
@@ -206,7 +206,7 @@ | |||||
// If expr is not true, execute a custom statement | // If expr is not true, execute a custom statement | ||||
#define GE_CHK_BOOL_EXEC_NOLOG(expr, exec_expr) \ | #define GE_CHK_BOOL_EXEC_NOLOG(expr, exec_expr) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (!b) { \ | if (!b) { \ | ||||
exec_expr; \ | exec_expr; \ | ||||
} \ | } \ | ||||
@@ -214,34 +214,34 @@ | |||||
// -----------------runtime related macro definitions------------------------------- | // -----------------runtime related macro definitions------------------------------- | ||||
// If expr is not RT_ERROR_NONE, print the log | // If expr is not RT_ERROR_NONE, print the log | ||||
#define GE_CHK_RT(expr) \ | |||||
do { \ | |||||
rtError_t _rt_ret = (expr); \ | |||||
if (_rt_ret != RT_ERROR_NONE) { \ | |||||
DOMI_LOGE("Call rt api failed, ret: 0x%X", _rt_ret); \ | |||||
} \ | |||||
} while (0); | |||||
#define GE_CHK_RT(expr) \ | |||||
do { \ | |||||
const rtError_t _rt_ret = (expr); \ | |||||
if (_rt_ret != RT_ERROR_NONE) { \ | |||||
GELOGE(ge::FAILED, "Call rt api failed, ret: 0x%X", _rt_ret); \ | |||||
} \ | |||||
} while (false) | |||||
// If expr is not RT_ERROR_NONE, print the log and execute the exec_expr expression | // If expr is not RT_ERROR_NONE, print the log and execute the exec_expr expression | ||||
#define GE_CHK_RT_EXEC(expr, exec_expr) \ | |||||
{ \ | |||||
rtError_t _rt_ret = (expr); \ | |||||
if (_rt_ret != RT_ERROR_NONE) { \ | |||||
DOMI_LOGE("Call rt api failed, ret: 0x%X", _rt_ret); \ | |||||
exec_expr; \ | |||||
} \ | |||||
} | |||||
#define GE_CHK_RT_EXEC(expr, exec_expr) \ | |||||
do { \ | |||||
const rtError_t _rt_ret = (expr); \ | |||||
if (_rt_ret != RT_ERROR_NONE) { \ | |||||
GELOGE(ge::FAILED, "Call rt api failed, ret: 0x%X", _rt_ret); \ | |||||
exec_expr; \ | |||||
} \ | |||||
} while (false) | |||||
// If expr is not RT_ERROR_NONE, print the log and return | // If expr is not RT_ERROR_NONE, print the log and return | ||||
#define GE_CHK_RT_RET(expr) \ | #define GE_CHK_RT_RET(expr) \ | ||||
do { \ | do { \ | ||||
rtError_t _rt_ret = (expr); \ | |||||
const rtError_t _rt_ret = (expr); \ | |||||
if (_rt_ret != RT_ERROR_NONE) { \ | if (_rt_ret != RT_ERROR_NONE) { \ | ||||
REPORT_CALL_ERROR("E19999", "Call %s fail, ret: 0x%X", #expr, _rt_ret); \ | REPORT_CALL_ERROR("E19999", "Call %s fail, ret: 0x%X", #expr, _rt_ret); \ | ||||
DOMI_LOGE("Call rt api failed, ret: 0x%X", _rt_ret); \ | |||||
GELOGE(ge::FAILED, "Call rt api failed, ret: 0x%X", _rt_ret); \ | |||||
return RT_ERROR_TO_GE_STATUS(_rt_ret); \ | return RT_ERROR_TO_GE_STATUS(_rt_ret); \ | ||||
} \ | } \ | ||||
} while (0); | |||||
} while (false) | |||||
// If expr is true, execute exec_expr without printing logs | // If expr is true, execute exec_expr without printing logs | ||||
#define GE_IF_BOOL_EXEC(expr, exec_expr) \ | #define GE_IF_BOOL_EXEC(expr, exec_expr) \ | ||||
@@ -256,7 +256,7 @@ | |||||
try { \ | try { \ | ||||
exec_expr0; \ | exec_expr0; \ | ||||
} catch (const std::bad_alloc &) { \ | } catch (const std::bad_alloc &) { \ | ||||
DOMI_LOGE("Make shared failed"); \ | |||||
GELOGE(ge::FAILED, "Make shared failed"); \ | |||||
exec_expr1; \ | exec_expr1; \ | ||||
} | } | ||||
@@ -274,13 +274,13 @@ | |||||
#define GE_CHK_LOG_AND_ERRORMSG(expr, _status, errormsg) \ | #define GE_CHK_LOG_AND_ERRORMSG(expr, _status, errormsg) \ | ||||
do { \ | do { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (!b) { \ | if (!b) { \ | ||||
GELOGE(_status, "%s", errormsg); \ | GELOGE(_status, "%s", errormsg); \ | ||||
ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {errormsg}); \ | ErrorManager::GetInstance().ATCReportErrMessage("E19021", {"reason"}, {errormsg}); \ | ||||
return _status; \ | return _status; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
template <typename T> | template <typename T> | ||||
GE_FUNC_VISIBILITY std::string FmtToStr(const T &t) { | GE_FUNC_VISIBILITY std::string FmtToStr(const T &t) { | ||||
@@ -61,29 +61,29 @@ enum ErrorLevel { | |||||
CRITICAL_LEVEL = 0b100, | CRITICAL_LEVEL = 0b100, | ||||
}; | }; | ||||
// Each module defines error codes using the following macros | |||||
// Each module defines error codes using the following macros, name can not be modified to (name) | |||||
#define GE_ERRORNO_COMMON(name, value, desc) \ | #define GE_ERRORNO_COMMON(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, COMMON_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, COMMON_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_CLIENT(name, value, desc) \ | #define GE_ERRORNO_CLIENT(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, CLIENT_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, CLIENT_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_INIT(name, value, desc) \ | #define GE_ERRORNO_INIT(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, INIT_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, INIT_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_SESSION(name, value, desc) \ | #define GE_ERRORNO_SESSION(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, SESSION_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, SESSION_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_GRAPH(name, value, desc) \ | #define GE_ERRORNO_GRAPH(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, GRAPH_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, GRAPH_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_ENGINE(name, value, desc) \ | #define GE_ERRORNO_ENGINE(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, ENGINE_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, ENGINE_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_OPS(name, value, desc) \ | #define GE_ERRORNO_OPS(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, OPS_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, OPS_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_PLUGIN(name, value, desc) \ | #define GE_ERRORNO_PLUGIN(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, PLUGIN_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, PLUGIN_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_RUNTIME(name, value, desc) \ | #define GE_ERRORNO_RUNTIME(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, RUNTIME_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, RUNTIME_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_EXECUTOR(name, value, desc) \ | #define GE_ERRORNO_EXECUTOR(name, value, desc) \ | ||||
GE_ERRORNO(RT_DEVICE, ERROR_CODE, COMMON_LEVEL, SYSID_GE, EXECUTOR_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_DEVICE, ERROR_CODE, COMMON_LEVEL, SYSID_GE, EXECUTOR_MODULE, name, (value), (desc)) | |||||
#define GE_ERRORNO_GENERATOR(name, value, desc) \ | #define GE_ERRORNO_GENERATOR(name, value, desc) \ | ||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, GENERATOR_MODULE, name, value, desc) | |||||
GE_ERRORNO(RT_HOST, ERROR_CODE, COMMON_LEVEL, SYSID_GE, GENERATOR_MODULE, name, (value), (desc)) | |||||
// Get error code description | // Get error code description | ||||
#define GE_GET_ERRORNO_STR(value) ge::StatusFactory::Instance()->GetErrDesc(value) | #define GE_GET_ERRORNO_STR(value) ge::StatusFactory::Instance()->GetErrDesc(value) | ||||
@@ -125,13 +125,13 @@ GE_ERRORNO_CLIENT(GE_CLI_GE_ALREADY_INITIALIZED, 10, "GE is already initialized. | |||||
GE_ERRORNO_CLIENT(GE_CLI_GE_NOT_INITIALIZED, 11, "GE is not yet initialized or is finalized."); // 1343229963 | GE_ERRORNO_CLIENT(GE_CLI_GE_NOT_INITIALIZED, 11, "GE is not yet initialized or is finalized."); // 1343229963 | ||||
// Init module error code definition | // Init module error code definition | ||||
GE_ERRORNO_INIT(GE_MULTI_INIT, 0, "Multiple initializations are not supported."); // 1343234048 | |||||
GE_ERRORNO_INIT(GE_FINALIZE_NOT_INIT, 1, "Finalize is not allowed before initialization."); // 1343234049 | |||||
GE_ERRORNO_INIT(GE_MULTI_FINALIZE, 2, "Multiple finalizations are not supported."); // 1343234050 | |||||
GE_ERRORNO_INIT(GE_PROF_MULTI_INIT, 3, "Multiple profiling initializations are not supported."); // 1343234051 | |||||
GE_ERRORNO_INIT(GE_PROF_NOT_INIT, 4, "Profing initializations have not been done."); // 1343234052 | |||||
GE_ERRORNO_INIT(GE_MULTI_INIT, 0, "Multiple initializations are not supported."); // 1343234048 | |||||
GE_ERRORNO_INIT(GE_FINALIZE_NOT_INIT, 1, "Finalize is not allowed before initialization."); // 1343234049 | |||||
GE_ERRORNO_INIT(GE_MULTI_FINALIZE, 2, "Multiple finalizations are not supported."); // 1343234050 | |||||
GE_ERRORNO_INIT(GE_PROF_MULTI_INIT, 3, "Multiple profiling initializations are not supported."); // 1343234051 | |||||
GE_ERRORNO_INIT(GE_PROF_NOT_INIT, 4, "Profing initializations have not been done."); // 1343234052 | |||||
GE_ERRORNO_INIT(GE_PROF_MODE_CONFLICT, 5, | GE_ERRORNO_INIT(GE_PROF_MODE_CONFLICT, 5, | ||||
"Profiling command mode which is preferred is running, the api mode will not work."); // 1343234053 | |||||
"Profiling command mode which is preferred is running, the api mode will not work."); // 1343234053 | |||||
// Session module error code definition | // Session module error code definition | ||||
GE_ERRORNO_SESSION(GE_SESS_INIT_FAILED, 0, "Failed to initialize session."); // 1343238144 | GE_ERRORNO_SESSION(GE_SESS_INIT_FAILED, 0, "Failed to initialize session."); // 1343238144 | ||||
@@ -216,8 +216,8 @@ GE_ERRORNO_ENGINE(GE_ENG_FINALIZE_FAILED, 1, "Engine finalize failed."); | |||||
GE_ERRORNO_ENGINE(GE_ENG_MEMTYPE_ERROR, 2, "Memory type HBM is necessary when engine is in device"); // 1343246338 | GE_ERRORNO_ENGINE(GE_ENG_MEMTYPE_ERROR, 2, "Memory type HBM is necessary when engine is in device"); // 1343246338 | ||||
// Optimize errocode | // Optimize errocode | ||||
GE_ERRORNO_GRAPH(TO_BE_DELETED, 63, "The node of the graph to be deleted."); // 1343242303 | |||||
GE_ERRORNO_GRAPH(NOT_CHANGED, 64, "The node of the graph no changed."); // 1343242304 | |||||
GE_ERRORNO_GRAPH(TO_BE_DELETED, 63, "The node of the graph to be deleted."); // 1343242303 | |||||
GE_ERRORNO_GRAPH(NOT_CHANGED, 64, "The node of the graph no changed."); // 1343242304 | |||||
// Ops module error code definition | // Ops module error code definition | ||||
GE_ERRORNO_OPS(GE_OPS_KERNEL_STORE_INIT_FAILED, 0, "Failed to initialize OpsKernelInfoStore."); // 1343250432 | GE_ERRORNO_OPS(GE_OPS_KERNEL_STORE_INIT_FAILED, 0, "Failed to initialize OpsKernelInfoStore."); // 1343250432 | ||||
@@ -313,7 +313,7 @@ GE_ERRORNO_GENERATOR(GE_GENERATOR_GRAPH_MANAGER_BUILD_GRAPH_FAILED, 3, "Graph ma | |||||
GE_ERRORNO_GENERATOR(GE_GENERATOR_GRAPH_MANAGER_FINALIZE_FAILED, 4, "Graph manager finalize failed."); | GE_ERRORNO_GENERATOR(GE_GENERATOR_GRAPH_MANAGER_FINALIZE_FAILED, 4, "Graph manager finalize failed."); | ||||
GE_ERRORNO_GENERATOR(GE_GENERATOR_GRAPH_MANAGER_SAVE_MODEL_FAILED, 5, "Graph manager save model failed."); | GE_ERRORNO_GENERATOR(GE_GENERATOR_GRAPH_MANAGER_SAVE_MODEL_FAILED, 5, "Graph manager save model failed."); | ||||
#define RT_ERROR_TO_GE_STATUS(RT_ERROR) static_cast<Status>(RT_ERROR) | |||||
#define RT_ERROR_TO_GE_STATUS(RT_ERROR) static_cast<const Status>(RT_ERROR) | |||||
} // namespace ge | } // namespace ge | ||||
#endif // INC_FRAMEWORK_COMMON_GE_INNER_ERROR_CODES_H_ | #endif // INC_FRAMEWORK_COMMON_GE_INNER_ERROR_CODES_H_ |
@@ -279,10 +279,19 @@ struct TaskDescInfo { | |||||
}; | }; | ||||
struct OpDescInfo { | struct OpDescInfo { | ||||
std::string op_name; | |||||
std::string op_type; | |||||
uint32_t task_id; | |||||
uint32_t stream_id; | |||||
std::string op_name = ""; | |||||
std::string op_type = ""; | |||||
uint32_t task_id = 0; | |||||
uint32_t stream_id = 0; | |||||
uint32_t imply_type = 0; | |||||
uint32_t block_dim = 0; | |||||
std::string op_file_path = ""; | |||||
std::string dev_func = ""; | |||||
std::string tvm_magic = ""; | |||||
uint32_t tiling_key = 0; | |||||
std::string tiling_data = ""; | |||||
std::string node_info = ""; | |||||
std::vector<int64_t> workspace_bytes; | |||||
std::vector<Format> input_format; | std::vector<Format> input_format; | ||||
std::vector<std::vector<int64_t>> input_shape; | std::vector<std::vector<int64_t>> input_shape; | ||||
std::vector<DataType> input_data_type; | std::vector<DataType> input_data_type; | ||||
@@ -95,7 +95,7 @@ class GE_FUNC_VISIBILITY OpUtils { | |||||
/// @param [out] aipp_params aipp parameters | /// @param [out] aipp_params aipp parameters | ||||
/// @return enum of tagCCAippInputFormat | /// @return enum of tagCCAippInputFormat | ||||
/// | /// | ||||
static Status ConvertAippParams(const GeAttrValue::NamedAttrs &aipp_attr, domi::AippOpParams *aipp_params); | |||||
static Status ConvertAippParams(const NamedAttrs &aipp_attr, domi::AippOpParams *aipp_params); | |||||
static Status TransferDim(const std::vector<int64_t> &dim, std::vector<int64_t> &dim_vector); | static Status TransferDim(const std::vector<int64_t> &dim, std::vector<int64_t> &dim_vector); | ||||
template <typename T> | template <typename T> | ||||
static void SliceData(const std::vector<char *> &input, int64_t chunk_size, std::vector<char *> &output, | static void SliceData(const std::vector<char *> &input, int64_t chunk_size, std::vector<char *> &output, | ||||
@@ -78,8 +78,8 @@ class GE_FUNC_VISIBILITY StringUtils { | |||||
/// @param [in] delim separator | /// @param [in] delim separator | ||||
/// @return string array after segmentation | /// @return string array after segmentation | ||||
/// | /// | ||||
static std::vector<std::string> Split(const std::string &str, char delim) { | |||||
std::vector<std::string> elems; | |||||
static std::vector<std::string, std::allocator<std::string>> Split(const std::string &str, char delim) { | |||||
std::vector<std::string, std::allocator<std::string>> elems; | |||||
if (str.empty()) { | if (str.empty()) { | ||||
elems.emplace_back(""); | elems.emplace_back(""); | ||||
@@ -339,6 +339,8 @@ REGISTER_OPTYPE_DECLARE(PLACEHOLDER, "PlaceHolder"); | |||||
REGISTER_OPTYPE_DECLARE(END, "End"); | REGISTER_OPTYPE_DECLARE(END, "End"); | ||||
REGISTER_OPTYPE_DECLARE(BASICLSTMCELL, "BasicLSTMCell"); | REGISTER_OPTYPE_DECLARE(BASICLSTMCELL, "BasicLSTMCell"); | ||||
REGISTER_OPTYPE_DECLARE(GETNEXT, "GetNext"); | REGISTER_OPTYPE_DECLARE(GETNEXT, "GetNext"); | ||||
REGISTER_OPTYPE_DECLARE(ITERATOR, "Iterator"); | |||||
REGISTER_OPTYPE_DECLARE(ITERATORV2, "IteratorV2"); | |||||
REGISTER_OPTYPE_DECLARE(INITDATA, "InitData"); | REGISTER_OPTYPE_DECLARE(INITDATA, "InitData"); | ||||
REGISTER_OPTYPE_DECLARE(TRANSSHAPE, "TransShape") | REGISTER_OPTYPE_DECLARE(TRANSSHAPE, "TransShape") | ||||
REGISTER_OPTYPE_DECLARE(REFIDENTITY, "RefIdentity"); | REGISTER_OPTYPE_DECLARE(REFIDENTITY, "RefIdentity"); | ||||
@@ -18,8 +18,8 @@ | |||||
#define INC_FRAMEWORK_COMMON_UTIL_H_ | #define INC_FRAMEWORK_COMMON_UTIL_H_ | ||||
#include <google/protobuf/text_format.h> | #include <google/protobuf/text_format.h> | ||||
#include <limits.h> | |||||
#include <math.h> | |||||
#include <climits> | |||||
#include <cmath> | |||||
#include <sstream> | #include <sstream> | ||||
#include <string> | #include <string> | ||||
#include <vector> | #include <vector> | ||||
@@ -30,17 +30,17 @@ | |||||
#include "framework/common/ge_inner_error_codes.h" | #include "framework/common/ge_inner_error_codes.h" | ||||
#include "mmpa/mmpa_api.h" | #include "mmpa/mmpa_api.h" | ||||
#define GE_CHECK_POSITIVE_SIZE_RANGE(size) \ | |||||
do { \ | |||||
if (size <= 0) { \ | |||||
DOMI_LOGE("param[%s] is not a positive number", #size); \ | |||||
return PARAM_INVALID; \ | |||||
} \ | |||||
} while (0) | |||||
#define GE_CHECK_POSITIVE_SIZE_RANGE(size) \ | |||||
do { \ | |||||
if (size <= 0) { \ | |||||
GELOGE(ge::FAILED, "param[%s] is not a positive number", #size); \ | |||||
return PARAM_INVALID; \ | |||||
} \ | |||||
} while (false) | |||||
#define CHECK_FALSE_EXEC(expr, exec_expr, ...) \ | #define CHECK_FALSE_EXEC(expr, exec_expr, ...) \ | ||||
{ \ | { \ | ||||
bool b = (expr); \ | |||||
const bool b = (expr); \ | |||||
if (!b) { \ | if (!b) { \ | ||||
exec_expr; \ | exec_expr; \ | ||||
} \ | } \ | ||||
@@ -59,131 +59,133 @@ | |||||
}); | }); | ||||
// For propagating errors when calling a function. | // For propagating errors when calling a function. | ||||
#define GE_RETURN_IF_ERROR(expr) \ | |||||
do { \ | |||||
const ::ge::Status _status = (expr); \ | |||||
if (_status) return _status; \ | |||||
} while (0) | |||||
#define GE_RETURN_IF_ERROR(expr) \ | |||||
do { \ | |||||
const ge::Status _chk_status = (expr); \ | |||||
if (_chk_status != ge::SUCCESS) { \ | |||||
return _chk_status; \ | |||||
} \ | |||||
} while (false) | |||||
#define GE_RETURN_WITH_LOG_IF_ERROR(expr, ...) \ | #define GE_RETURN_WITH_LOG_IF_ERROR(expr, ...) \ | ||||
do { \ | do { \ | ||||
const ::ge::Status _status = (expr); \ | |||||
if (_status) { \ | |||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
return _status; \ | |||||
const ge::Status _chk_status = (expr); \ | |||||
if (_chk_status != ge::SUCCESS) { \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
return _chk_status; \ | |||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
// check whether the parameter is true. If it is, return FAILED and record the error log | // check whether the parameter is true. If it is, return FAILED and record the error log | ||||
#define GE_RETURN_WITH_LOG_IF_TRUE(condition, ...) \ | #define GE_RETURN_WITH_LOG_IF_TRUE(condition, ...) \ | ||||
do { \ | do { \ | ||||
if (condition) { \ | if (condition) { \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
return ge::FAILED; \ | return ge::FAILED; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
// Check if the parameter is false. If yes, return FAILED and record the error log | // Check if the parameter is false. If yes, return FAILED and record the error log | ||||
#define GE_RETURN_WITH_LOG_IF_FALSE(condition, ...) \ | #define GE_RETURN_WITH_LOG_IF_FALSE(condition, ...) \ | ||||
do { \ | do { \ | ||||
bool _condition = (condition); \ | |||||
const bool _condition = (condition); \ | |||||
if (!_condition) { \ | if (!_condition) { \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
return ge::FAILED; \ | return ge::FAILED; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
// Checks whether the parameter is true. If so, returns PARAM_INVALID and records the error log | // Checks whether the parameter is true. If so, returns PARAM_INVALID and records the error log | ||||
#define GE_RT_PARAM_INVALID_WITH_LOG_IF_TRUE(condition, ...) \ | #define GE_RT_PARAM_INVALID_WITH_LOG_IF_TRUE(condition, ...) \ | ||||
do { \ | do { \ | ||||
if (condition) { \ | if (condition) { \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
return ge::PARAM_INVALID; \ | return ge::PARAM_INVALID; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
// Check if the parameter is false. If yes, return PARAM_INVALID and record the error log | // Check if the parameter is false. If yes, return PARAM_INVALID and record the error log | ||||
#define GE_RT_PARAM_INVALID_WITH_LOG_IF_FALSE(condition, ...) \ | #define GE_RT_PARAM_INVALID_WITH_LOG_IF_FALSE(condition, ...) \ | ||||
do { \ | do { \ | ||||
bool _condition = (condition); \ | |||||
const bool _condition = (condition); \ | |||||
if (!_condition) { \ | if (!_condition) { \ | ||||
DOMI_LOGE(__VA_ARGS__); \ | |||||
GELOGE(ge::FAILED, __VA_ARGS__); \ | |||||
return ge::PARAM_INVALID; \ | return ge::PARAM_INVALID; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
// Check if the parameter is null. If yes, return PARAM_INVALID and record the error | // Check if the parameter is null. If yes, return PARAM_INVALID and record the error | ||||
#define GE_CHECK_NOTNULL(val) \ | #define GE_CHECK_NOTNULL(val) \ | ||||
do { \ | do { \ | ||||
if (val == nullptr) { \ | if (val == nullptr) { \ | ||||
REPORT_INNER_ERROR("E19999", "Param:%s is nullptr, check invalid", #val); \ | REPORT_INNER_ERROR("E19999", "Param:%s is nullptr, check invalid", #val); \ | ||||
DOMI_LOGE("[Check][Param:%s]null is invalid.", #val); \ | |||||
GELOGE(ge::FAILED, "[Check][Param:%s]null is invalid.", #val); \ | |||||
return ge::PARAM_INVALID; \ | return ge::PARAM_INVALID; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
// Check if the parameter is null. If yes, just return and record the error | // Check if the parameter is null. If yes, just return and record the error | ||||
#define GE_CHECK_NOTNULL_JUST_RETURN(val) \ | |||||
do { \ | |||||
if (val == nullptr) { \ | |||||
DOMI_LOGE("param[%s] must not be null.", #val); \ | |||||
return; \ | |||||
} \ | |||||
} while (0) | |||||
#define GE_CHECK_NOTNULL_JUST_RETURN(val) \ | |||||
do { \ | |||||
if (val == nullptr) { \ | |||||
GELOGE(ge::FAILED, "param[%s] must not be null.", #val); \ | |||||
return; \ | |||||
} \ | |||||
} while (false) | |||||
// Check whether the parameter is null. If so, execute the exec_expr expression and record the error log | // Check whether the parameter is null. If so, execute the exec_expr expression and record the error log | ||||
#define GE_CHECK_NOTNULL_EXEC(val, exec_expr) \ | |||||
do { \ | |||||
if (val == nullptr) { \ | |||||
DOMI_LOGE("param[%s] must not be null.", #val); \ | |||||
exec_expr; \ | |||||
} \ | |||||
} while (0) | |||||
#define GE_CHECK_NOTNULL_EXEC(val, exec_expr) \ | |||||
do { \ | |||||
if (val == nullptr) { \ | |||||
GELOGE(ge::FAILED, "param[%s] must not be null.", #val); \ | |||||
exec_expr; \ | |||||
} \ | |||||
} while (false) | |||||
// Check whether the parameter is null. If yes, return directly and record the error log | // Check whether the parameter is null. If yes, return directly and record the error log | ||||
#define GE_RT_VOID_CHECK_NOTNULL(val) \ | |||||
do { \ | |||||
if (val == nullptr) { \ | |||||
DOMI_LOGE("param[%s] must not be null.", #val); \ | |||||
return; \ | |||||
} \ | |||||
} while (0) | |||||
#define GE_RT_VOID_CHECK_NOTNULL(val) \ | |||||
do { \ | |||||
if (val == nullptr) { \ | |||||
GELOGE(ge::FAILED, "param[%s] must not be null.", #val); \ | |||||
return; \ | |||||
} \ | |||||
} while (false) | |||||
// Check if the parameter is null. If yes, return false and record the error log | // Check if the parameter is null. If yes, return false and record the error log | ||||
#define GE_RT_FALSE_CHECK_NOTNULL(val) \ | |||||
do { \ | |||||
if (val == nullptr) { \ | |||||
DOMI_LOGE("param[%s] must not be null.", #val); \ | |||||
return false; \ | |||||
} \ | |||||
} while (0) | |||||
#define GE_RT_FALSE_CHECK_NOTNULL(val) \ | |||||
do { \ | |||||
if (val == nullptr) { \ | |||||
GELOGE(ge::FAILED, "param[%s] must not be null.", #val); \ | |||||
return false; \ | |||||
} \ | |||||
} while (false) | |||||
// Check if the parameter is out of bounds | // Check if the parameter is out of bounds | ||||
#define GE_CHECK_SIZE(size) \ | |||||
do { \ | |||||
if (size == 0) { \ | |||||
DOMI_LOGE("param[%s] is out of range", #size); \ | |||||
return ge::PARAM_INVALID; \ | |||||
} \ | |||||
} while (0) | |||||
#define GE_CHECK_SIZE(size) \ | |||||
do { \ | |||||
if (size == 0) { \ | |||||
GELOGE(ge::FAILED, "param[%s] is out of range", #size); \ | |||||
return ge::PARAM_INVALID; \ | |||||
} \ | |||||
} while (false) | |||||
// Check if the value on the left is greater than or equal to the value on the right | // Check if the value on the left is greater than or equal to the value on the right | ||||
#define GE_CHECK_GE(lhs, rhs) \ | |||||
do { \ | |||||
if (lhs < rhs) { \ | |||||
DOMI_LOGE("param[%s] is less than[%s]", #lhs, #rhs); \ | |||||
return ge::PARAM_INVALID; \ | |||||
} \ | |||||
} while (0) | |||||
#define GE_CHECK_GE(lhs, rhs) \ | |||||
do { \ | |||||
if (lhs < rhs) { \ | |||||
GELOGE(ge::FAILED, "param[%s] is less than[%s]", #lhs, #rhs); \ | |||||
return ge::PARAM_INVALID; \ | |||||
} \ | |||||
} while (false) | |||||
// Check if the value on the left is less than or equal to the value on the right | // Check if the value on the left is less than or equal to the value on the right | ||||
#define GE_CHECK_LE(lhs, rhs) \ | |||||
do { \ | |||||
if (lhs > rhs) { \ | |||||
DOMI_LOGE("param[%s] is greater than[%s]", #lhs, #rhs); \ | |||||
return ge::PARAM_INVALID; \ | |||||
} \ | |||||
} while (0) | |||||
#define GE_CHECK_LE(lhs, rhs) \ | |||||
do { \ | |||||
if (lhs > rhs) { \ | |||||
GELOGE(ge::FAILED, "param[%s] is greater than[%s]", #lhs, #rhs); \ | |||||
return ge::PARAM_INVALID; \ | |||||
} \ | |||||
} while (false) | |||||
#define GE_DELETE_NEW_SINGLE(var) \ | #define GE_DELETE_NEW_SINGLE(var) \ | ||||
do { \ | do { \ | ||||
@@ -191,7 +193,7 @@ | |||||
delete var; \ | delete var; \ | ||||
var = nullptr; \ | var = nullptr; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
#define GE_DELETE_NEW_ARRAY(var) \ | #define GE_DELETE_NEW_ARRAY(var) \ | ||||
do { \ | do { \ | ||||
@@ -199,18 +201,18 @@ | |||||
delete[] var; \ | delete[] var; \ | ||||
var = nullptr; \ | var = nullptr; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
#define GE_FREE_RT_LOG(addr) \ | #define GE_FREE_RT_LOG(addr) \ | ||||
do { \ | do { \ | ||||
if (addr != nullptr) { \ | if (addr != nullptr) { \ | ||||
rtError_t error = rtFree(addr); \ | |||||
const rtError_t error = rtFree(addr); \ | |||||
if (error != RT_ERROR_NONE) { \ | if (error != RT_ERROR_NONE) { \ | ||||
GELOGE(RT_FAILED, "Call rtFree failed, error: %#x", error); \ | GELOGE(RT_FAILED, "Call rtFree failed, error: %#x", error); \ | ||||
} \ | } \ | ||||
addr = nullptr; \ | addr = nullptr; \ | ||||
} \ | } \ | ||||
} while (0) | |||||
} while (false) | |||||
/** | /** | ||||
* @ingroup domi_common | * @ingroup domi_common | ||||
@@ -228,12 +230,6 @@ using google::protobuf::Message; | |||||
/// | /// | ||||
/// @ingroup domi_common | /// @ingroup domi_common | ||||
/// @brief Maximum file path length | |||||
/// | |||||
const int32_t DOMI_MAX_PATH_LEN = 256; | |||||
/// | |||||
/// @ingroup domi_common | |||||
/// @brief Reads the proto structure from an array. | /// @brief Reads the proto structure from an array. | ||||
/// @param [in] data proto data to be read | /// @param [in] data proto data to be read | ||||
/// @param [in] size proto data size | /// @param [in] size proto data size | ||||
@@ -253,8 +249,6 @@ GE_FUNC_VISIBILITY bool ReadProtoFromArray(const void *data, int size, Message * | |||||
/// | /// | ||||
GE_FUNC_VISIBILITY bool ReadProtoFromText(const char *file, google::protobuf::Message *message); | GE_FUNC_VISIBILITY bool ReadProtoFromText(const char *file, google::protobuf::Message *message); | ||||
GE_FUNC_VISIBILITY bool ReadProtoFromMem(const char *data, int size, google::protobuf::Message *message); | |||||
/// | /// | ||||
/// @ingroup: domi_common | /// @ingroup: domi_common | ||||
/// @brief: get length of file | /// @brief: get length of file | ||||
@@ -306,10 +300,10 @@ GE_FUNC_VISIBILITY std::string ToString(std::vector<T> &v) { | |||||
ss << x; | ss << x; | ||||
ss << ", "; | ss << ", "; | ||||
} | } | ||||
std::string strRet = | |||||
ss.str().substr(0, ss.str().length() - 2); // Delete the two extra characters at the end of the line. | |||||
strRet += "]"; | |||||
return strRet; | |||||
// Delete the two extra characters at the end of the line. | |||||
std::string str = ss.str().substr(0u, ss.str().length() - 2u); | |||||
str += "]"; | |||||
return str; | |||||
} | } | ||||
/// | /// | ||||
@@ -326,10 +320,10 @@ GE_FUNC_VISIBILITY std::string ToString(const google::protobuf::RepeatedField<T> | |||||
ss << x; | ss << x; | ||||
ss << ", "; | ss << ", "; | ||||
} | } | ||||
std::string strRet = | |||||
ss.str().substr(0, ss.str().length() - 2); // Delete the two extra characters at the end of the line. | |||||
strRet += "]"; | |||||
return strRet; | |||||
// Delete the two extra characters at the end of the line. | |||||
std::string str = ss.str().substr(0u, ss.str().length() - 2u); | |||||
str += "]"; | |||||
return str; | |||||
} | } | ||||
/// | /// | ||||
@@ -394,14 +388,6 @@ GE_FUNC_VISIBILITY bool ValidateStr(const std::string &filePath, const std::stri | |||||
/// | /// | ||||
/// @ingroup domi_common | /// @ingroup domi_common | ||||
/// @brief Check whether the file is normal file. | |||||
/// @param [in] file_path file path | |||||
/// @param [out] result | |||||
/// | |||||
GE_FUNC_VISIBILITY bool IsValidFile(const char *file_path); | |||||
/// | |||||
/// @ingroup domi_common | |||||
/// @brief Check path invalid | /// @brief Check path invalid | ||||
/// @param [in] path, path to be checked | /// @param [in] path, path to be checked | ||||
/// @param [in] length, length of path | /// @param [in] length, length of path | ||||
@@ -43,14 +43,31 @@ struct DNNEngineAttribute { | |||||
// If engine input format must be specific, set this attribute, else set FORMAT_RESERVED | // If engine input format must be specific, set this attribute, else set FORMAT_RESERVED | ||||
Format engine_input_format; | Format engine_input_format; | ||||
Format engine_output_format; | Format engine_output_format; | ||||
bool atomic_engine_flag; | |||||
}; | }; | ||||
class GE_FUNC_VISIBILITY DNNEngine { | class GE_FUNC_VISIBILITY DNNEngine { | ||||
public: | public: | ||||
DNNEngine() = default; | |||||
explicit DNNEngine(const DNNEngineAttribute &attrs) { | |||||
engine_attribute_ = attrs; | |||||
} | |||||
virtual ~DNNEngine() = default; | virtual ~DNNEngine() = default; | ||||
virtual Status Initialize(const std::map<std::string, std::string> &options) = 0; | |||||
virtual Status Finalize() = 0; | |||||
virtual void GetAttributes(DNNEngineAttribute &attr) const = 0; | |||||
Status Initialize(const std::map<std::string, std::string> &options) { | |||||
return SUCCESS; | |||||
} | |||||
Status Finalize() { | |||||
return SUCCESS; | |||||
} | |||||
void GetAttributes(DNNEngineAttribute &attr) const { | |||||
attr = engine_attribute_; | |||||
} | |||||
bool IsAtomic() const { | |||||
return engine_attribute_.atomic_engine_flag; | |||||
} | |||||
protected: | |||||
DNNEngineAttribute engine_attribute_; | |||||
}; | }; | ||||
} // namespace ge | } // namespace ge | ||||
@@ -34,13 +34,16 @@ namespace ge { | |||||
class GeRootModel; | class GeRootModel; | ||||
class GE_FUNC_VISIBILITY GeGenerator { | class GE_FUNC_VISIBILITY GeGenerator { | ||||
public: | public: | ||||
using InOutTensorRef = std::pair<const vector<ge::GeTensor> &, const vector<ge::GeTensor> &>; | |||||
static GeGenerator &GetInstance() { | static GeGenerator &GetInstance() { | ||||
static GeGenerator Instance; | static GeGenerator Instance; | ||||
return Instance; | return Instance; | ||||
} | } | ||||
GeGenerator() = default; | GeGenerator() = default; | ||||
~GeGenerator() { (void)Finalize(); } | |||||
~GeGenerator() { | |||||
(void)Finalize(); | |||||
} | |||||
GeGenerator(const GeGenerator &) = delete; | GeGenerator(const GeGenerator &) = delete; | ||||
@@ -94,8 +97,8 @@ class GE_FUNC_VISIBILITY GeGenerator { | |||||
/// @param [in] graph_name: graph name. | /// @param [in] graph_name: graph name. | ||||
/// @param [out] graph: graph of single op. | /// @param [out] graph: graph of single op. | ||||
/// @return SUCCESS or FAILED | /// @return SUCCESS or FAILED | ||||
Status BuildSingleOpGraph(OpDescPtr &op_desc, const vector<GeTensor> &inputs, const vector<GeTensor> &outputs, | |||||
std::string graph_name, Graph &graph); | |||||
Status BuildSingleOpGraph(OpDescPtr &op_desc, const InOutTensorRef &inputs_outputs, std::string graph_name, | |||||
Graph &graph, std::vector<std::pair<std::string, std::string>> &inputs_name_type); | |||||
private: | private: | ||||
Status GenerateModel(const Graph &graph, const string &file_name_prefix, const vector<GeTensor> &inputs, | Status GenerateModel(const Graph &graph, const string &file_name_prefix, const vector<GeTensor> &inputs, | ||||
@@ -110,6 +113,10 @@ class GE_FUNC_VISIBILITY GeGenerator { | |||||
using GeRootModelPtr = std::shared_ptr<ge::GeRootModel>; | using GeRootModelPtr = std::shared_ptr<ge::GeRootModel>; | ||||
Status SetModelNameForDump(const GeRootModelPtr &ge_root_model); | Status SetModelNameForDump(const GeRootModelPtr &ge_root_model); | ||||
Status CreateGeneralizedBuildAttrs(const GeRootModelPtr &ge_root_model, const std::vector<GeTensor> &inputs, | |||||
const std::vector<GeTensor> &outputs, | |||||
const std::vector<std::pair<std::string, std::string>> &inputs_name_type, | |||||
std::vector<ge::NamedAttrs> &generalized_build_attrs); | |||||
class Impl; | class Impl; | ||||
@@ -33,7 +33,7 @@ class GE_FUNC_VISIBILITY PlatformVersionManager { | |||||
~PlatformVersionManager() = delete; | ~PlatformVersionManager() = delete; | ||||
static Status GetPlatformVersion(std::string &ver) { | static Status GetPlatformVersion(std::string &ver) { | ||||
ver = "1.11.z"; | ver = "1.11.z"; | ||||
std::vector<std::string> version_splits = StringUtils::Split(ver, '.'); | |||||
const std::vector<std::string> version_splits = StringUtils::Split(ver, '.'); | |||||
GE_IF_BOOL_EXEC(version_splits.size() < 3, GELOGW("Read platform version error!"); return FAILED;); | GE_IF_BOOL_EXEC(version_splits.size() < 3, GELOGW("Read platform version error!"); return FAILED;); | ||||
GELOGI("Read current platform version: %s.", ver.c_str()); | GELOGI("Read current platform version: %s.", ver.c_str()); | ||||
@@ -1 +1 @@ | |||||
Subproject commit 60df4b39a6f639c21dd7deb220b93345451938f5 | |||||
Subproject commit b21fe2bccb97e64fa2c7dff8ffd559adc853e73d |
@@ -1,109 +1,110 @@ | |||||
/** | |||||
* Copyright 2019-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 __INC_EXTERNEL_RT_ERROR_CODES_H__ | |||||
#define __INC_EXTERNEL_RT_ERROR_CODES_H__ | |||||
#include <stddef.h> | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
static const int32_t ACL_RT_SUCCESS = 0; // success | |||||
static const int32_t ACL_ERROR_RT_PARAM_INVALID = 107000; // param invalid | |||||
static const int32_t ACL_ERROR_RT_INVALID_DEVICEID = 107001; // invalid device id | |||||
static const int32_t ACL_ERROR_RT_CONTEXT_NULL = 107002; // current context null | |||||
static const int32_t ACL_ERROR_RT_STREAM_CONTEXT = 107003; // stream not in current context | |||||
static const int32_t ACL_ERROR_RT_MODEL_CONTEXT = 107004; // model not in current context | |||||
static const int32_t ACL_ERROR_RT_STREAM_MODEL = 107005; // stream not in model | |||||
static const int32_t ACL_ERROR_RT_EVENT_TIMESTAMP_INVALID = 107006; // event timestamp invalid | |||||
static const int32_t ACL_ERROR_RT_EVENT_TIMESTAMP_REVERSAL = 107007; // event timestamp reversal | |||||
static const int32_t ACL_ERROR_RT_ADDR_UNALIGNED = 107008; // memory address unaligned | |||||
static const int32_t ACL_ERROR_RT_FILE_OPEN = 107009; // open file failed | |||||
static const int32_t ACL_ERROR_RT_FILE_WRITE = 107010; // write file failed | |||||
static const int32_t ACL_ERROR_RT_STREAM_SUBSCRIBE = 107011; // error subscribe stream | |||||
static const int32_t ACL_ERROR_RT_THREAD_SUBSCRIBE = 107012; // error subscribe thread | |||||
static const int32_t ACL_ERROR_RT_GROUP_NOT_SET = 107013; // group not set | |||||
static const int32_t ACL_ERROR_RT_GROUP_NOT_CREATE = 107014; // group not create | |||||
static const int32_t ACL_ERROR_RT_STREAM_NO_CB_REG = 107015; // callback not register to stream | |||||
static const int32_t ACL_ERROR_RT_INVALID_MEMORY_TYPE = 107016; // invalid memory type | |||||
static const int32_t ACL_ERROR_RT_INVALID_HANDLE = 107017; // invalid handle | |||||
static const int32_t ACL_ERROR_RT_INVALID_MALLOC_TYPE = 107018; // invalid malloc type | |||||
static const int32_t ACL_ERROR_RT_WAIT_TIMEOUT = 107019; // wait timeout | |||||
static const int32_t ACL_ERROR_RT_FEATURE_NOT_SUPPORT = 207000; // feature not support | |||||
static const int32_t ACL_ERROR_RT_MEMORY_ALLOCATION = 207001; // memory allocation error | |||||
static const int32_t ACL_ERROR_RT_MEMORY_FREE = 207002; // memory free error | |||||
static const int32_t ACL_ERROR_RT_AICORE_OVER_FLOW = 207003; // aicore over flow | |||||
static const int32_t ACL_ERROR_RT_NO_DEVICE = 207004; // no device | |||||
static const int32_t ACL_ERROR_RT_RESOURCE_ALLOC_FAIL = 207005; // resource alloc fail | |||||
static const int32_t ACL_ERROR_RT_NO_PERMISSION = 207006; // no permission | |||||
static const int32_t ACL_ERROR_RT_NO_EVENT_RESOURCE = 207007; // no event resource | |||||
static const int32_t ACL_ERROR_RT_NO_STREAM_RESOURCE = 207008; // no stream resource | |||||
static const int32_t ACL_ERROR_RT_NO_NOTIFY_RESOURCE = 207009; // no notify resource | |||||
static const int32_t ACL_ERROR_RT_NO_MODEL_RESOURCE = 207010; // no model resource | |||||
static const int32_t ACL_ERROR_RT_NO_CDQ_RESOURCE = 207011; // no cdq resource | |||||
static const int32_t ACL_ERROR_RT_INTERNAL_ERROR = 507000; // runtime internal error | |||||
static const int32_t ACL_ERROR_RT_TS_ERROR = 507001; // ts internel error | |||||
static const int32_t ACL_ERROR_RT_STREAM_TASK_FULL = 507002; // task full in stream | |||||
static const int32_t ACL_ERROR_RT_STREAM_TASK_EMPTY = 507003; // task empty in stream | |||||
static const int32_t ACL_ERROR_RT_STREAM_NOT_COMPLETE = 507004; // stream not complete | |||||
static const int32_t ACL_ERROR_RT_END_OF_SEQUENCE = 507005; // end of sequence | |||||
static const int32_t ACL_ERROR_RT_EVENT_NOT_COMPLETE = 507006; // event not complete | |||||
static const int32_t ACL_ERROR_RT_CONTEXT_RELEASE_ERROR = 507007; // context release error | |||||
static const int32_t ACL_ERROR_RT_SOC_VERSION = 507008; // soc version error | |||||
static const int32_t ACL_ERROR_RT_TASK_TYPE_NOT_SUPPORT = 507009; // task type not support | |||||
static const int32_t ACL_ERROR_RT_LOST_HEARTBEAT = 507010; // ts lost heartbeat | |||||
static const int32_t ACL_ERROR_RT_MODEL_EXECUTE = 507011; // model execute failed | |||||
static const int32_t ACL_ERROR_RT_REPORT_TIMEOUT = 507012; // report timeout | |||||
static const int32_t ACL_ERROR_RT_SYS_DMA = 507013; // sys dma error | |||||
static const int32_t ACL_ERROR_RT_AICORE_TIMEOUT = 507014; // aicore timeout | |||||
static const int32_t ACL_ERROR_RT_AICORE_EXCEPTION = 507015; // aicore exception | |||||
static const int32_t ACL_ERROR_RT_AICORE_TRAP_EXCEPTION = 507016; // aicore trap exception | |||||
static const int32_t ACL_ERROR_RT_AICPU_TIMEOUT = 507017; // aicpu timeout | |||||
static const int32_t ACL_ERROR_RT_AICPU_EXCEPTION = 507018; // aicpu exception | |||||
static const int32_t ACL_ERROR_RT_AICPU_DATADUMP_RSP_ERR = 507019; // aicpu datadump response error | |||||
static const int32_t ACL_ERROR_RT_AICPU_MODEL_RSP_ERR = 507020; // aicpu model operate response error | |||||
static const int32_t ACL_ERROR_RT_PROFILING_ERROR = 507021; // profiling error | |||||
static const int32_t ACL_ERROR_RT_IPC_ERROR = 507022; // ipc error | |||||
static const int32_t ACL_ERROR_RT_MODEL_ABORT_NORMAL = 507023; // model abort normal | |||||
static const int32_t ACL_ERROR_RT_KERNEL_UNREGISTERING = 507024; // kernel unregistering | |||||
static const int32_t ACL_ERROR_RT_RINGBUFFER_NOT_INIT = 507025; // ringbuffer not init | |||||
static const int32_t ACL_ERROR_RT_RINGBUFFER_NO_DATA = 507026; // ringbuffer no data | |||||
static const int32_t ACL_ERROR_RT_KERNEL_LOOKUP = 507027; // kernel lookup error | |||||
static const int32_t ACL_ERROR_RT_KERNEL_DUPLICATE = 507028; // kernel register duplicate | |||||
static const int32_t ACL_ERROR_RT_DEBUG_REGISTER_FAIL = 507029; // debug register failed | |||||
static const int32_t ACL_ERROR_RT_DEBUG_UNREGISTER_FAIL = 507030; // debug unregister failed | |||||
static const int32_t ACL_ERROR_RT_LABEL_CONTEXT = 507031; // label not in current context | |||||
static const int32_t ACL_ERROR_RT_PROGRAM_USE_OUT = 507032; // program register num use out | |||||
static const int32_t ACL_ERROR_RT_DEV_SETUP_ERROR = 507033; // device setup error | |||||
static const int32_t ACL_ERROR_RT_VECTOR_CORE_TIMEOUT = 507034; // vector core timeout | |||||
static const int32_t ACL_ERROR_RT_VECTOR_CORE_EXCEPTION = 507035; // vector core exception | |||||
static const int32_t ACL_ERROR_RT_VECTOR_CORE_TRAP_EXCEPTION = 507036; // vector core trap exception | |||||
static const int32_t ACL_ERROR_RT_CDQ_BATCH_ABNORMAL = 507037; // cdq alloc batch abnormal | |||||
static const int32_t ACL_ERROR_RT_DRV_INTERNAL_ERROR = 507899; // drv internal error | |||||
static const int32_t ACL_ERROR_RT_AICPU_INTERNAL_ERROR = 507900; // aicpu internal error | |||||
static const int32_t ACL_ERROR_RT_SOCKET_CLOSE = 507901; // hdc disconnect | |||||
#ifdef __cplusplus | |||||
} | |||||
#endif | |||||
#endif // __INC_EXTERNEL_RT_ERROR_CODES_H__ | |||||
/** | |||||
* @file rt_error_codes.h | |||||
* | |||||
* Copyright (C) Huawei Technologies Co., Ltd. 2019-2020. All Rights Reserved. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||||
*/ | |||||
#ifndef __INC_EXTERNEL_RT_ERROR_CODES_H__ | |||||
#define __INC_EXTERNEL_RT_ERROR_CODES_H__ | |||||
#include <stddef.h> | |||||
#ifdef __cplusplus | |||||
extern "C" { | |||||
#endif | |||||
static const int32_t ACL_RT_SUCCESS = 0; // success | |||||
static const int32_t ACL_ERROR_RT_PARAM_INVALID = 107000; // param invalid | |||||
static const int32_t ACL_ERROR_RT_INVALID_DEVICEID = 107001; // invalid device id | |||||
static const int32_t ACL_ERROR_RT_CONTEXT_NULL = 107002; // current context null | |||||
static const int32_t ACL_ERROR_RT_STREAM_CONTEXT = 107003; // stream not in current context | |||||
static const int32_t ACL_ERROR_RT_MODEL_CONTEXT = 107004; // model not in current context | |||||
static const int32_t ACL_ERROR_RT_STREAM_MODEL = 107005; // stream not in model | |||||
static const int32_t ACL_ERROR_RT_EVENT_TIMESTAMP_INVALID = 107006; // event timestamp invalid | |||||
static const int32_t ACL_ERROR_RT_EVENT_TIMESTAMP_REVERSAL = 107007; // event timestamp reversal | |||||
static const int32_t ACL_ERROR_RT_ADDR_UNALIGNED = 107008; // memory address unaligned | |||||
static const int32_t ACL_ERROR_RT_FILE_OPEN = 107009; // open file failed | |||||
static const int32_t ACL_ERROR_RT_FILE_WRITE = 107010; // write file failed | |||||
static const int32_t ACL_ERROR_RT_STREAM_SUBSCRIBE = 107011; // error subscribe stream | |||||
static const int32_t ACL_ERROR_RT_THREAD_SUBSCRIBE = 107012; // error subscribe thread | |||||
static const int32_t ACL_ERROR_RT_GROUP_NOT_SET = 107013; // group not set | |||||
static const int32_t ACL_ERROR_RT_GROUP_NOT_CREATE = 107014; // group not create | |||||
static const int32_t ACL_ERROR_RT_STREAM_NO_CB_REG = 107015; // callback not register to stream | |||||
static const int32_t ACL_ERROR_RT_INVALID_MEMORY_TYPE = 107016; // invalid memory type | |||||
static const int32_t ACL_ERROR_RT_INVALID_HANDLE = 107017; // invalid handle | |||||
static const int32_t ACL_ERROR_RT_INVALID_MALLOC_TYPE = 107018; // invalid malloc type | |||||
static const int32_t ACL_ERROR_RT_WAIT_TIMEOUT = 107019; // wait timeout | |||||
static const int32_t ACL_ERROR_RT_FEATURE_NOT_SUPPORT = 207000; // feature not support | |||||
static const int32_t ACL_ERROR_RT_MEMORY_ALLOCATION = 207001; // memory allocation error | |||||
static const int32_t ACL_ERROR_RT_MEMORY_FREE = 207002; // memory free error | |||||
static const int32_t ACL_ERROR_RT_AICORE_OVER_FLOW = 207003; // aicore over flow | |||||
static const int32_t ACL_ERROR_RT_NO_DEVICE = 207004; // no device | |||||
static const int32_t ACL_ERROR_RT_RESOURCE_ALLOC_FAIL = 207005; // resource alloc fail | |||||
static const int32_t ACL_ERROR_RT_NO_PERMISSION = 207006; // no permission | |||||
static const int32_t ACL_ERROR_RT_NO_EVENT_RESOURCE = 207007; // no event resource | |||||
static const int32_t ACL_ERROR_RT_NO_STREAM_RESOURCE = 207008; // no stream resource | |||||
static const int32_t ACL_ERROR_RT_NO_NOTIFY_RESOURCE = 207009; // no notify resource | |||||
static const int32_t ACL_ERROR_RT_NO_MODEL_RESOURCE = 207010; // no model resource | |||||
static const int32_t ACL_ERROR_RT_NO_CDQ_RESOURCE = 207011; // no cdq resource | |||||
static const int32_t ACL_ERROR_RT_OVER_LIMIT = 207012; // over limit | |||||
static const int32_t ACL_ERROR_RT_QUEUE_EMPTY = 207013; // queue is empty | |||||
static const int32_t ACL_ERROR_RT_QUEUE_FULL = 207014; // queue is full | |||||
static const int32_t ACL_ERROR_RT_INTERNAL_ERROR = 507000; // runtime internal error | |||||
static const int32_t ACL_ERROR_RT_TS_ERROR = 507001; // ts internel error | |||||
static const int32_t ACL_ERROR_RT_STREAM_TASK_FULL = 507002; // task full in stream | |||||
static const int32_t ACL_ERROR_RT_STREAM_TASK_EMPTY = 507003; // task empty in stream | |||||
static const int32_t ACL_ERROR_RT_STREAM_NOT_COMPLETE = 507004; // stream not complete | |||||
static const int32_t ACL_ERROR_RT_END_OF_SEQUENCE = 507005; // end of sequence | |||||
static const int32_t ACL_ERROR_RT_EVENT_NOT_COMPLETE = 507006; // event not complete | |||||
static const int32_t ACL_ERROR_RT_CONTEXT_RELEASE_ERROR = 507007; // context release error | |||||
static const int32_t ACL_ERROR_RT_SOC_VERSION = 507008; // soc version error | |||||
static const int32_t ACL_ERROR_RT_TASK_TYPE_NOT_SUPPORT = 507009; // task type not support | |||||
static const int32_t ACL_ERROR_RT_LOST_HEARTBEAT = 507010; // ts lost heartbeat | |||||
static const int32_t ACL_ERROR_RT_MODEL_EXECUTE = 507011; // model execute failed | |||||
static const int32_t ACL_ERROR_RT_REPORT_TIMEOUT = 507012; // report timeout | |||||
static const int32_t ACL_ERROR_RT_SYS_DMA = 507013; // sys dma error | |||||
static const int32_t ACL_ERROR_RT_AICORE_TIMEOUT = 507014; // aicore timeout | |||||
static const int32_t ACL_ERROR_RT_AICORE_EXCEPTION = 507015; // aicore exception | |||||
static const int32_t ACL_ERROR_RT_AICORE_TRAP_EXCEPTION = 507016; // aicore trap exception | |||||
static const int32_t ACL_ERROR_RT_AICPU_TIMEOUT = 507017; // aicpu timeout | |||||
static const int32_t ACL_ERROR_RT_AICPU_EXCEPTION = 507018; // aicpu exception | |||||
static const int32_t ACL_ERROR_RT_AICPU_DATADUMP_RSP_ERR = 507019; // aicpu datadump response error | |||||
static const int32_t ACL_ERROR_RT_AICPU_MODEL_RSP_ERR = 507020; // aicpu model operate response error | |||||
static const int32_t ACL_ERROR_RT_PROFILING_ERROR = 507021; // profiling error | |||||
static const int32_t ACL_ERROR_RT_IPC_ERROR = 507022; // ipc error | |||||
static const int32_t ACL_ERROR_RT_MODEL_ABORT_NORMAL = 507023; // model abort normal | |||||
static const int32_t ACL_ERROR_RT_KERNEL_UNREGISTERING = 507024; // kernel unregistering | |||||
static const int32_t ACL_ERROR_RT_RINGBUFFER_NOT_INIT = 507025; // ringbuffer not init | |||||
static const int32_t ACL_ERROR_RT_RINGBUFFER_NO_DATA = 507026; // ringbuffer no data | |||||
static const int32_t ACL_ERROR_RT_KERNEL_LOOKUP = 507027; // kernel lookup error | |||||
static const int32_t ACL_ERROR_RT_KERNEL_DUPLICATE = 507028; // kernel register duplicate | |||||
static const int32_t ACL_ERROR_RT_DEBUG_REGISTER_FAIL = 507029; // debug register failed | |||||
static const int32_t ACL_ERROR_RT_DEBUG_UNREGISTER_FAIL = 507030; // debug unregister failed | |||||
static const int32_t ACL_ERROR_RT_LABEL_CONTEXT = 507031; // label not in current context | |||||
static const int32_t ACL_ERROR_RT_PROGRAM_USE_OUT = 507032; // program register num use out | |||||
static const int32_t ACL_ERROR_RT_DEV_SETUP_ERROR = 507033; // device setup error | |||||
static const int32_t ACL_ERROR_RT_VECTOR_CORE_TIMEOUT = 507034; // vector core timeout | |||||
static const int32_t ACL_ERROR_RT_VECTOR_CORE_EXCEPTION = 507035; // vector core exception | |||||
static const int32_t ACL_ERROR_RT_VECTOR_CORE_TRAP_EXCEPTION = 507036; // vector core trap exception | |||||
static const int32_t ACL_ERROR_RT_CDQ_BATCH_ABNORMAL = 507037; // cdq alloc batch abnormal | |||||
static const int32_t ACL_ERROR_RT_DIE_MODE_CHANGE_ERROR = 507038; // can not change die mode | |||||
static const int32_t ACL_ERROR_RT_DIE_SET_ERROR = 507039; // single die mode can not set die | |||||
static const int32_t ACL_ERROR_RT_INVALID_DIEID = 507040; // invalid die id | |||||
static const int32_t ACL_ERROR_RT_DIE_MODE_NOT_SET = 507041; // die mode not set | |||||
static const int32_t ACL_ERROR_RT_DRV_INTERNAL_ERROR = 507899; // drv internal error | |||||
static const int32_t ACL_ERROR_RT_AICPU_INTERNAL_ERROR = 507900; // aicpu internal error | |||||
static const int32_t ACL_ERROR_RT_SOCKET_CLOSE = 507901; // hdc disconnect | |||||
#ifdef __cplusplus | |||||
} | |||||
#endif | |||||
#endif // __INC_EXTERNEL_RT_ERROR_CODES_H__ |
@@ -1258,21 +1258,21 @@ REG_OP(ExpandD) | |||||
* Three inputs, including: | * Three inputs, including: | ||||
* @li bucket_list: A 1-D tensor of type int32 with the value of ivf_counts and ivf_offset index. \n | * @li bucket_list: A 1-D tensor of type int32 with the value of ivf_counts and ivf_offset index. \n | ||||
* @li ivf_counts: A 1-D tensor of type int32 with the value of ivf counts. \n | * @li ivf_counts: A 1-D tensor of type int32 with the value of ivf counts. \n | ||||
* @li ivf_offset: A 1-D tensor of type int32 with the value of ivf offset. \n | |||||
* @li ivf_offset: A 1-D tensor of type int32 or int64 with the value of ivf offset. \n | |||||
* @par Attributes: | * @par Attributes: | ||||
* total_limit: A int64 type maximum value of the sum of ivf_counts corresponding to bucket_list. \n | * total_limit: A int64 type maximum value of the sum of ivf_counts corresponding to bucket_list. \n | ||||
* @par Outputs: | * @par Outputs: | ||||
* @li buckets_limit: A 1-D tensor of type int32 with the sum <= total_limit. \n | * @li buckets_limit: A 1-D tensor of type int32 with the sum <= total_limit. \n | ||||
* @li buckets_offset: A 1-D tensor of type int32 with the value of ivf_offset corresponding to bucket_list. \n | |||||
* @li buckets_offset: A 1-D tensor of type int32 or int64 with the value of ivf_offset corresponding to bucket_list. \n | |||||
*/ | */ | ||||
REG_OP(CalcBucketsLimitAndOffset) | REG_OP(CalcBucketsLimitAndOffset) | ||||
.INPUT(bucket_list, TensorType({DT_INT32})) | .INPUT(bucket_list, TensorType({DT_INT32})) | ||||
.INPUT(ivf_counts, TensorType({DT_INT32})) | .INPUT(ivf_counts, TensorType({DT_INT32})) | ||||
.INPUT(ivf_offset, TensorType({DT_INT32})) | |||||
.INPUT(ivf_offset, TensorType({DT_INT32, DT_INT64})) | |||||
.OUTPUT(buckets_limit, TensorType({DT_INT32})) | .OUTPUT(buckets_limit, TensorType({DT_INT32})) | ||||
.OUTPUT(buckets_offset, TensorType({DT_INT32})) | |||||
.OUTPUT(buckets_offset, TensorType({DT_INT32, DT_INT64})) | |||||
.REQUIRED_ATTR(total_limit, Int) | .REQUIRED_ATTR(total_limit, Int) | ||||
.OP_END_FACTORY_REG(CalcBucketsLimitAndOffset) | .OP_END_FACTORY_REG(CalcBucketsLimitAndOffset) | ||||
@@ -0,0 +1,58 @@ | |||||
/** | |||||
* Copyright 2021 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. | |||||
*/ | |||||
/*! | |||||
* \file cluster.h | |||||
* \brief | |||||
*/ | |||||
#ifndef OPS_BUILT_IN_OP_PROTO_INC_CLUSTER_H_ | |||||
#define OPS_BUILT_IN_OP_PROTO_INC_CLUSTER_H_ | |||||
#include "graph/operator_reg.h" | |||||
#include "graph/operator.h" | |||||
namespace ge { | |||||
/** | |||||
* @brief Perform k-means clustering on a data matrix. \n | |||||
* @par Inputs: | |||||
* Three required inputs and one optional inputs, including: \n | |||||
* @li x: A 2D tensor of data type float32. \n | |||||
* @li y: A 2D tensor of data type float32. \n | |||||
* @li sum_square_x: An optional 2D tensor of data type float32. \n | |||||
* @li sum_square_y: A 2D tensor of data type float32. \n | |||||
* @par Attributes: | |||||
* use_actual_distance: Indicates whether to calculate the complete distance. \n | |||||
* @par Outputs: | |||||
* @li segment_sum: A tensor of data type float32. \n | |||||
* @li segment_count: A tensor of data type float32. \n | |||||
* @li k_mean_total_sum: A tensor of data type float32. \n | |||||
*/ | |||||
REG_OP(KMeansCentroids) | |||||
.INPUT(x, TensorType({DT_FLOAT})) | |||||
.INPUT(y, TensorType({DT_FLOAT})) | |||||
.INPUT(sum_square_y, TensorType({DT_FLOAT})) | |||||
.OPTIONAL_INPUT(sum_square_x, TensorType({DT_FLOAT})) | |||||
.OUTPUT(segment_sum, TensorType({DT_FLOAT})) | |||||
.OUTPUT(segment_count, TensorType({DT_FLOAT})) | |||||
.OUTPUT(kmean_total_sum, TensorType({DT_FLOAT})) | |||||
.ATTR(use_actual_distance, Bool, false) | |||||
.OP_END_FACTORY_REG(KMeansCentroids) | |||||
} // namespace ge | |||||
#endif // OPS_BUILT_IN_OP_PROTO_INC_CLUSTER_H_ |
@@ -3391,57 +3391,57 @@ REG_OP(TensorRedirect) | |||||
.OP_END_FACTORY_REG(TensorRedirect) | .OP_END_FACTORY_REG(TensorRedirect) | ||||
/** | /** | ||||
* @brief Performs the element-wise division of tensor x2 by tensor x3, | |||||
* multiply the result by the scalar value and add it to tensor x1 | |||||
* @brief Performs the element-wise division of tensor x1 by tensor x2, | |||||
* multiply the result by the scalar value and add it to tensor input_data. | |||||
* @par Inputs: | * @par Inputs: | ||||
* Four inputs, including: | * Four inputs, including: | ||||
* @li input_data: A mutable input Tensor. Must be one of the following types: | * @li input_data: A mutable input Tensor. Must be one of the following types: | ||||
* float16, float32. | |||||
* @li x1: A mutable input Tensor of the same type as x1. | |||||
* @li x2: A mutable input Tensor of the same type as x1. | |||||
* float16, float32, double, int64. | |||||
* @li x1: A mutable input Tensor of the same type as input_data. | |||||
* @li x2: A mutable input Tensor of the same type as input_data. | |||||
* @li value: A mutable input Tensor. Must be one of the following types: | * @li value: A mutable input Tensor. Must be one of the following types: | ||||
* float16, float32, int32. \n | |||||
* float16, float32, double, int64, int32. \n | |||||
* @par Outputs: | * @par Outputs: | ||||
* y: A mutable Tensor. Has the same type as "x1". \n | |||||
* y: A mutable Tensor. Has the same type as input_data. \n | |||||
* @par Third-party framework compatibility | * @par Third-party framework compatibility | ||||
* Compatible with the Pytorch operator Addcdiv. | |||||
* Compatible with the Pytorch operator Addcdiv(version-1.5.0). | |||||
*/ | */ | ||||
REG_OP(Addcdiv) | REG_OP(Addcdiv) | ||||
.INPUT(input_data, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(x1, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(x2, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(value, TensorType({ DT_FLOAT16, DT_FLOAT, DT_INT32})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(input_data, TensorType({DT_FLOAT16, DT_FLOAT, DT_DOUBLE, DT_INT64})) | |||||
.INPUT(x1, TensorType({DT_FLOAT16, DT_FLOAT, DT_DOUBLE, DT_INT64})) | |||||
.INPUT(x2, TensorType({DT_FLOAT16, DT_FLOAT, DT_DOUBLE, DT_INT64})) | |||||
.INPUT(value, TensorType({ DT_FLOAT16, DT_FLOAT, DT_INT32, DT_DOUBLE, DT_INT64})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT, DT_DOUBLE, DT_INT64})) | |||||
.OP_END_FACTORY_REG(Addcdiv) | .OP_END_FACTORY_REG(Addcdiv) | ||||
/** | /** | ||||
* @brief Performs the element-wise multiplication of tensor x2 by tensor x3, | |||||
* @brief Performs the element-wise multiplication of tensor x1 by tensor x2, | |||||
* multiply the result by the scalar value and add it to tensor input_data | * multiply the result by the scalar value and add it to tensor input_data | ||||
* @par Inputs: | * @par Inputs: | ||||
* Four inputs, including: | * Four inputs, including: | ||||
* @li input_data: A mutable input Tensor. Must be one of the following types: | * @li input_data: A mutable input Tensor. Must be one of the following types: | ||||
* float16, float32, int8, int32, uint8. | |||||
* @li x1: A mutable input Tensor of the same type as x1. | |||||
* @li x2: A mutable input Tensor of the same type as x1. | |||||
* @li value: A tensor which includes only one element of the same type as x1. \n | |||||
* float16, float32, double, int64, int8, int32, uint8. | |||||
* @li x1: A mutable input Tensor of the same type as input_data. | |||||
* @li x2: A mutable input Tensor of the same type as input_data. | |||||
* @li value: A tensor which includes only one element of the same type as input_data. \n | |||||
* @par Outputs: | * @par Outputs: | ||||
* y: A mutable output Tensor. Has the same type as "x1". \n | |||||
* y: A mutable output Tensor. Has the same type as input_data. \n | |||||
* @par Third-party framework compatibility | * @par Third-party framework compatibility | ||||
* Compatible with the Pytorch operator Addcmul. | * Compatible with the Pytorch operator Addcmul. | ||||
*/ | */ | ||||
REG_OP(Addcmul) | REG_OP(Addcmul) | ||||
.INPUT(input_data, TensorType({ DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8 })) | |||||
.INPUT(x1, TensorType({ DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8 })) | |||||
.INPUT(x2, TensorType({ DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8 })) | |||||
.INPUT(value, TensorType({ DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8 })) | |||||
.OUTPUT(y, TensorType({ DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8 })) | |||||
.INPUT(input_data, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8, DT_DOUBLE, DT_INT64})) | |||||
.INPUT(x1, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8, DT_DOUBLE, DT_INT64})) | |||||
.INPUT(x2, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8, DT_DOUBLE, DT_INT64})) | |||||
.INPUT(value, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8, DT_DOUBLE, DT_INT64})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8, DT_INT32, DT_UINT8, DT_DOUBLE, DT_INT64})) | |||||
.OP_END_FACTORY_REG(Addcmul) | .OP_END_FACTORY_REG(Addcmul) | ||||
/** | /** | ||||
@@ -3508,8 +3508,8 @@ REG_OP(StrideAdd) | |||||
* Compatible with the Pytorch equal operator. \n | * Compatible with the Pytorch equal operator. \n | ||||
*/ | */ | ||||
REG_OP(TensorEqual) | REG_OP(TensorEqual) | ||||
.INPUT(input_x, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT32, DT_INT8, DT_UINT8})) | |||||
.INPUT(input_y, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT32, DT_INT8, DT_UINT8})) | |||||
.INPUT(input_x, TensorType({DT_FLOAT16, DT_FLOAT, DT_DOUBLE, DT_INT64, DT_INT32, DT_INT8, DT_UINT8})) | |||||
.INPUT(input_y, TensorType({DT_FLOAT16, DT_FLOAT, DT_DOUBLE, DT_INT64, DT_INT32, DT_INT8, DT_UINT8})) | |||||
.OUTPUT(output_z, TensorType({DT_BOOL})) | .OUTPUT(output_z, TensorType({DT_BOOL})) | ||||
.OP_END_FACTORY_REG(TensorEqual) | .OP_END_FACTORY_REG(TensorEqual) | ||||
@@ -410,10 +410,10 @@ form square matrices. \n | |||||
*/ | */ | ||||
REG_OP(Svd) | REG_OP(Svd) | ||||
.INPUT(x, TensorType({ DT_DOUBLE, DT_FLOAT })) | |||||
.OUTPUT(sigma, TensorType({ DT_DOUBLE, DT_FLOAT })) | |||||
.OUTPUT(u, TensorType({ DT_DOUBLE, DT_FLOAT })) | |||||
.OUTPUT(v, TensorType({ DT_DOUBLE, DT_FLOAT })) | |||||
.INPUT(x, TensorType({ DT_DOUBLE, DT_FLOAT, DT_COMPLEX64, DT_COMPLEX128 })) | |||||
.OUTPUT(sigma, TensorType({ DT_DOUBLE, DT_FLOAT, DT_COMPLEX64, DT_COMPLEX128 })) | |||||
.OUTPUT(u, TensorType({ DT_DOUBLE, DT_FLOAT, DT_COMPLEX64, DT_COMPLEX128 })) | |||||
.OUTPUT(v, TensorType({ DT_DOUBLE, DT_FLOAT, DT_COMPLEX64, DT_COMPLEX128 })) | |||||
.ATTR(compute_uv, Bool, true) | .ATTR(compute_uv, Bool, true) | ||||
.ATTR(full_matrices, Bool, false) | .ATTR(full_matrices, Bool, false) | ||||
.OP_END_FACTORY_REG(Svd) | .OP_END_FACTORY_REG(Svd) | ||||
@@ -939,6 +939,57 @@ REG_OP(LpNorm) | |||||
.OP_END_FACTORY_REG(LpNorm) | .OP_END_FACTORY_REG(LpNorm) | ||||
/** | /** | ||||
* @brief Computes LpNormReduce. | |||||
* @par Inputs: | |||||
* x: An ND tensor of type float16, float32. \n | |||||
* | |||||
* @par Attributes: | |||||
* @li p: Int, "inf" or "-inf", default value is 2. | |||||
* @li axes: ListInt, {} means all axes will be computed. | |||||
* @li keepdim: Bool, default is false. | |||||
* @li epsilon: Float, default is 1e-12. \n | |||||
* @par Outputs: | |||||
* y: An ND tensor of type float16, float32. The shape of y is depending | |||||
* on axes and keepdim. \n | |||||
* @par Third-party framework compatibility | |||||
* Compatible with the Pytorch operator LpNormReduce. | |||||
*/ | |||||
REG_OP(LpNormReduce) | |||||
.INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.ATTR(p, Int, 2) | |||||
.ATTR(axes, ListInt, {}) | |||||
.ATTR(keepdim, Bool, false) | |||||
.ATTR(epsilon, Float, 1e-12) | |||||
.OP_END_FACTORY_REG(LpNormReduce) | |||||
/** | |||||
* @brief Computes LpNormUpdate. | |||||
* @par Inputs: | |||||
* x: An ND tensor of type float16, float32. \n | |||||
* | |||||
* @par Attributes: | |||||
* @li p: Int, "inf" or "-inf", default value is 2. | |||||
* @li epsilon: Float, default is 1e-12. \n | |||||
* @par Outputs: | |||||
* y: An ND tensor of type float16, float32. \n | |||||
* @par Third-party framework compatibility | |||||
* Compatible with the Pytorch operator LpNormUpdate. | |||||
*/ | |||||
REG_OP(LpNormUpdate) | |||||
.INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.ATTR(p, Int, 2) | |||||
.ATTR(epsilon, Float, 1e-12) | |||||
.OP_END_FACTORY_REG(LpNormUpdate) | |||||
/** | |||||
* @brief get complex. | * @brief get complex. | ||||
* @par Inputs: | * @par Inputs: | ||||
@@ -49,10 +49,10 @@ namespace ge { | |||||
* Compatible with the TensorFlow operator BatchMatmul. | * Compatible with the TensorFlow operator BatchMatmul. | ||||
*/ | */ | ||||
REG_OP(MatMul) | REG_OP(MatMul) | ||||
.INPUT(x1, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32})) | |||||
.INPUT(x2, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32})) | |||||
.OPTIONAL_INPUT(bias, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32})) | |||||
.INPUT(x1, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16})) | |||||
.INPUT(x2, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16})) | |||||
.OPTIONAL_INPUT(bias, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16})) | |||||
.ATTR(transpose_x1, Bool, false) | .ATTR(transpose_x1, Bool, false) | ||||
.ATTR(transpose_x2, Bool, false) | .ATTR(transpose_x2, Bool, false) | ||||
.OP_END_FACTORY_REG(MatMul) | .OP_END_FACTORY_REG(MatMul) | ||||
@@ -88,10 +88,10 @@ REG_OP(MatMul) | |||||
* Compatible with the TensorFlow operator BatchMatmul. | * Compatible with the TensorFlow operator BatchMatmul. | ||||
*/ | */ | ||||
REG_OP(MatMulV2) | REG_OP(MatMulV2) | ||||
.INPUT(x1, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_INT8, DT_INT4})) | |||||
.INPUT(x2, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_INT8 DT_INT4})) | |||||
.OPTIONAL_INPUT(bias, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32})) | |||||
.INPUT(x1, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_INT8, DT_INT4, DT_BF16})) | |||||
.INPUT(x2, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_INT8, DT_INT4, DT_BF16})) | |||||
.OPTIONAL_INPUT(bias, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT, DT_FLOAT16, DT_INT32, DT_BF16})) | |||||
.OPTIONAL_INPUT(offset_w, TensorType({DT_INT8, DT_INT4})) | .OPTIONAL_INPUT(offset_w, TensorType({DT_INT8, DT_INT4})) | ||||
.ATTR(transpose_x1, Bool, false) | .ATTR(transpose_x1, Bool, false) | ||||
.ATTR(transpose_x2, Bool, false) | .ATTR(transpose_x2, Bool, false) | ||||
@@ -1067,6 +1067,40 @@ REG_OP(MatrixSetDiagV2) | |||||
.OP_END_FACTORY_REG(MatrixSetDiagV2) | .OP_END_FACTORY_REG(MatrixSetDiagV2) | ||||
/** | /** | ||||
*@brief Returns a batched matrix tensor with new batched diagonal values . \n | |||||
*@par Inputs: | |||||
* Three inputs, including: | |||||
*@li input: "Rank `r+1`, where `r >= 1`. \n | |||||
*@li diagonal: Rank `r` when `k` is an integer or `k[0] == k[1]`. Otherwise, it has rank `r+1`. \n | |||||
*@li k: | |||||
*Diagonal offset(s). Positive value means superdiagonal, 0 refers to the main \n | |||||
*diagonal, and negative value means subdiagonals. `k` can be a single integer \n | |||||
*(for a single diagonal) or a pair of integers specifying the low and high ends \n | |||||
*of a matrix band. `k[0]` must not be larger than `k[1]`. \n | |||||
*@par Attributes: | |||||
*@li align: An optional string. Defaults to RIGHT_LEFT. It is a string specifying \n | |||||
*how superdiagonals and subdiagonals should be aligned, respectively. \n | |||||
*other optional: LEFT_RIGHT, LEFT_LEFT, and RIGHT_RIGHT.\n | |||||
*@par Outputs: | |||||
*output: Rank `r+1`, with `output.shape = input.shape` . \n | |||||
*@par Third-party framework compatibility | |||||
* Compatible with the TensorFlow operator ScatterUpdate. | |||||
*/ | |||||
REG_OP(MatrixSetDiagV3) | |||||
.INPUT(input, TensorType::BasicType()) | |||||
.INPUT(diagonal, TensorType::BasicType()) | |||||
.INPUT(k, TensorType({DT_INT32})) | |||||
.OUTPUT(output, TensorType::BasicType()) | |||||
.ATTR(align, String, "RIGHT_LEFT") | |||||
.OP_END_FACTORY_REG(MatrixSetDiagV3) | |||||
/** | |||||
*@brief Returns a batched diagonal tensor with given batched diagonal values . \n | *@brief Returns a batched diagonal tensor with given batched diagonal values . \n | ||||
*@par Inputs: | *@par Inputs: | ||||
@@ -369,16 +369,14 @@ REG_OP(BiasAddGrad) | |||||
*\n | *\n | ||||
* The following are the supported data types and data formats:\n | * The following are the supported data types and data formats:\n | ||||
*\n | *\n | ||||
| Tensor | out_bckprop | filter | y\n | |||||
------------|-------------|---------|--------\n | |||||
| Data Type | float16 | float16 | float16\n | |||||
| |-------------|---------|--------\n | |||||
| | float32 | float32 | float32\n | |||||
| |-------------|---------|--------\n | |||||
| | float64 | float64 | float64\n | |||||
------------|-------------|---------|--------\n | |||||
| Format | NCHW | NCHW | NCHW\n | |||||
| | NHWC | HWCN | NHWC\n | |||||
*\n | |||||
| Tensor | out_bckprop | filter | y |\n | |||||
|-----------|-------------|---------|--------|\n | |||||
| Data Type | float16 | float16 | float16|\n | |||||
| | float32 | float32 | float32|\n | |||||
| | float64 | float64 | float64|\n | |||||
| Format | NCHW | NCHW | NCHW |\n | |||||
| | NHWC | HWCN | NHWC |\n | |||||
*\n | *\n | ||||
* For float32 and float64 type, the actual calculation on the chip is based on | * For float32 and float64 type, the actual calculation on the chip is based on | ||||
* float16. | * float16. | ||||
@@ -400,30 +398,25 @@ REG_OP(BiasAddGrad) | |||||
*\n | *\n | ||||
* The following value range restrictions must be met:\n | * The following value range restrictions must be met:\n | ||||
*\n | *\n | ||||
| Name | Field | Scope\n | |||||
-------------------|----------|--------------\n | |||||
| input_size | H | [1, 200000]\n | |||||
| | W | [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| Filter | H | [1, 255]\n | |||||
| | W | [1, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| out_backprop | H*strideH| [1, 200000]\n | |||||
| | W*strideW| [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| y(fmap) | H | [1, 200000]\n | |||||
| | W | [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| Stride | H | [1, 63]\n | |||||
| | W | [1, 63]\n | |||||
-------------------|----------|--------------\n | |||||
| Padding | Top | [0, 255]\n | |||||
| | Bottom | [0, 255]\n | |||||
| | Left | [0, 255]\n | |||||
| | Right | [0, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| Dilation | H | [1, 255]\n | |||||
| | W | [1, 255]\n | |||||
*\n | |||||
| Name | Field | Scope |\n | |||||
|------------------|----------|--------------|\n | |||||
| input_size | H | [1, 200000] |\n | |||||
| | W | [1, 4096] |\n | |||||
| Filter | H | [1, 255] |\n | |||||
| | W | [1, 255] |\n | |||||
| out_backprop | H*strideH| [1, 200000] |\n | |||||
| | W*strideW| [1, 4096] |\n | |||||
| y(fmap) | H | [1, 200000] |\n | |||||
| | W | [1, 4096] |\n | |||||
| Stride | H | [1, 63] |\n | |||||
| | W | [1, 63] |\n | |||||
| Padding | Top | [0, 255] |\n | |||||
| | Bottom | [0, 255] |\n | |||||
| | Left | [0, 255] |\n | |||||
| | Right | [0, 255] |\n | |||||
| Dilation | H | [1, 255] |\n | |||||
| | W | [1, 255] |\n | |||||
*\n | *\n | ||||
* In Ascend910, fmap or out_backprop's H and W not support 1 when | * In Ascend910, fmap or out_backprop's H and W not support 1 when | ||||
@@ -495,9 +488,9 @@ REG_OP(Conv2DBackpropInput) | |||||
* Warning: THIS FUNCTION IS DEPRECATED. Please use Conv2DBackpropInput instead. | * Warning: THIS FUNCTION IS DEPRECATED. Please use Conv2DBackpropInput instead. | ||||
*/ | */ | ||||
REG_OP(Conv2DBackpropInputD) | REG_OP(Conv2DBackpropInputD) | ||||
.INPUT(filter, TensorType({DT_FLOAT16, DT_INT8})) | |||||
.INPUT(out_backprop, TensorType({DT_FLOAT16, DT_INT8})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_INT32, DT_FLOAT32})) | |||||
.INPUT(filter, TensorType({DT_FLOAT16, DT_INT8, DT_BF16})) | |||||
.INPUT(out_backprop, TensorType({DT_FLOAT16, DT_INT8, DT_BF16})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_INT32, DT_FLOAT32, DT_BF16})) | |||||
.REQUIRED_ATTR(input_size, ListInt) | .REQUIRED_ATTR(input_size, ListInt) | ||||
.REQUIRED_ATTR(strides, ListInt) | .REQUIRED_ATTR(strides, ListInt) | ||||
.REQUIRED_ATTR(pads, ListInt) | .REQUIRED_ATTR(pads, ListInt) | ||||
@@ -523,13 +516,12 @@ REG_OP(Conv2DBackpropInputD) | |||||
*\n | *\n | ||||
* The following are the supported data types and data formats:\n | * The following are the supported data types and data formats:\n | ||||
*\n | *\n | ||||
| Tensor | x | filter | bias | y\n | |||||
------------|---------|---------|---------|--------\n | |||||
| Data Type | float16 | float16 | float16 | float16\n | |||||
| |---------|---------|---------|--------\n | |||||
| | int8 | int8 | int32 | int32\n | |||||
------------|---------|---------|---------|--------\n | |||||
| Format | NCHW | NCHW | ND | NCHW\n | |||||
*\n | |||||
| Tensor | x | filter | bias | y |\n | |||||
|-----------|---------|---------|---------|--------|\n | |||||
| Data Type | float16 | float16 | float16 | float16|\n | |||||
| | int8 | int8 | int32 | int32 |\n | |||||
| Format | NCHW | NCHW | ND | NCHW |\n | |||||
*\n | *\n | ||||
* For int8, a dequant or requant operator must be followed. | * For int8, a dequant or requant operator must be followed. | ||||
*\n | *\n | ||||
@@ -553,29 +545,24 @@ REG_OP(Conv2DBackpropInputD) | |||||
*\n | *\n | ||||
* The following value range restrictions must be met:\n | * The following value range restrictions must be met:\n | ||||
*\n | *\n | ||||
| Name | Field | Scope\n | |||||
-------------------|----------|--------------\n | |||||
| x (out_backprop) | H*strideH| [1, 200000]\n | |||||
| | W*strideW| [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| Filter | H | [1, 255]\n | |||||
| | W | [1, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| y (fmap) | H | [1, 200000]\n | |||||
| | W | [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| Stride | H | [1, 63]\n | |||||
| | W | [1, 63]\n | |||||
-------------------|----------|--------------\n | |||||
| Padding | Top | [0, 255]\n | |||||
| | Bottom | [0, 255]\n | |||||
| | Left | [0, 255]\n | |||||
| | Right | [0, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| Dilation | H | [1, 255]\n | |||||
| | W | [1, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| Offset_x | | [-128, 127]\n | |||||
*\n | |||||
| Name | Field | Scope |\n | |||||
|------------------|----------|--------------|\n | |||||
| x (out_backprop) | H*strideH| [1, 200000] |\n | |||||
| | W*strideW| [1, 4096] |\n | |||||
| Filter | H | [1, 255] |\n | |||||
| | W | [1, 255] |\n | |||||
| y (fmap) | H | [1, 200000] |\n | |||||
| | W | [1, 4096] |\n | |||||
| Stride | H | [1, 63] |\n | |||||
| | W | [1, 63] |\n | |||||
| Padding | Top | [0, 255] |\n | |||||
| | Bottom | [0, 255] |\n | |||||
| | Left | [0, 255] |\n | |||||
| | Right | [0, 255] |\n | |||||
| Dilation | H | [1, 255] |\n | |||||
| | W | [1, 255] |\n | |||||
| Offset_x | | [-128, 127] |\n | |||||
*\n | *\n | ||||
* In Ascend910, fmap or out_backprop's H and W not support 1 when | * In Ascend910, fmap or out_backprop's H and W not support 1 when | ||||
* fmap_h + pad_top + pad_bottom != (filter_height - 1) * dilation_h + 1 | * fmap_h + pad_top + pad_bottom != (filter_height - 1) * dilation_h + 1 | ||||
@@ -631,16 +618,14 @@ REG_OP(Deconvolution) | |||||
*\n | *\n | ||||
* The following are the supported data types and data formats:\n | * The following are the supported data types and data formats:\n | ||||
*\n | *\n | ||||
| Tensor | x | out_backprop | y\n | |||||
------------|---------|--------------|---------\n | |||||
| Data Type | float16 | float16 | float16\n | |||||
| |---------|--------------|---------\n | |||||
| | float32 | float32 | float32\n | |||||
| |---------|--------------|---------\n | |||||
| | float64 | float64 | float64\n | |||||
|-----------|---------|--------------|---------\n | |||||
| Format | NCHW | NCHW | NCHW\n | |||||
| | NHWC | NHWC | HWCN\n | |||||
*\n | |||||
| Tensor | x | out_backprop | y |\n | |||||
|-----------|---------|--------------|---------|\n | |||||
| Data Type | float16 | float16 | float16 |\n | |||||
| | float32 | float32 | float32 |\n | |||||
| | float64 | float64 | float64 |\n | |||||
| Format | NCHW | NCHW | NCHW |\n | |||||
| | NHWC | NHWC | HWCN |\n | |||||
*\n | *\n | ||||
* For float32 and float64 type of x and outbackprop, the actual calculation on the chip | * For float32 and float64 type of x and outbackprop, the actual calculation on the chip | ||||
* is based on float16. | * is based on float16. | ||||
@@ -662,30 +647,25 @@ REG_OP(Deconvolution) | |||||
*\n | *\n | ||||
* The following value range restrictions must be met:\n | * The following value range restrictions must be met:\n | ||||
*\n | *\n | ||||
| Name | Field | Scope\n | |||||
-------------------|----------|--------------\n | |||||
| x(fmap) | H | [1, 200000]\n | |||||
| | W | [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| Filter Size | H | [1, 255]\n | |||||
| | W | [1, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| out_backprop | H | [1, 200000]\n | |||||
| | W | [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| y | H | [1, 200000]\n | |||||
| | W | [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| Stride | H | [1, 63]\n | |||||
| | W | [1, 63]\n | |||||
-------------------|----------|--------------\n | |||||
| Padding | Top | [0, 255]\n | |||||
| | Bottom | [0, 255]\n | |||||
| | Left | [0, 255]\n | |||||
| | Right | [0, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| Dilation | H | [1, 255]\n | |||||
| | W | [1, 255]\n | |||||
*\n | |||||
| Name | Field | Scope |\n | |||||
|------------------|----------|--------------|\n | |||||
| x(fmap) | H | [1, 200000] |\n | |||||
| | W | [1, 4096] |\n | |||||
| Filter Size | H | [1, 255] |\n | |||||
| | W | [1, 255] |\n | |||||
| out_backprop | H | [1, 200000] |\n | |||||
| | W | [1, 4096] |\n | |||||
| y | H | [1, 200000] |\n | |||||
| | W | [1, 4096] |\n | |||||
| Stride | H | [1, 63] |\n | |||||
| | W | [1, 63] |\n | |||||
| Padding | Top | [0, 255] |\n | |||||
| | Bottom | [0, 255] |\n | |||||
| | Left | [0, 255] |\n | |||||
| | Right | [0, 255] |\n | |||||
| Dilation | H | [1, 255] |\n | |||||
| | W | [1, 255] |\n | |||||
*\n | *\n | ||||
*@par Outputs: | *@par Outputs: | ||||
* y: A Tensor. Has the same type as x, has the same format as filter_size. | * y: A Tensor. Has the same type as x, has the same format as filter_size. | ||||
@@ -853,11 +833,11 @@ REG_OP(Conv2DBackpropFilterD) | |||||
*@li Compatible with the Caffe operator 2D "Convolution". | *@li Compatible with the Caffe operator 2D "Convolution". | ||||
*/ | */ | ||||
REG_OP(Conv2D) | REG_OP(Conv2D) | ||||
.INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8})) | |||||
.INPUT(filter, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8})) | |||||
.INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8, DT_BF16})) | |||||
.INPUT(filter, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT8, DT_BF16})) | |||||
.OPTIONAL_INPUT(bias, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT32})) | .OPTIONAL_INPUT(bias, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT32})) | ||||
.OPTIONAL_INPUT(offset_w, TensorType({DT_INT8})) | .OPTIONAL_INPUT(offset_w, TensorType({DT_INT8})) | ||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT32})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT, DT_INT32, DT_BF16})) | |||||
.REQUIRED_ATTR(strides, ListInt) | .REQUIRED_ATTR(strides, ListInt) | ||||
.REQUIRED_ATTR(pads, ListInt) | .REQUIRED_ATTR(pads, ListInt) | ||||
.ATTR(dilations, ListInt, {1, 1, 1, 1}) | .ATTR(dilations, ListInt, {1, 1, 1, 1}) | ||||
@@ -1441,14 +1421,13 @@ REG_OP(Conv3DTransposeD) | |||||
*\n | *\n | ||||
* The following are the supported data types and data formats:\n | * The following are the supported data types and data formats:\n | ||||
*\n | *\n | ||||
| Tensor | x | filter | bias | y\n | |||||
------------|---------|---------|---------|--------\n | |||||
| Data Type | float16 | float16 | float16 | float16\n | |||||
| |---------|---------|---------|--------\n | |||||
| | int8 | int8 | int32 | int32\n | |||||
------------|---------|---------|---------|--------\n | |||||
| Format | NCHW | NCHW | ND | NCHW\n | |||||
| | NHWC | HWCN | | NHWC\n | |||||
*\n | |||||
| Tensor | x | filter | bias | y |\n | |||||
|-----------|---------|---------|---------|--------|\n | |||||
| Data Type | float16 | float16 | float16 | float16|\n | |||||
| | int8 | int8 | int32 | int32 |\n | |||||
| Format | NCHW | NCHW | ND | NCHW |\n | |||||
| | NHWC | HWCN | | NHWC |\n | |||||
*\n | *\n | ||||
* For int8, a dequant or requant operator must be followed. | * For int8, a dequant or requant operator must be followed. | ||||
*\n | *\n | ||||
@@ -1476,32 +1455,26 @@ REG_OP(Conv3DTransposeD) | |||||
*\n | *\n | ||||
* The following value range restrictions must be met:\n | * The following value range restrictions must be met:\n | ||||
*\n | *\n | ||||
| Name | Field | Scope\n | |||||
-------------------|----------|--------------\n | |||||
| input_size | H | [1, 200000]\n | |||||
| | W | [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| x (out_backprop) | H*strideH| [1, 200000]\n | |||||
| | W*strideW| [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| filter | H | [1, 255]\n | |||||
| | W | [1, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| y (fmap) | H | [1, 200000]\n | |||||
| | W | [1, 4096]\n | |||||
-------------------|----------|--------------\n | |||||
| Stride | H | [1, 63]\n | |||||
| | W | [1, 63]\n | |||||
-------------------|----------|--------------\n | |||||
| Padding | Top | [0, 255]\n | |||||
| | Bottom | [0, 255]\n | |||||
| | Left | [0, 255]\n | |||||
| | Right | [0, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| Dilation | H | [1, 255]\n | |||||
| | W | [1, 255]\n | |||||
-------------------|----------|--------------\n | |||||
| Offset_x | | [-128, 127]\n | |||||
*\n | |||||
| Name | Field | Scope |\n | |||||
|------------------|----------|--------------|\n | |||||
| input_size | H | [1, 200000] |\n | |||||
| | W | [1, 4096] |\n | |||||
| x (out_backprop) | H*strideH| [1, 200000] |\n | |||||
| | W*strideW| [1, 4096] |\n | |||||
| filter | H | [1, 255] |\n | |||||
| | W | [1, 255] |\n | |||||
| y (fmap) | H | [1, 200000] |\n | |||||
| | W | [1, 4096] |\n | |||||
| Stride | H | [1, 63] |\n | |||||
| | W | [1, 63] |\n | |||||
| Padding | Top | [0, 255] |\n | |||||
| | Bottom | [0, 255] |\n | |||||
| | Left | [0, 255] |\n | |||||
| | Right | [0, 255] |\n | |||||
| Dilation | H | [1, 255] |\n | |||||
| | W | [1, 255] |\n | |||||
| Offset_x | | [-128, 127] |\n | |||||
*\n | *\n | ||||
* In Ascend910, fmap or out_backprop's H and W not support 1 when | * In Ascend910, fmap or out_backprop's H and W not support 1 when | ||||
* fmap_h + pad_top + pad_bottom != (filter_height - 1) * dilation_h + 1 | * fmap_h + pad_top + pad_bottom != (filter_height - 1) * dilation_h + 1 | ||||
@@ -205,7 +205,8 @@ the value "5" indicates the indexes of images where the ROIs are located, "x0", | |||||
*@li spatial_scale: A required attribute of type float, specifying the scaling ratio of "features" to the original image. | *@li spatial_scale: A required attribute of type float, specifying the scaling ratio of "features" to the original image. | ||||
*@li sample_num: An optional attribute of type int, specifying the horizontal and vertical | *@li sample_num: An optional attribute of type int, specifying the horizontal and vertical | ||||
sampling frequency of each output. If this attribute is set to "0", the sampling frequency is | sampling frequency of each output. If this attribute is set to "0", the sampling frequency is | ||||
equal to the rounded up value of "rois", which is a floating point number. Defaults to "2" . \n | |||||
equal to the rounded up value of "rois", which is a floating point number. Defaults to "2" . | |||||
*@li roi_end_mode: An optional attribute of type int, specifying the align mode .\n | |||||
*@par Outputs: | *@par Outputs: | ||||
*xdiff: Gradient added to input "features". Has the same 5HD shape as input "features". | *xdiff: Gradient added to input "features". Has the same 5HD shape as input "features". | ||||
@@ -220,6 +221,7 @@ REG_OP(ROIAlignGrad) | |||||
.REQUIRED_ATTR(pooled_height, Int) | .REQUIRED_ATTR(pooled_height, Int) | ||||
.REQUIRED_ATTR(spatial_scale, Float) | .REQUIRED_ATTR(spatial_scale, Float) | ||||
.ATTR(sample_num, Int, 2) | .ATTR(sample_num, Int, 2) | ||||
.ATTR(roi_end_mode, Int, 1) | |||||
.OP_END_FACTORY_REG(ROIAlignGrad) | .OP_END_FACTORY_REG(ROIAlignGrad) | ||||
/** | /** | ||||
@@ -59,6 +59,25 @@ REG_OP(HardSwish) | |||||
.OP_END_FACTORY_REG(HardSwish) | .OP_END_FACTORY_REG(HardSwish) | ||||
/** | /** | ||||
*@brief Computes the gradient for the hard_swish of "x" . \n | |||||
* @par Inputs: | |||||
*Two inputs, including: | |||||
* @li grad: A Tensor. Must be one of the following types: float16, float32 | |||||
* @li x: A Tensor of the same type as "grad" . \n | |||||
*@par Outputs: | |||||
*y: A Tensor. Has the same type as "grad". | |||||
* @par Third-party framework compatibility | |||||
* Compatible with the Torch operator HardSwishGrad. | |||||
*/ | |||||
REG_OP(HardSwishGrad) | |||||
.INPUT(grad, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OP_END_FACTORY_REG(HardSwishGrad) | |||||
/** | |||||
*@brief Computes the for the Swish of "x" . \n | *@brief Computes the for the Swish of "x" . \n | ||||
*@par Inputs: | *@par Inputs: | ||||
@@ -81,6 +100,29 @@ REG_OP(Swish) | |||||
.OP_END_FACTORY_REG(Swish) | .OP_END_FACTORY_REG(Swish) | ||||
/** | /** | ||||
*@brief Computes the gradient for the Swish of "x" . \n | |||||
*@par Inputs: | |||||
*Three inputs, including: | |||||
* @li grad: A Tensor. Must be one of the following types: float16, float32 | |||||
* @li x: A Tensor of the same type as "grad". | |||||
* @li y: A Tensor of the same type as "grad" . \n | |||||
* @par Attributes: | |||||
* scale: A optional scalar. The data type is float . \n | |||||
*@par Outputs: | |||||
*grad_x: A Tensor. Has the same type as "grad". | |||||
*@par Third-party framework compatibility | |||||
*Compatible with the Torch operator SwishGrad | |||||
*/ | |||||
REG_OP(SwishGrad) | |||||
.INPUT(grad, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OUTPUT(grad_x, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.ATTR(scale, Float, 1.0) | |||||
.OP_END_FACTORY_REG(SwishGrad) | |||||
/** | |||||
*@brief Computes the gradient for the gelu of "x" . \n | *@brief Computes the gradient for the gelu of "x" . \n | ||||
*@par Inputs: | *@par Inputs: | ||||
@@ -274,6 +274,38 @@ REG_OP(PadV3) | |||||
.ATTR(mode, String, "constant") | .ATTR(mode, String, "constant") | ||||
.ATTR(paddings_contiguous, Bool, true) | .ATTR(paddings_contiguous, Bool, true) | ||||
.OP_END_FACTORY_REG(PadV3) | .OP_END_FACTORY_REG(PadV3) | ||||
/** | |||||
*@brief Cal the grad of Pads. | |||||
*@par Inputs: | |||||
*Two inputs, including: | |||||
* @li x: A Tensor. Must be one of the following types: float16, float32, double, int32, | |||||
* uint8, int16, int8, complex64, int64, qint8, quint8, qint32, qint16, quint16, uint16, | |||||
* complex128, uint32, uint64. | |||||
* @li paddings: A Tensor of type int32 or int64. | |||||
*@par Attributes: | |||||
* @li mode: An optional string, Defaults to "reflect", indicates paddings mode, | |||||
* support "reflect", "edge" | |||||
* @li paddings_contiguous: An optional bool value, Defaults to true. | |||||
* If true, paddings is arranged as [[begin0, end0], [begin1, end1], ...] | |||||
* If false, paddings is arranged as [[begin0, begin1], ..., [end0, end1], ...] | |||||
*@par Outputs: | |||||
*y: A Tensor of the same type as "x". | |||||
*@par Third-party framework compatibility: | |||||
* Compatible with ONNX operator PadGrad. | |||||
*/ | |||||
REG_OP(PadV3Grad) | |||||
.INPUT(x, TensorType::BasicType()) | |||||
.INPUT(paddings, TensorType::IndexNumberType()) | |||||
.OUTPUT(y, TensorType::BasicType()) | |||||
.ATTR(mode, String, "reflect") | |||||
.ATTR(paddings_contiguous, Bool, true) | |||||
.OP_END_FACTORY_REG(PadV3Grad) | |||||
/** | /** | ||||
*@brief Pads a tensor. | *@brief Pads a tensor. | ||||
@@ -685,6 +685,24 @@ REG_OP(Uniform) | |||||
.ATTR(from, Float, 0.0) | .ATTR(from, Float, 0.0) | ||||
.ATTR(to, Float, 1.0) | .ATTR(to, Float, 1.0) | ||||
.OP_END_FACTORY_REG(Uniform) | .OP_END_FACTORY_REG(Uniform) | ||||
} // namespace ge | |||||
/** | |||||
*@brief Outputs integers consisting of 0 and 1, used for lstm etc. \n | |||||
*@par Inputs | |||||
* @li time_step: A tensor with data type int64. 0-D. | |||||
* @li batch_size: A tensor with data type int64. 0-D. | |||||
*@par Outputs: | |||||
*y: A Tensor. Has the type float16 or float, 2-D, [time_step,batch_size]. \n | |||||
*@attention Constraints: | |||||
* Compatible with the Caffe operator ContinuationIndicator. | |||||
*/ | |||||
REG_OP(ContinuationIndicator) | |||||
.REQUIRED_ATTR(time_step, Int) | |||||
.REQUIRED_ATTR(batch_size, Int) | |||||
.OUTPUT(y, TensorType({DT_FLOAT})) | |||||
.OP_END_FACTORY_REG(ContinuationIndicator) | |||||
} // namespace ge | |||||
#endif // OPS_BUILT_IN_OP_PROTO_INC_RANDOM_OPS_H_ | #endif // OPS_BUILT_IN_OP_PROTO_INC_RANDOM_OPS_H_ |
@@ -1275,7 +1275,7 @@ REG_OP(ReduceStd) | |||||
* @par Attributes: | * @par Attributes: | ||||
* Three Attributes, including: | |||||
* Five Attributes, including: | |||||
* @li dim: An optional listint, Defaults to "None". \n | * @li dim: An optional listint, Defaults to "None". \n | ||||
* @li unbiased: An optional bool. Defaults to "True". | * @li unbiased: An optional bool. Defaults to "True". | ||||
* If "True", Use Bessel Correction. | * If "True", Use Bessel Correction. | ||||
@@ -1283,9 +1283,14 @@ REG_OP(ReduceStd) | |||||
* @li keepdim: An optional bool. Defaults to "False". | * @li keepdim: An optional bool. Defaults to "False". | ||||
* If "True", Keep the original tensor dimension. | * If "True", Keep the original tensor dimension. | ||||
* If "False", Do not keep the original tensor dimension. \n | * If "False", Do not keep the original tensor dimension. \n | ||||
* @li invert: An optional bool, Defaults to "False". | |||||
* If "True", the output is inverse of variance. | |||||
* If "False", the output is variance. | |||||
* @li epsilon: An optional floar, Defaults to 0.001. | |||||
* Prevent division by 0. | |||||
* @par Outputs: | * @par Outputs: | ||||
* @li y: A Tensor. It's the std of X. Has the same type as "x". | |||||
* @li y: A Tensor. It's the variance of X or reciprocal of vaiance of X. Has the same type as "x". | |||||
* @par Third-party framework compatibility | * @par Third-party framework compatibility | ||||
* Compatible with the Pytorch operator ReduceStdWithMean. | * Compatible with the Pytorch operator ReduceStdWithMean. | ||||
@@ -1297,6 +1302,8 @@ REG_OP(ReduceStdWithMean) | |||||
.ATTR(dim, ListInt, {}) | .ATTR(dim, ListInt, {}) | ||||
.ATTR(unbiased, Bool, true) | .ATTR(unbiased, Bool, true) | ||||
.ATTR(keepdim, Bool, false) | .ATTR(keepdim, Bool, false) | ||||
.ATTR(invert, Bool, false) | |||||
.ATTR(epsilon, Float, 0.001) | |||||
.OP_END_FACTORY_REG(ReduceStdWithMean) | .OP_END_FACTORY_REG(ReduceStdWithMean) | ||||
} //namespace ge | } //namespace ge | ||||
@@ -822,7 +822,7 @@ REG_OP(DynamicGRU) | |||||
*@li weight_hidden:Must be one of the following types: float16. The format must be FRACTAL_Z. | *@li weight_hidden:Must be one of the following types: float16. The format must be FRACTAL_Z. | ||||
*@li bias_input:Must be one of the following types: float16, float32. The format must be ND. | *@li bias_input:Must be one of the following types: float16, float32. The format must be ND. | ||||
*@li bias_hidden:Must be one of the following types: float16, float32. The format must be ND. | *@li bias_hidden:Must be one of the following types: float16, float32. The format must be ND. | ||||
*@li seq_length:Must be one of the following types: int32. The format must be ND. | |||||
*@li seq_length:Must be one of the following types: float16 in FRACTAL_NZ and int32 in ND. | |||||
*@li init_h:Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | *@li init_h:Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | ||||
*@par Attributes: | *@par Attributes: | ||||
@@ -852,7 +852,7 @@ REG_OP(DynamicGRUV2) | |||||
.INPUT(weight_hidden, TensorType({DT_FLOAT16})) | .INPUT(weight_hidden, TensorType({DT_FLOAT16})) | ||||
.OPTIONAL_INPUT(bias_input, TensorType({DT_FLOAT16, DT_FLOAT})) | .OPTIONAL_INPUT(bias_input, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OPTIONAL_INPUT(bias_hidden, TensorType({DT_FLOAT16, DT_FLOAT})) | .OPTIONAL_INPUT(bias_hidden, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OPTIONAL_INPUT(seq_length, TensorType({DT_INT32})) | |||||
.OPTIONAL_INPUT(seq_length, TensorType({DT_INT32, DT_FLOAT16})) | |||||
.OPTIONAL_INPUT(init_h, TensorType({DT_FLOAT16, DT_FLOAT})) | .OPTIONAL_INPUT(init_h, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | .OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OUTPUT(output_h, TensorType({DT_FLOAT16, DT_FLOAT})) | .OUTPUT(output_h, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
@@ -880,7 +880,7 @@ REG_OP(DynamicGRUV2) | |||||
*@li x_weight_input:Must be one of the following types: float32. The format must be FRACTAL_NZ. | *@li x_weight_input:Must be one of the following types: float32. The format must be FRACTAL_NZ. | ||||
*@li weight_hidden:Must be one of the following types: float16. The format must be FRACTAL_Z. | *@li weight_hidden:Must be one of the following types: float16. The format must be FRACTAL_Z. | ||||
*@li bias_hidden:Must be one of the following types: float16, float32. The format must be ND. | *@li bias_hidden:Must be one of the following types: float16, float32. The format must be ND. | ||||
*@li seq_length:Must be one of the following types: int32. The format must be ND. | |||||
*@li seq_length:Must be one of the following types: float16 in FRACTAL_NZ and int32 in ND. | |||||
*@li init_h:Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | *@li init_h:Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | ||||
*@par Attributes: | *@par Attributes: | ||||
@@ -913,7 +913,7 @@ REG_OP(DynamicGRUV2Hidden) | |||||
.INPUT(x_weight_input, TensorType({DT_FLOAT32})) | .INPUT(x_weight_input, TensorType({DT_FLOAT32})) | ||||
.INPUT(weight_hidden, TensorType({DT_FLOAT16})) | .INPUT(weight_hidden, TensorType({DT_FLOAT16})) | ||||
.OPTIONAL_INPUT(bias_hidden, TensorType({DT_FLOAT16, DT_FLOAT})) | .OPTIONAL_INPUT(bias_hidden, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OPTIONAL_INPUT(seq_length, TensorType({DT_INT32})) | |||||
.OPTIONAL_INPUT(seq_length, TensorType({DT_INT32, DT_FLOAT16})) | |||||
.OPTIONAL_INPUT(init_h, TensorType({DT_FLOAT16, DT_FLOAT})) | .OPTIONAL_INPUT(init_h, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | .OUTPUT(y, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OUTPUT(output_h, TensorType({DT_FLOAT16, DT_FLOAT})) | .OUTPUT(output_h, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
@@ -1050,6 +1050,50 @@ REG_OP(GRUV2HiddenGradCell) | |||||
.OP_END_FACTORY_REG(GRUV2HiddenGradCell) | .OP_END_FACTORY_REG(GRUV2HiddenGradCell) | ||||
/** | /** | ||||
*@brief: DynamicGRUCellGrad calculation. | |||||
*@par Inputs: | |||||
*ten inputs: \n | |||||
*@li dh_pre_t:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li h:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li dy:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li dh:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li update:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li reset:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li new:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li hidden_new:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ.+ | |||||
*@li init_h:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li t_state:A 1D Tensor. Must be one of the following types: int32. The format must be ND. | |||||
*@par Attributes: | |||||
*gate_order:An string identifying the gate order in weight and bias. Default to "zrh". "rzh" is another option. | |||||
*@par Outputs: | |||||
*three outputs: \n | |||||
*@li dh_prev:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li dgate_h:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@li dnt_x:A 4D Tensor. Must be one of the following types: float16, float32. The format must be FRACTAL_NZ. | |||||
*@par Restrictions: | |||||
*Warning: THIS FUNCTION IS EXPERIMENTAL. Please do not use. | |||||
*/ | |||||
REG_OP(DynamicGRUCellGrad) | |||||
.INPUT(dh_pre_t, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(h, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(dy, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(dh, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(update, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(reset, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(new, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(hidden_new, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(init_h, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(t_state, TensorType({DT_INT32, DT_INT32})) | |||||
.OUTPUT(dh_prev, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OUTPUT(dgate_h, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OUTPUT(dnt_x, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.ATTR(gate_order, String, "zrh") | |||||
.OP_END_FACTORY_REG(DynamicGRUCellGrad) | |||||
/** | |||||
* @brief Calculates the reversed outputs of the function "embedding". \n | * @brief Calculates the reversed outputs of the function "embedding". \n | ||||
* @par Inputs: | * @par Inputs: | ||||
@@ -1137,8 +1181,8 @@ REG_OP(CommonLSTM) | |||||
* | * | ||||
* @par Inputs: | * @par Inputs: | ||||
* @li seq_length: A 1D Tensor. Must be one of the following types: int32. Record the current length of each batch. [batch_size]. | * @li seq_length: A 1D Tensor. Must be one of the following types: int32. Record the current length of each batch. [batch_size]. | ||||
* @li b: A 1D Tensor. Must be one of the following types: fp16/fp32. Record the hidden_size. [4 * hidden_size]. | |||||
* @li x: A 3D Tensor. Must be one of the following types: fp16/fp32. Record the num_step/batch_size/input_size. [num_step, batch_size, input_size]. | * @li x: A 3D Tensor. Must be one of the following types: fp16/fp32. Record the num_step/batch_size/input_size. [num_step, batch_size, input_size]. | ||||
* @li hidden_size: An optional attribute of type int32. pass the hidden_size. \n | |||||
* | * | ||||
* @par Outputs: | * @par Outputs: | ||||
* seq_mask: A 3D Tensor. Must be one of the following types: fp16/fp32. with the shape of [num_step, batch_size, hidden_size]. And has the same type as "b" \n | * seq_mask: A 3D Tensor. Must be one of the following types: fp16/fp32. with the shape of [num_step, batch_size, hidden_size]. And has the same type as "b" \n | ||||
@@ -1148,8 +1192,8 @@ REG_OP(CommonLSTM) | |||||
*/ | */ | ||||
REG_OP(RnnGenMaskV2) | REG_OP(RnnGenMaskV2) | ||||
.INPUT(seq_length, TensorType({DT_INT32})) | .INPUT(seq_length, TensorType({DT_INT32})) | ||||
.INPUT(b, TensorType({{DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | .INPUT(x, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.REQUIRED_ATTR(hidden_size, Int) | |||||
.OUTPUT(seq_mask, TensorType({DT_FLOAT16, DT_FLOAT})) | .OUTPUT(seq_mask, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OP_END_FACTORY_REG(RnnGenMaskV2) | .OP_END_FACTORY_REG(RnnGenMaskV2) | ||||
@@ -1381,7 +1381,7 @@ REG_OP(InplaceUpdate) | |||||
.INPUT(x, TensorType::BasicType()) | .INPUT(x, TensorType::BasicType()) | ||||
.INPUT(indices, TensorType({DT_INT32})) | .INPUT(indices, TensorType({DT_INT32})) | ||||
.INPUT(v, TensorType::BasicType()) | .INPUT(v, TensorType::BasicType()) | ||||
.OUTPUT(y, TensorType::BasicType()) | |||||
.OUTPUT(x, TensorType::BasicType()) | |||||
.OP_END_FACTORY_REG(InplaceUpdate) | .OP_END_FACTORY_REG(InplaceUpdate) | ||||
/** | /** | ||||
@@ -2408,6 +2408,40 @@ REG_OP(TopKPQDistanceMerge) | |||||
.OUTPUT(topk_index, TensorType({DT_INT32})) | .OUTPUT(topk_index, TensorType({DT_INT32})) | ||||
.REQUIRED_ATTR(k, Int) | .REQUIRED_ATTR(k, Int) | ||||
.OP_END_FACTORY_REG(TopKPQDistanceMerge) | .OP_END_FACTORY_REG(TopKPQDistanceMerge) | ||||
/** | |||||
*@brief Extracts a strided slice of a tensor. Roughly speaking, this op | |||||
extracts a slice of size (end-begin)/stride from the given input tensor. | |||||
Starting at the location specified by begin the slice continues by | |||||
adding stride to the index until all dimensions are not less than end. | |||||
*@par Inputs: | |||||
*Four inputs, including: | |||||
* @li x: A Tensor. Must be one of the following types: float32, float64, int32, uint8, int16, int8, | |||||
* complex64, int64, qint8, quint8, qint32, qint16, quint16, uint16, | |||||
* complex128, float16, uint32, uint64. | |||||
* @li begin: A Tensor of type int32 or int64, for the index of the first value to select . \n | |||||
* @li end: A Tensor of type int32 or int64, for the index of the last value to select . \n | |||||
* @li strides: A Tensor of type int32 or int64, for the increment . \n | |||||
* @li axes: A Tensor of type int32 or int64, for the increment . \n | |||||
*@par Outputs: | |||||
*y: A Tensor. Has the same type as "x" . \n | |||||
* @par Restrictions: | |||||
* Warning: THIS FUNCTION IS EXPERIMENTAL. Please do not use. | |||||
*/ | |||||
REG_OP(StridedSliceV3) | |||||
.INPUT(x, TensorType::BasicType()) | |||||
.INPUT(begin, TensorType::IndexNumberType()) | |||||
.INPUT(end, TensorType::IndexNumberType()) | |||||
.OPTIONAL_INPUT(axes, TensorType::IndexNumberType()) | |||||
.OPTIONAL_INPUT(strides, TensorType::IndexNumberType()) | |||||
.OUTPUT(y, TensorType::BasicType()) | |||||
.OP_END_FACTORY_REG(StridedSliceV3) | |||||
} // namespace ge | } // namespace ge | ||||
#endif // OPS_BUILT_IN_OP_PROTO_INC_SELECTION_OPS_H_ | #endif // OPS_BUILT_IN_OP_PROTO_INC_SELECTION_OPS_H_ |
@@ -368,8 +368,9 @@ REG_OP(SpaceToDepth) | |||||
* complex128, uint32, uint64 | * complex128, uint32, uint64 | ||||
*@par Attributes: | *@par Attributes: | ||||
*Two attributes, including: | |||||
*Three attributes, including: | |||||
* @li block_size: An int >= 2, specifying the size of the spatial block. | * @li block_size: An int >= 2, specifying the size of the spatial block. | ||||
* @li mode: An optional string, specifying the mode. Defaults to "DCR". | |||||
* @li data_format: An optional string, specifying the data format. Defaults to "NHWC" . \n | * @li data_format: An optional string, specifying the data format. Defaults to "NHWC" . \n | ||||
*@par Outputs: | *@par Outputs: | ||||
@@ -382,6 +383,7 @@ REG_OP(DepthToSpace) | |||||
.INPUT(x, TensorType::BasicType()) | .INPUT(x, TensorType::BasicType()) | ||||
.OUTPUT(y, TensorType::BasicType()) | .OUTPUT(y, TensorType::BasicType()) | ||||
.REQUIRED_ATTR(block_size, Int) | .REQUIRED_ATTR(block_size, Int) | ||||
.ATTR(mode, String, "DCR") | |||||
.ATTR(data_format, String, "NHWC") | .ATTR(data_format, String, "NHWC") | ||||
.OP_END_FACTORY_REG(DepthToSpace) | .OP_END_FACTORY_REG(DepthToSpace) | ||||
@@ -34,7 +34,7 @@ namespace ge { | |||||
* @li bucket_list: A Tensor. Must be one of the following types: int32, int64. | * @li bucket_list: A Tensor. Must be one of the following types: int32, int64. | ||||
* | * | ||||
* @par Outputs: | * @par Outputs: | ||||
* @li adc_tables: A Tensor. Must be one of the following types: float16, float32. | |||||
* adc_tables: A Tensor. Must be one of the following types: float16, float32. | |||||
*/ | */ | ||||
REG_OP(GenADC) | REG_OP(GenADC) | ||||
.INPUT(query, TensorType({DT_FLOAT16, DT_FLOAT})) | .INPUT(query, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
@@ -43,6 +43,87 @@ REG_OP(GenADC) | |||||
.INPUT(bucket_list, TensorType({DT_INT32, DT_INT64})) | .INPUT(bucket_list, TensorType({DT_INT32, DT_INT64})) | ||||
.OUTPUT(adc_tables, TensorType({DT_FLOAT16, DT_FLOAT})) | .OUTPUT(adc_tables, TensorType({DT_FLOAT16, DT_FLOAT})) | ||||
.OP_END_FACTORY_REG(GenADC) | .OP_END_FACTORY_REG(GenADC) | ||||
/** | |||||
* @brief Finds values and indices of the "k" largest or least elements for the last dimension. \n | |||||
* | |||||
* @par Inputs: | |||||
* Dynamin inputs, including: | |||||
* @li actual_count: A Tensor of type int32, the actual number of pq_distance. | |||||
* @li pq_distance: A Tensor, Will be updated after calculation. Must be one of the following types: float32, float16. | |||||
* @li grouped_extreme_distance: A Tensor, the extremum in each group. Must be one of the following types: float32, float16. | |||||
* @li pq_index: A Tensor of type int32, index corresponding to pq_distance. | |||||
* @li pq_ivf: A Tensor of type int32 , the bucket number corresponding to pq_distance. | |||||
* | |||||
* @par Attributes: | |||||
* @li order: A string, indicates the sorting method of topk_pq_distance. \n | |||||
* @li k: Int, k maximum or minimum values. \n | |||||
* @li group_size: Int, the group size of the extremum. \n | |||||
* | |||||
* @par Restrictions: | |||||
* Warning: THIS FUNCTION IS EXPERIMENTAL. Please do not use. | |||||
*/ | |||||
REG_OP(TopKPQDistance) | |||||
.DYNAMIC_INPUT(actual_count, TensorType({DT_INT32})) | |||||
.DYNAMIC_INPUT(pq_distance, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.DYNAMIC_INPUT(grouped_extreme_distance, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.DYNAMIC_INPUT(pq_ivf, TensorType({DT_INT32})) | |||||
.DYNAMIC_INPUT(pq_index, TensorType({DT_INT32})) | |||||
.OUTPUT(topk_distance, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OUTPUT(topk_ivf, TensorType({DT_INT32})) | |||||
.OUTPUT(topk_index, TensorType({DT_INT32})) | |||||
.ATTR(order, String, "ASC") | |||||
.ATTR(k, Int, 0) | |||||
.ATTR(group_size, Int, 0) | |||||
.OP_END_FACTORY_REG(TopKPQDistance) | |||||
/** | |||||
* @brief Calculate PQ distance. \n | |||||
* | |||||
* @par Inputs: | |||||
* Six inputs, including: | |||||
* @li ivf: A Tensor, dtype is uint8. | |||||
* @li bucket_list: A Tensor, dtype is int32. | |||||
* @li bucket_base_distance: A Tensor, dtype is float16. | |||||
* @li bucket_limits: A Tensor, dtype is int32. | |||||
* @li bucket_offsets: A Tensor, dtype is int32. | |||||
* @li adc_tables: A Tensor. dtype is float16. \n | |||||
* | |||||
* @par Outputs: | |||||
* Five outputs, including: | |||||
* @li actual_count: A Tensor, dtype is int32, the first element means the length of processed ivf. | |||||
* @li pq_distance: A Tensor, dtype is float16. | |||||
* @li grouped_extreme_distance: A Tensor, dtype is float16. | |||||
* @li pq_ivf: A Tensor, dtype is int32. | |||||
* @li pq_index: A Tensor, dtype is int32. \n | |||||
* | |||||
* @par Attributes: | |||||
* Five attributes, including: | |||||
* @li group_size: A Scalar, indicates the group size when compute grouped_extreme_distance. | |||||
* @li total_limit: A Scalar, indicates the total length of the outputs. | |||||
* @li extreme_mode: A Scalar, indicates the type of extremum, 0 means minimum, and 1 means maximum. | |||||
* @li split_count: A Scalar. | |||||
* @li split_index: A Scalar. \n | |||||
* | |||||
*/ | |||||
REG_OP(ScanPQCodes) | |||||
.INPUT(ivf, TensorType({DT_UINT8})) | |||||
.INPUT(bucket_list, TensorType({DT_INT32, DT_INT64})) | |||||
.INPUT(bucket_base_distance, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.INPUT(bucket_limits, TensorType({DT_INT32})) | |||||
.INPUT(bucket_offsets, TensorType({DT_INT64})) | |||||
.INPUT(adc_tables, TensorType({DT_FLOAT16, DT_FLOAT})) | |||||
.OUTPUT(actual_count, TensorType({DT_INT32})) | |||||
.OUTPUT(pq_distance, TensorType({DT_FLOAT16})) | |||||
.OUTPUT(grouped_extreme_distance, TensorType({DT_FLOAT16})) | |||||
.OUTPUT(pq_ivf, TensorType({DT_INT32})) | |||||
.OUTPUT(pq_index, TensorType({DT_INT32})) | |||||
.REQUIRED_ATTR(total_limit, Int) | |||||
.ATTR(group_size, Int, 64) | |||||
.ATTR(extreme_mode, Int, 0) | |||||
.ATTR(split_count, Int, 1) | |||||
.ATTR(split_index, Int, 0) | |||||
.OP_END_FACTORY_REG(ScanPQCodes) | |||||
} // namespace ge | } // namespace ge | ||||
#endif // OPS_BUILT_IN_OP_PROTO_INC_VECTOR_SEARCH_H_ | #endif // OPS_BUILT_IN_OP_PROTO_INC_VECTOR_SEARCH_H_ |
@@ -42,7 +42,7 @@ static const int32_t RT_ERROR_NONE = 0; // success | |||||
*/ | */ | ||||
typedef enum tagRtDeviceMode { | typedef enum tagRtDeviceMode { | ||||
RT_DEVICE_MODE_SINGLE_DIE = 0, | RT_DEVICE_MODE_SINGLE_DIE = 0, | ||||
RT_DEVICE_MODE_MULTI_DIE = 1, | |||||
RT_DEVICE_MODE_MULTI_DIE, | |||||
RT_DEVICE_MODE_RESERVED | RT_DEVICE_MODE_RESERVED | ||||
} rtDeviceMode; | } rtDeviceMode; | ||||
@@ -178,7 +178,7 @@ RTS_API rtError_t rtProfilerInit(const char *profDir, const char *address, const | |||||
* @ingroup profiling_base | * @ingroup profiling_base | ||||
* @brief config rts profiler. | * @brief config rts profiler. | ||||
*/ | */ | ||||
RTS_API rtError_t rtProfilerConfig(uint16_t type); | |||||
RTS_API rtError_t rtProfilerConfig(uint16_t profConfig); | |||||
/** | /** | ||||
* @ingroup profiling_base | * @ingroup profiling_base | ||||
@@ -251,18 +251,6 @@ RTS_API rtError_t rtProfRegisterCtrlCallback(uint32_t moduleId, rtProfCtrlHandle | |||||
/** | /** | ||||
* @ingroup dvrt_base | * @ingroup dvrt_base | ||||
* @brief Returns the last error from a runtime call. | |||||
*/ | |||||
RTS_API rtError_t rtGetLastError(); | |||||
/** | |||||
* @ingroup dvrt_base | |||||
* @brief Returns the last error from a runtime call. | |||||
*/ | |||||
RTS_API rtError_t rtPeekAtLastError(); | |||||
/** | |||||
* @ingroup dvrt_base | |||||
* @brief register callback for error code | * @brief register callback for error code | ||||
* @param [out] NA | * @param [out] NA | ||||
* @return RT_ERROR_NONE for ok | * @return RT_ERROR_NONE for ok | ||||
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_CONFIG_H__ | |||||
#define __CCE_RUNTIME_CONFIG_H__ | |||||
#ifndef CCE_RUNTIME_CONFIG_H | |||||
#define CCE_RUNTIME_CONFIG_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -23,28 +23,28 @@ | |||||
extern "C" { | extern "C" { | ||||
#endif | #endif | ||||
#define PLAT_COMBINE(arch, chip, ver) ((arch << 16) | (chip << 8) | (ver)) | |||||
#define PLAT_GET_ARCH(type) ((type >> 16) & 0xffff) | |||||
#define PLAT_GET_CHIP(type) ((type >> 8) & 0xff) | |||||
#define PLAT_GET_VER(type) (type & 0xff) | |||||
#define PLAT_COMBINE(arch, chip, ver) (((arch) << 16U) | ((chip) << 8U) | (ver)) | |||||
#define PLAT_GET_ARCH(type) (((type) >> 16U) & 0xffffU) | |||||
#define PLAT_GET_CHIP(type) (((type) >> 8U) & 0xffU) | |||||
#define PLAT_GET_VER(type) ((type) & 0xffU) | |||||
typedef enum tagRtArchType { | typedef enum tagRtArchType { | ||||
ARCH_BEGIN = 0, | ARCH_BEGIN = 0, | ||||
ARCH_V100 = ARCH_BEGIN, | ARCH_V100 = ARCH_BEGIN, | ||||
ARCH_V200, | |||||
ARCH_END, | |||||
ARCH_V200 = 1, | |||||
ARCH_END = 2, | |||||
} rtArchType_t; | } rtArchType_t; | ||||
typedef enum tagRtChipType { | typedef enum tagRtChipType { | ||||
CHIP_BEGIN = 0, | CHIP_BEGIN = 0, | ||||
CHIP_MINI = CHIP_BEGIN, | CHIP_MINI = CHIP_BEGIN, | ||||
CHIP_CLOUD, | |||||
CHIP_MDC, | |||||
CHIP_LHISI, | |||||
CHIP_DC, | |||||
CHIP_CLOUD_V2, | |||||
CHIP_NO_DEVICE, | |||||
CHIP_END, | |||||
CHIP_CLOUD = 1, | |||||
CHIP_MDC = 2, | |||||
CHIP_LHISI = 3, | |||||
CHIP_DC = 4, | |||||
CHIP_CLOUD_V2 = 5, | |||||
CHIP_NO_DEVICE = 6, | |||||
CHIP_END = 7, | |||||
} rtChipType_t; | } rtChipType_t; | ||||
typedef enum tagRtAicpuScheType { | typedef enum tagRtAicpuScheType { | ||||
@@ -59,29 +59,32 @@ typedef enum tagRtDeviceCapabilityType { | |||||
RT_SCHEDULE_HARDWARE, // HWTS Schedule | RT_SCHEDULE_HARDWARE, // HWTS Schedule | ||||
RT_AICPU_BLOCKING_OP_NOT_SUPPORT, | RT_AICPU_BLOCKING_OP_NOT_SUPPORT, | ||||
RT_AICPU_BLOCKING_OP_SUPPORT, // 1910/1980/1951 ts support AICPU blocking operation | RT_AICPU_BLOCKING_OP_SUPPORT, // 1910/1980/1951 ts support AICPU blocking operation | ||||
RT_MODE_NO_FFTS, // no ffts | |||||
RT_MODE_FFTS, // 1981 get ffts work mode, ffts | |||||
RT_MODE_FFTS_PLUS, // 1981 get ffts work mode, ffts plus | |||||
} rtDeviceCapabilityType; | } rtDeviceCapabilityType; | ||||
typedef enum tagRtVersion { | typedef enum tagRtVersion { | ||||
VER_BEGIN = 0, | VER_BEGIN = 0, | ||||
VER_NA = VER_BEGIN, | VER_NA = VER_BEGIN, | ||||
VER_ES, | |||||
VER_CS, | |||||
VER_SD3403, | |||||
VER_END, | |||||
VER_ES = 1, | |||||
VER_CS = 2, | |||||
VER_SD3403 = 3, | |||||
VER_END = 4, | |||||
} rtVersion_t; | } rtVersion_t; | ||||
/* match rtChipType_t */ | /* match rtChipType_t */ | ||||
typedef enum tagRtPlatformType { | typedef enum tagRtPlatformType { | ||||
PLATFORM_BEGIN = 0, | PLATFORM_BEGIN = 0, | ||||
PLATFORM_MINI_V1 = PLATFORM_BEGIN, | PLATFORM_MINI_V1 = PLATFORM_BEGIN, | ||||
PLATFORM_CLOUD_V1, | |||||
PLATFORM_MINI_V2, | |||||
PLATFORM_LHISI_ES, | |||||
PLATFORM_LHISI_CS, | |||||
PLATFORM_DC, | |||||
PLATFORM_CLOUD_V2, | |||||
PLATFORM_LHISI_SD3403, | |||||
PLATFORM_END, | |||||
PLATFORM_CLOUD_V1 = 1, | |||||
PLATFORM_MINI_V2 = 2, | |||||
PLATFORM_LHISI_ES = 3, | |||||
PLATFORM_LHISI_CS = 4, | |||||
PLATFORM_DC = 5, | |||||
PLATFORM_CLOUD_V2 = 6, | |||||
PLATFORM_LHISI_SD3403 = 7, | |||||
PLATFORM_END = 8, | |||||
} rtPlatformType_t; | } rtPlatformType_t; | ||||
typedef enum tagRtCubeFracMKNFp16 { | typedef enum tagRtCubeFracMKNFp16 { | ||||
@@ -240,4 +243,4 @@ RTS_API rtError_t rtSetOpExecuteTimeOut(uint32_t timeout); | |||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_STREAM_H__ | |||||
#endif // CCE_RUNTIME_CONFIG_H |
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_CONTEXT_H__ | |||||
#define __CCE_RUNTIME_CONTEXT_H__ | |||||
#ifndef CCE_RUNTIME_CONTEXT_H | |||||
#define CCE_RUNTIME_CONTEXT_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -173,4 +173,4 @@ RTS_API rtError_t rtSetCtxINFMode(bool mode); | |||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_CONTEXT_H__ | |||||
#endif // CCE_RUNTIME_CONTEXT_H |
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_DEVICE_H__ | |||||
#define __CCE_RUNTIME_DEVICE_H__ | |||||
#ifndef CCE_RUNTIME_DEVICE_H | |||||
#define CCE_RUNTIME_DEVICE_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -23,8 +23,8 @@ | |||||
extern "C" { | extern "C" { | ||||
#endif | #endif | ||||
#define RT_CAPABILITY_SUPPORT (0x1) | |||||
#define RT_CAPABILITY_NOT_SUPPORT (0x0) | |||||
#define RT_CAPABILITY_SUPPORT (0x1U) | |||||
#define RT_CAPABILITY_NOT_SUPPORT (0x0U) | |||||
typedef struct tagRTDeviceInfo { | typedef struct tagRTDeviceInfo { | ||||
uint8_t env_type; // 0: FPGA 1: EMU 2: ESL | uint8_t env_type; // 0: FPGA 1: EMU 2: ESL | ||||
@@ -45,27 +45,28 @@ typedef struct tagRTDeviceInfo { | |||||
typedef enum tagRtRunMode { | typedef enum tagRtRunMode { | ||||
RT_RUN_MODE_OFFLINE = 0, | RT_RUN_MODE_OFFLINE = 0, | ||||
RT_RUN_MODE_ONLINE = 1, | |||||
RT_RUN_MODE_AICPU_SCHED = 2, | |||||
RT_RUN_MODE_ONLINE, | |||||
RT_RUN_MODE_AICPU_SCHED, | |||||
RT_RUN_MODE_RESERVED | RT_RUN_MODE_RESERVED | ||||
} rtRunMode; | } rtRunMode; | ||||
typedef enum tagRtAicpuDeployType { | typedef enum tagRtAicpuDeployType { | ||||
AICPU_DEPLOY_CROSS_OS = 0x0, | AICPU_DEPLOY_CROSS_OS = 0x0, | ||||
AICPU_DEPLOY_CROSS_PROCESS = 0x1, | |||||
AICPU_DEPLOY_CROSS_THREAD = 0x2, | |||||
AICPU_DEPLOY_CROSS_PROCESS, | |||||
AICPU_DEPLOY_CROSS_THREAD, | |||||
AICPU_DEPLOY_RESERVED | AICPU_DEPLOY_RESERVED | ||||
} rtAicpuDeployType_t; | } rtAicpuDeployType_t; | ||||
typedef enum tagRtFeatureType { | typedef enum tagRtFeatureType { | ||||
FEATURE_TYPE_MEMCPY = 0, | FEATURE_TYPE_MEMCPY = 0, | ||||
FEATURE_TYPE_MEMORY = 1, | |||||
FEATURE_TYPE_MEMORY, | |||||
FEATURE_TYPE_RSV | FEATURE_TYPE_RSV | ||||
} rtFeatureType_t; | } rtFeatureType_t; | ||||
typedef enum tagRtDeviceFeatureType { | typedef enum tagRtDeviceFeatureType { | ||||
FEATURE_TYPE_SCHE, | FEATURE_TYPE_SCHE, | ||||
FEATURE_TYPE_BLOCKING_OPERATOR, | FEATURE_TYPE_BLOCKING_OPERATOR, | ||||
FEATURE_TYPE_FFTS_MODE, | |||||
FEATURE_TYPE_END, | FEATURE_TYPE_END, | ||||
} rtDeviceFeatureType_t; | } rtDeviceFeatureType_t; | ||||
@@ -90,6 +91,15 @@ typedef enum tagRtDeviceModuleType { | |||||
RT_MODULE_TYPE_VECTOR_CORE, /**< VECTOR CORE info*/ | RT_MODULE_TYPE_VECTOR_CORE, /**< VECTOR CORE info*/ | ||||
} rtDeviceModuleType_t; | } rtDeviceModuleType_t; | ||||
// used for rtGetDevMsg callback function | |||||
typedef void (*rtGetMsgCallback)(const char *msg, uint32_t len); | |||||
typedef enum tagGetDevMsgType { | |||||
RT_GET_DEV_ERROR_MSG = 0, | |||||
RT_GET_DEV_RUNNING_STREAM_SNAPSHOT_MSG, | |||||
RT_GET_DEV_MSG_RESERVE | |||||
} rtGetDevMsgType_t; | |||||
/** | /** | ||||
* @ingroup dvrt_dev | * @ingroup dvrt_dev | ||||
* @brief get total device number. | * @brief get total device number. | ||||
@@ -408,8 +418,17 @@ RTS_API rtError_t rtSetDeviceWithoutTsd(int32_t device); | |||||
*/ | */ | ||||
RTS_API rtError_t rtDeviceResetWithoutTsd(int32_t device); | RTS_API rtError_t rtDeviceResetWithoutTsd(int32_t device); | ||||
/** | |||||
* @ingroup dvrt_dev | |||||
* @brief get device message | |||||
* @param [in] rtGetDevMsgType_t getMsgType:msg type | |||||
* @param [in] GetMsgCallback callback:acl callback function | |||||
* @return RT_ERROR_NONE for ok | |||||
* @return RT_ERROR_INVALID_VALUE for error input | |||||
*/ | |||||
RTS_API rtError_t rtGetDevMsg(rtGetDevMsgType_t getMsgType, rtGetMsgCallback callback); | |||||
#if defined(__cplusplus) | #if defined(__cplusplus) | ||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_DEVICE_H__ | |||||
#endif // CCE_RUNTIME_DEVICE_H |
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_DVFSPROFILE_H__ | |||||
#define __CCE_RUNTIME_DVFSPROFILE_H__ | |||||
#ifndef CCE_RUNTIME_DVFSPROFILE_H | |||||
#define CCE_RUNTIME_DVFSPROFILE_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -60,4 +60,4 @@ RTS_API rtError_t rtGetDvfsProfile(DvfsProfileMode *pmode); | |||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_PROFILE_H__ | |||||
#endif // CCE_RUNTIME_DVFSPROFILE_H |
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_EVENT_H__ | |||||
#define __CCE_RUNTIME_EVENT_H__ | |||||
#ifndef CCE_RUNTIME_EVENT_H | |||||
#define CCE_RUNTIME_EVENT_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -33,8 +33,8 @@ typedef enum rtEventWaitStatus { | |||||
* @ingroup event_flags | * @ingroup event_flags | ||||
* @brief event op bit flags | * @brief event op bit flags | ||||
*/ | */ | ||||
#define RT_EVENT_DEFAULT (0x0E) | |||||
#define RT_EVENT_WITH_FLAG (0x0B) | |||||
#define RT_EVENT_DEFAULT (0x0EU) | |||||
#define RT_EVENT_WITH_FLAG (0x0BU) | |||||
#define RT_EVENT_DDSYNC_NS 0x01U | #define RT_EVENT_DDSYNC_NS 0x01U | ||||
#define RT_EVENT_STREAM_MARK 0x02U | #define RT_EVENT_STREAM_MARK 0x02U | ||||
@@ -200,14 +200,14 @@ RTS_API rtError_t rtNotifyWait(rtNotify_t notify, rtStream_t stream); | |||||
/** | /** | ||||
* @ingroup dvrt_event | * @ingroup dvrt_event | ||||
* @brief Wait for a notify with time out | * @brief Wait for a notify with time out | ||||
* @param [in] notify_ notify to be wait | |||||
* @param [in] stream_ input stream | |||||
* @param [in] notify notify to be wait | |||||
* @param [in] stream input stream | |||||
* @param [in] timeOut input timeOut | * @param [in] timeOut input timeOut | ||||
* @return RT_ERROR_NONE for ok | * @return RT_ERROR_NONE for ok | ||||
* @return RT_ERROR_INVALID_VALUE for error input | * @return RT_ERROR_INVALID_VALUE for error input | ||||
* @return RT_ERROR_STREAM_CONTEXT for stream is not in current ctx | * @return RT_ERROR_STREAM_CONTEXT for stream is not in current ctx | ||||
*/ | */ | ||||
RTS_API rtError_t rtNotifyWaitWithTimeOut(rtNotify_t notify_, rtStream_t stream_, uint32_t timeOut); | |||||
RTS_API rtError_t rtNotifyWaitWithTimeOut(rtNotify_t notify, rtStream_t stream, uint32_t timeOut); | |||||
/** | /** | ||||
* @ingroup dvrt_event | * @ingroup dvrt_event | ||||
@@ -270,10 +270,10 @@ RTS_API rtError_t rtNotifyGetAddrOffset(rtNotify_t notify, uint64_t *devAddrOffs | |||||
* @return RT_ERROR_INVALID_VALUE for error input | * @return RT_ERROR_INVALID_VALUE for error input | ||||
* @return RT_ERROR_DRV_ERR for driver error | * @return RT_ERROR_DRV_ERR for driver error | ||||
*/ | */ | ||||
RTS_API rtError_t rtSetIpcNotifyPid(const char *name, int32_t pid[], int num); | |||||
RTS_API rtError_t rtSetIpcNotifyPid(const char *name, int32_t pid[], int32_t num); | |||||
#if defined(__cplusplus) | #if defined(__cplusplus) | ||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_EVENT_H__ | |||||
#endif // CCE_RUNTIME_EVENT_H |
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_KERNEL_H__ | |||||
#define __CCE_RUNTIME_KERNEL_H__ | |||||
#ifndef CCE_RUNTIME_KERNEL_H | |||||
#define CCE_RUNTIME_KERNEL_H | |||||
#include "base.h" | #include "base.h" | ||||
#include "stream.h" | #include "stream.h" | ||||
@@ -131,7 +131,10 @@ typedef struct tagRtArgsWithTiling { | |||||
uint32_t argsSizeWithoutTiling; // input + output + tiling addr size | uint32_t argsSizeWithoutTiling; // input + output + tiling addr size | ||||
uint16_t tilingAddrOffset; // tiling addr offset | uint16_t tilingAddrOffset; // tiling addr offset | ||||
uint16_t tilingDataOffset; // tiling data offset | uint16_t tilingDataOffset; // tiling data offset | ||||
uint16_t reserved[2]; | |||||
uint16_t hostInputAddrOffset; // index of host_memory input in inputs_addrs list | |||||
uint16_t hostInputDataOffset; // host_mem input data offset | |||||
bool hasHostMemInput; // has host_memory input data in args or not: ture or false | |||||
uint8_t reserved[7]; | |||||
} rtArgsWithTiling_t; | } rtArgsWithTiling_t; | ||||
/** | /** | ||||
@@ -141,7 +144,7 @@ typedef struct tagRtArgsWithTiling { | |||||
typedef enum tagRtDumpKind { | typedef enum tagRtDumpKind { | ||||
RT_DATA_DUMP_KIND_INVALID = -1, | RT_DATA_DUMP_KIND_INVALID = -1, | ||||
RT_DATA_DUMP_KIND_DUMP = 0, | RT_DATA_DUMP_KIND_DUMP = 0, | ||||
RT_DATA_DUMP_KIND_RESERVED | |||||
RT_DATA_DUMP_KIND_RESERVED = 1, | |||||
} rtDumpKind_t; | } rtDumpKind_t; | ||||
/** | /** | ||||
@@ -160,72 +163,72 @@ typedef void (*rtCallback_t)(void *fnData); | |||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief magic number of plain binary for aicore | * @brief magic number of plain binary for aicore | ||||
*/ | */ | ||||
#define RT_DEV_BINARY_MAGIC_PLAIN 0xabceed50 | |||||
#define RT_DEV_BINARY_MAGIC_PLAIN 0xabceed50U | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief magic number of plain binary for aicpu | * @brief magic number of plain binary for aicpu | ||||
*/ | */ | ||||
#define RT_DEV_BINARY_MAGIC_PLAIN_AICPU 0xabceed51 | |||||
#define RT_DEV_BINARY_MAGIC_PLAIN_AICPU 0xabceed51U | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief magic number of plain binary for aivector | * @brief magic number of plain binary for aivector | ||||
*/ | */ | ||||
#define RT_DEV_BINARY_MAGIC_PLAIN_AIVEC 0xabceed52 | |||||
#define RT_DEV_BINARY_MAGIC_PLAIN_AIVEC 0xabceed52U | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief magic number of elf binary for aicore | * @brief magic number of elf binary for aicore | ||||
*/ | */ | ||||
#define RT_DEV_BINARY_MAGIC_ELF 0x43554245 | |||||
#define RT_DEV_BINARY_MAGIC_ELF 0x43554245U | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief magic number of elf binary for aicpu | * @brief magic number of elf binary for aicpu | ||||
*/ | */ | ||||
#define RT_DEV_BINARY_MAGIC_ELF_AICPU 0x41415243 | |||||
#define RT_DEV_BINARY_MAGIC_ELF_AICPU 0x41415243U | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief magic number of elf binary for aivector | * @brief magic number of elf binary for aivector | ||||
*/ | */ | ||||
#define RT_DEV_BINARY_MAGIC_ELF_AIVEC 0x41415246 | |||||
#define RT_DEV_BINARY_MAGIC_ELF_AIVEC 0x41415246U | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief magic number of elf binary for aicube | * @brief magic number of elf binary for aicube | ||||
*/ | */ | ||||
#define RT_DEV_BINARY_MAGIC_ELF_AICUBE 0x41494343 | |||||
#define RT_DEV_BINARY_MAGIC_ELF_AICUBE 0x41494343U | |||||
/** | /** | ||||
* @ingroup rt_kernel_flags | * @ingroup rt_kernel_flags | ||||
* @brief kernel op bit flags | * @brief kernel op bit flags | ||||
*/ | */ | ||||
#define RT_KERNEL_DEFAULT (0x00) | |||||
#define RT_KERNEL_CONVERT (0x01) | |||||
#define RT_KERNEL_DUMPFLAG (0x02) | |||||
#define RT_FUSION_KERNEL_DUMPFLAG (0x04) | |||||
#define RT_KERNEL_CUSTOM_AICPU (0x08) | |||||
#define RT_KERNEL_DEFAULT (0x00U) | |||||
#define RT_KERNEL_CONVERT (0x01U) | |||||
#define RT_KERNEL_DUMPFLAG (0x02U) | |||||
#define RT_FUSION_KERNEL_DUMPFLAG (0x04U) | |||||
#define RT_KERNEL_CUSTOM_AICPU (0x08U) | |||||
// STARS topic scheduler sqe : topic_type | // STARS topic scheduler sqe : topic_type | ||||
#define RT_KERNEL_DEVICE_FIRST (0x10) | |||||
#define RT_KERNEL_HOST_ONLY (0x20) | |||||
#define RT_KERNEL_HOST_FIRST (0x40) | |||||
#define RT_KERNEL_DEVICE_FIRST (0x10U) | |||||
#define RT_KERNEL_HOST_ONLY (0x20U) | |||||
#define RT_KERNEL_HOST_FIRST (0x40U) | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief kernel mode | * @brief kernel mode | ||||
**/ | **/ | ||||
#define RT_DEFAULT_KERNEL_MODE (0x00) | |||||
#define RT_NORMAL_KERNEL_MODE (0x01) | |||||
#define RT_ALL_KERNEL_MODE (0x02) | |||||
#define RT_DEFAULT_KERNEL_MODE (0x00U) | |||||
#define RT_NORMAL_KERNEL_MODE (0x01U) | |||||
#define RT_ALL_KERNEL_MODE (0x02U) | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
* @brief kernel L1 Fusion Dump bit flags | * @brief kernel L1 Fusion Dump bit flags | ||||
*/ | */ | ||||
#define RT_DDR_ADDR (0x0) | |||||
#define RT_DDR_ADDR (0x0U) | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
@@ -672,7 +675,7 @@ RTS_API rtError_t rtStopMDCProfiler(void *addr); | |||||
* @return RT_ERROR_INVALID_VALUE for error input | * @return RT_ERROR_INVALID_VALUE for error input | ||||
*/ | */ | ||||
RTS_API rtError_t rtKernelLaunchWithTiling(const void *stubFunc, uint32_t blockDim, | RTS_API rtError_t rtKernelLaunchWithTiling(const void *stubFunc, uint32_t blockDim, | ||||
rtArgsWithTiling_t *argsInfo, rtSmDesc_t *smDesc, rtStream_t stream_); | |||||
rtArgsWithTiling_t *argsInfo, rtSmDesc_t *smDesc, rtStream_t stream); | |||||
/** | /** | ||||
* @ingroup rt_kernel | * @ingroup rt_kernel | ||||
@@ -688,11 +691,11 @@ RTS_API rtError_t rtKernelLaunchWithTiling(const void *stubFunc, uint32_t blockD | |||||
* @return RT_ERROR_INVALID_VALUE for error input | * @return RT_ERROR_INVALID_VALUE for error input | ||||
*/ | */ | ||||
RTS_API rtError_t rtKernelLaunchWithHandleAndTiling(void *handle, const void *devFunc, uint32_t blockDim, | RTS_API rtError_t rtKernelLaunchWithHandleAndTiling(void *handle, const void *devFunc, uint32_t blockDim, | ||||
rtArgsWithTiling_t *argsInfo, rtSmDesc_t *smDesc, rtStream_t stream_, const void* kernelInfo); | |||||
rtArgsWithTiling_t *argsInfo, rtSmDesc_t *smDesc, rtStream_t stream, const void* kernelInfo); | |||||
#if defined(__cplusplus) | #if defined(__cplusplus) | ||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_KERNEL_H__ | |||||
#endif // CCE_RUNTIME_KERNEL_H | |||||
@@ -14,12 +14,10 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_MEM_H__ | |||||
#define __CCE_RUNTIME_MEM_H__ | |||||
#ifndef CCE_RUNTIME_MEM_H | |||||
#define CCE_RUNTIME_MEM_H | |||||
/*lint -e7*/ | |||||
#include <stddef.h> | #include <stddef.h> | ||||
/*lint +e7*/ | |||||
#include "base.h" | #include "base.h" | ||||
#include "config.h" | #include "config.h" | ||||
#include "stream.h" | #include "stream.h" | ||||
@@ -32,43 +30,43 @@ extern "C" { | |||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
* @brief memory type | * @brief memory type | ||||
*/ | */ | ||||
#define RT_MEMORY_DEFAULT ((uint32_t)0x0) // default memory on device | |||||
#define RT_MEMORY_HBM ((uint32_t)0x2) // HBM memory on device | |||||
#define RT_MEMORY_RDMA_HBM ((uint32_t)0x3) // RDMA-HBM memory on device | |||||
#define RT_MEMORY_DDR ((uint32_t)0x4) // DDR memory on device | |||||
#define RT_MEMORY_SPM ((uint32_t)0x8) // shared physical memory on device | |||||
#define RT_MEMORY_P2P_HBM ((uint32_t)0x10) // HBM memory on other 4P device | |||||
#define RT_MEMORY_P2P_DDR ((uint32_t)0x11) // DDR memory on other device | |||||
#define RT_MEMORY_DDR_NC ((uint32_t)0x20) // DDR memory of non-cache | |||||
#define RT_MEMORY_TS_4G ((uint32_t)0x40) | |||||
#define RT_MEMORY_TS ((uint32_t)0x80) | |||||
#define RT_MEMORY_RESERVED ((uint32_t)0x100) | |||||
#define RT_MEMORY_DEFAULT (0x0U) // default memory on device | |||||
#define RT_MEMORY_HBM (0x2U) // HBM memory on device | |||||
#define RT_MEMORY_RDMA_HBM (0x3U) // RDMA-HBM memory on device | |||||
#define RT_MEMORY_DDR (0x4U) // DDR memory on device | |||||
#define RT_MEMORY_SPM (0x8U) // shared physical memory on device | |||||
#define RT_MEMORY_P2P_HBM (0x10U) // HBM memory on other 4P device | |||||
#define RT_MEMORY_P2P_DDR (0x11U) // DDR memory on other device | |||||
#define RT_MEMORY_DDR_NC (0x20U) // DDR memory of non-cache | |||||
#define RT_MEMORY_TS_4G (0x40U) | |||||
#define RT_MEMORY_TS (0x80U) | |||||
#define RT_MEMORY_RESERVED (0x100U) | |||||
#define RT_MEMORY_L1 ((uint32_t)0x1<<16) | |||||
#define RT_MEMORY_L2 ((uint32_t)0x1<<17) | |||||
#define RT_MEMORY_L1 (0x1U << 16U) | |||||
#define RT_MEMORY_L2 (0x1U << 17U) | |||||
/** | /** | ||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
* @brief memory info type | * @brief memory info type | ||||
*/ | */ | ||||
#define RT_MEM_INFO_TYPE_DDR_SIZE ((uint32_t)0x1) | |||||
#define RT_MEM_INFO_TYPE_HBM_SIZE ((uint32_t)0x2) | |||||
#define RT_MEM_INFO_TYPE_DDR_P2P_SIZE ((uint32_t)0x3) | |||||
#define RT_MEM_INFO_TYPE_HBM_P2P_SIZE ((uint32_t)0x4) | |||||
#define RT_MEM_INFO_TYPE_DDR_SIZE (0x1U) | |||||
#define RT_MEM_INFO_TYPE_HBM_SIZE (0x2U) | |||||
#define RT_MEM_INFO_TYPE_DDR_P2P_SIZE (0x3U) | |||||
#define RT_MEM_INFO_TYPE_HBM_P2P_SIZE (0x4U) | |||||
/** | /** | ||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
* @brief memory Policy | * @brief memory Policy | ||||
*/ | */ | ||||
#define RT_MEMORY_POLICY_NONE ((uint32_t)0x0) // Malloc mem prior hage page, then default page | |||||
#define RT_MEMORY_POLICY_HUGE_PAGE_FIRST ((uint32_t)0x1 << 10) // Malloc mem prior hage page, then default page | |||||
#define RT_MEMORY_POLICY_HUGE_PAGE_ONLY ((uint32_t)0x1 << 11) // Malloc mem only use hage page | |||||
#define RT_MEMORY_POLICY_DEFAULT_PAGE_ONLY ((uint32_t)0x1 << 12) // Malloc mem only use default page | |||||
#define RT_MEMORY_POLICY_HUGE_PAGE_FIRST_P2P ((uint32_t)0x1 << 13) // Malloc mem prior hage page, then default page, use for p2p | |||||
#define RT_MEMORY_POLICY_HUGE_PAGE_ONLY_P2P ((uint32_t)0x1 << 14) // Malloc mem only use hage page, use for p2p | |||||
#define RT_MEMORY_POLICY_DEFAULT_PAGE_ONLY_P2P ((uint32_t)0x1 << 15) // Malloc mem only use default page, use for p2p | |||||
#define RT_MEMORY_POLICY_NONE (0x0U) // Malloc mem prior huge page, then default page | |||||
#define RT_MEMORY_POLICY_HUGE_PAGE_FIRST (0x1U << 10U) // Malloc mem prior huge page, then default page | |||||
#define RT_MEMORY_POLICY_HUGE_PAGE_ONLY (0x1U << 11U) // Malloc mem only use huge page | |||||
#define RT_MEMORY_POLICY_DEFAULT_PAGE_ONLY (0x1U << 12U) // Malloc mem only use default page | |||||
#define RT_MEMORY_POLICY_HUGE_PAGE_FIRST_P2P (0x1U << 13U) // Malloc mem prior huge page, then default page, for p2p | |||||
#define RT_MEMORY_POLICY_HUGE_PAGE_ONLY_P2P (0x1U << 14U) // Malloc mem only use huge page, use for p2p | |||||
#define RT_MEMORY_POLICY_DEFAULT_PAGE_ONLY_P2P (0x1U << 15U) // Malloc mem only use default page, use for p2p | |||||
#define MEM_ALLOC_TYPE_BIT ((uint32_t)0x3FF) // mem type bit in <0, 9> | |||||
#define MEM_ALLOC_TYPE_BIT (0x3FFU) // mem type bit in <0, 9> | |||||
/** | /** | ||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
@@ -80,10 +78,10 @@ typedef uint32_t rtMemType_t; | |||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
* @brief memory advise type | * @brief memory advise type | ||||
*/ | */ | ||||
#define RT_MEMORY_ADVISE_EXE (0x02) | |||||
#define RT_MEMORY_ADVISE_THP (0x04) | |||||
#define RT_MEMORY_ADVISE_PLE (0x08) | |||||
#define RT_MEMORY_ADVISE_PIN (0x16) | |||||
#define RT_MEMORY_ADVISE_EXE (0x02U) | |||||
#define RT_MEMORY_ADVISE_THP (0x04U) | |||||
#define RT_MEMORY_ADVISE_PLE (0x08U) | |||||
#define RT_MEMORY_ADVISE_PIN (0x16U) | |||||
/** | /** | ||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
@@ -119,7 +117,7 @@ typedef enum tagRtRecudeKind { | |||||
RT_MEMCPY_SDMA_AUTOMATIC_MAX = 11, | RT_MEMCPY_SDMA_AUTOMATIC_MAX = 11, | ||||
RT_MEMCPY_SDMA_AUTOMATIC_MIN = 12, | RT_MEMCPY_SDMA_AUTOMATIC_MIN = 12, | ||||
RT_MEMCPY_SDMA_AUTOMATIC_EQUAL = 13, | RT_MEMCPY_SDMA_AUTOMATIC_EQUAL = 13, | ||||
RT_RECUDE_KIND_END | |||||
RT_RECUDE_KIND_END = 14, | |||||
} rtRecudeKind_t; | } rtRecudeKind_t; | ||||
typedef enum tagRtDataType { | typedef enum tagRtDataType { | ||||
@@ -134,7 +132,7 @@ typedef enum tagRtDataType { | |||||
RT_DATA_TYPE_UINT8 = 8, // uint8 | RT_DATA_TYPE_UINT8 = 8, // uint8 | ||||
RT_DATA_TYPE_UINT16= 9, // uint16 | RT_DATA_TYPE_UINT16= 9, // uint16 | ||||
RT_DATA_TYPE_UINT32= 10,// uint32 | RT_DATA_TYPE_UINT32= 10,// uint32 | ||||
RT_DATA_TYPE_END | |||||
RT_DATA_TYPE_END = 11, | |||||
} rtDataType_t; | } rtDataType_t; | ||||
/** | /** | ||||
@@ -197,7 +195,7 @@ typedef struct rtMallocHostSharedMemoryIn { | |||||
} rtMallocHostSharedMemoryIn; | } rtMallocHostSharedMemoryIn; | ||||
typedef struct rtMallocHostSharedMemoryOut { | typedef struct rtMallocHostSharedMemoryOut { | ||||
int fd; | |||||
int32_t fd; | |||||
void *ptr; | void *ptr; | ||||
void *devPtr; | void *devPtr; | ||||
} rtMallocHostSharedMemoryOut; | } rtMallocHostSharedMemoryOut; | ||||
@@ -205,7 +203,7 @@ typedef struct rtMallocHostSharedMemoryOut { | |||||
typedef struct rtFreeHostSharedMemoryIn { | typedef struct rtFreeHostSharedMemoryIn { | ||||
const char *name; | const char *name; | ||||
const uint64_t size; | const uint64_t size; | ||||
int fd; | |||||
int32_t fd; | |||||
void *ptr; | void *ptr; | ||||
void *devPtr; | void *devPtr; | ||||
} rtFreeHostSharedMemoryIn; | } rtFreeHostSharedMemoryIn; | ||||
@@ -384,6 +382,39 @@ RTS_API rtError_t rtReduceAsync(void *dst, uint64_t destMax, const void *src, ui | |||||
/** | /** | ||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
* @brief synchronized memcpy2D | |||||
* @param [in] dst destination address pointer | |||||
* @param [in] dstPitch pitch of destination memory | |||||
* @param [in] src source address pointer | |||||
* @param [in] srcPitch pitch of source memory | |||||
* @param [in] width width of matrix transfer | |||||
* @param [in] height height of matrix transfer | |||||
* @param [in] kind memcpy type | |||||
* @return RT_ERROR_NONE for ok | |||||
* @return RT_ERROR_INVALID_VALUE for error input | |||||
*/ | |||||
RTS_API rtError_t rtMemcpy2d(void *dst, uint64_t dstPitch, const void *src, uint64_t srcPitch, uint64_t width, | |||||
uint64_t height, rtMemcpyKind_t kind); | |||||
/** | |||||
* @ingroup dvrt_mem | |||||
* @brief asynchronized memcpy2D | |||||
* @param [in] dst destination address pointer | |||||
* @param [in] dstPitch length of destination address memory | |||||
* @param [in] src source address pointer | |||||
* @param [in] srcPitch length of destination address memory | |||||
* @param [in] width width of matrix transfer | |||||
* @param [in] height height of matrix transfer | |||||
* @param [in] kind memcpy type | |||||
* @param [in] stream asynchronized task stream | |||||
* @return RT_ERROR_NONE for ok | |||||
* @return RT_ERROR_INVALID_VALUE for error input | |||||
*/ | |||||
RTS_API rtError_t rtMemcpy2dAsync(void *dst, uint64_t dstPitch, const void *src, uint64_t srcPitch, uint64_t width, | |||||
uint64_t height, rtMemcpyKind_t kind, rtStream_t stream); | |||||
/** | |||||
* @ingroup dvrt_mem | |||||
* @brief query memory size | * @brief query memory size | ||||
* @param [in] aiCoreMemorySize | * @param [in] aiCoreMemorySize | ||||
* @return RT_ERROR_NONE for ok, errno for failed | * @return RT_ERROR_NONE for ok, errno for failed | ||||
@@ -429,22 +460,22 @@ RTS_API rtError_t rtMemsetAsync(void *ptr, uint64_t destMax, uint32_t value, uin | |||||
/** | /** | ||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
* @brief get current device memory total and free | * @brief get current device memory total and free | ||||
* @param [out] free | |||||
* @param [out] total | |||||
* @param [out] freeSize | |||||
* @param [out] totalSize | |||||
* @return RT_ERROR_NONE for ok, errno for failed | * @return RT_ERROR_NONE for ok, errno for failed | ||||
* @return RT_ERROR_INVALID_VALUE for error input | * @return RT_ERROR_INVALID_VALUE for error input | ||||
*/ | */ | ||||
RTS_API rtError_t rtMemGetInfo(size_t *free, size_t *total); | |||||
RTS_API rtError_t rtMemGetInfo(size_t *freeSize, size_t *totalSize); | |||||
/** | /** | ||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
* @brief get current device memory total and free | * @brief get current device memory total and free | ||||
* @param [in] memInfoType | * @param [in] memInfoType | ||||
* @param [out] free | |||||
* @param [out] total | |||||
* @param [out] freeSize | |||||
* @param [out] totalSize | |||||
* @return RT_ERROR_NONE for ok, errno for failed | * @return RT_ERROR_NONE for ok, errno for failed | ||||
*/ | */ | ||||
RTS_API rtError_t rtMemGetInfoEx(rtMemInfoType_t memInfoType, size_t *free, size_t *total); | |||||
RTS_API rtError_t rtMemGetInfoEx(rtMemInfoType_t memInfoType, size_t *freeSize, size_t *totalSize); | |||||
/** | /** | ||||
* @ingroup dvrt_mem | * @ingroup dvrt_mem | ||||
@@ -551,4 +582,4 @@ RTS_API rtError_t rtRDMADBSend(uint32_t dbIndex, uint64_t dbInfo, rtStream_t str | |||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_MEM_H__ | |||||
#endif // CCE_RUNTIME_MEM_H |
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_RT_H__ | |||||
#define __CCE_RUNTIME_RT_H__ | |||||
#ifndef CCE_RUNTIME_RT_H | |||||
#define CCE_RUNTIME_RT_H | |||||
#include "base.h" | #include "base.h" | ||||
#include "config.h" | #include "config.h" | ||||
@@ -32,4 +32,4 @@ | |||||
#include "rt_ffts_plus.h" | #include "rt_ffts_plus.h" | ||||
#include "rt_dfx.h" | #include "rt_dfx.h" | ||||
#endif // __CCE_RUNTIME_RT_H__ | |||||
#endif // CCE_RUNTIME_RT_H |
@@ -3,8 +3,8 @@ | |||||
* Description: ffts interface | * Description: ffts interface | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_FFTS_H | |||||
#define __CCE_RUNTIME_FFTS_H | |||||
#ifndef CCE_RUNTIME_RT_FFTS_H | |||||
#define CCE_RUNTIME_RT_FFTS_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -33,7 +33,7 @@ typedef enum tagFftsSubTaskType { | |||||
RT_FFTS_SUB_TASK_TYPE_MIX_AIC = 6, | RT_FFTS_SUB_TASK_TYPE_MIX_AIC = 6, | ||||
RT_FFTS_SUB_TASK_TYPE_MIX_AIV = 7, | RT_FFTS_SUB_TASK_TYPE_MIX_AIV = 7, | ||||
RT_FFTS_SUB_TASK_TYPE_SDMA = 8, | RT_FFTS_SUB_TASK_TYPE_SDMA = 8, | ||||
RT_FFTS_SUB_TASK_TYPE_RESERVED, | |||||
RT_FFTS_SUB_TASK_TYPE_RESERVED = 9, | |||||
} rtFftsSubTaskType_t; | } rtFftsSubTaskType_t; | ||||
typedef struct tagManualThreadDmuInfo { | typedef struct tagManualThreadDmuInfo { | ||||
@@ -178,7 +178,9 @@ typedef struct tagFftsTaskInfo { | |||||
RTS_API rtError_t rtFftsTaskLaunch(rtFftsTaskInfo_t *fftsTaskInfo, rtStream_t stream); | RTS_API rtError_t rtFftsTaskLaunch(rtFftsTaskInfo_t *fftsTaskInfo, rtStream_t stream); | ||||
RTS_API rtError_t rtFftsTaskLaunchWithFlag(rtFftsTaskInfo_t *fftsTaskInfo, rtStream_t stream, uint32_t flag); | |||||
#if defined(__cplusplus) | #if defined(__cplusplus) | ||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_FFTS_H | |||||
#endif // CCE_RUNTIME_RT_FFTS_H |
@@ -3,8 +3,8 @@ | |||||
* Description: ffts plus interface | * Description: ffts plus interface | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_FFTS_PLUS_H | |||||
#define __CCE_RUNTIME_FFTS_PLUS_H | |||||
#ifndef CCE_RUNTIME_RT_FFTS_PLUS_H | |||||
#define CCE_RUNTIME_RT_FFTS_PLUS_H | |||||
#include "base.h" | #include "base.h" | ||||
#include "rt_ffts_plus_define.h" | #include "rt_ffts_plus_define.h" | ||||
@@ -26,9 +26,13 @@ typedef struct tagFftsPlusTaskInfo { | |||||
#pragma pack(pop) | #pragma pack(pop) | ||||
RTS_API rtError_t rtGetAddrAndPrefCntWithHandle(void *handle, const void *devFunc, void **addr, uint32_t *prefetchCnt); | RTS_API rtError_t rtGetAddrAndPrefCntWithHandle(void *handle, const void *devFunc, void **addr, uint32_t *prefetchCnt); | ||||
RTS_API rtError_t rtFftsPlusTaskLaunch(rtFftsPlusTaskInfo_t *fftsPlusTaskInfo, rtStream_t stream); | RTS_API rtError_t rtFftsPlusTaskLaunch(rtFftsPlusTaskInfo_t *fftsPlusTaskInfo, rtStream_t stream); | ||||
RTS_API rtError_t rtFftsPlusTaskLaunchWithFlag(rtFftsPlusTaskInfo_t *fftsPlusTaskInfo, rtStream_t stream, | |||||
uint32_t flag); | |||||
#if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE) | #if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE) | ||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_FFTS_H | |||||
#endif // CCE_RUNTIME_RT_FFTS_PLUS_H |
@@ -3,8 +3,8 @@ | |||||
* Description: the definition of ffts plus | * Description: the definition of ffts plus | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_FFTS_PLUS_DEFINE_H | |||||
#define __CCE_RUNTIME_FFTS_PLUS_DEFINE_H | |||||
#ifndef CCE_RUNTIME_RT_FFTS_PLUS_DEFINE_H | |||||
#define CCE_RUNTIME_RT_FFTS_PLUS_DEFINE_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -30,7 +30,7 @@ typedef enum tagFftsPlusHwType { | |||||
RT_HW_CTX_TYPE_WRITEBACK_DATA = 11, | RT_HW_CTX_TYPE_WRITEBACK_DATA = 11, | ||||
RT_HW_CTX_TYPE_AICPU = 12, | RT_HW_CTX_TYPE_AICPU = 12, | ||||
RT_HW_CTX_TYPE_LOAD = 13, | RT_HW_CTX_TYPE_LOAD = 13, | ||||
RT_HW_CTX_TYPE_MAX, | |||||
RT_HW_CTX_TYPE_MAX = 14, | |||||
} rtFftsPlusHwType_t; | } rtFftsPlusHwType_t; | ||||
// hardware context type | // hardware context type | ||||
@@ -40,7 +40,7 @@ typedef enum tagFftsPlusSoftType { | |||||
RT_SOFT_CTX_TYPE_AT_START = 3, | RT_SOFT_CTX_TYPE_AT_START = 3, | ||||
RT_SOFT_CTX_TYPE_AT_END = 4, | RT_SOFT_CTX_TYPE_AT_END = 4, | ||||
RT_SOFT_CTX_TYPE_LABEL = 5, | RT_SOFT_CTX_TYPE_LABEL = 5, | ||||
RT_SOFT_CTX_TYPE_MAX, | |||||
RT_SOFT_CTX_TYPE_MAX = 6, | |||||
} rtFftsPlusSoftType_t; | } rtFftsPlusSoftType_t; | ||||
typedef enum tagFftsPlusContextType { | typedef enum tagFftsPlusContextType { | ||||
@@ -71,7 +71,7 @@ typedef enum tagFftsPlusCondType { | |||||
RT_COND_TYPE_GREATER_OR_EQUAL = 3, | RT_COND_TYPE_GREATER_OR_EQUAL = 3, | ||||
RT_COND_TYPE_LESS = 4, | RT_COND_TYPE_LESS = 4, | ||||
RT_COND_TYPE_LESS_OR_EQUAL = 5, | RT_COND_TYPE_LESS_OR_EQUAL = 5, | ||||
RT_COND_TYPE_MAX, | |||||
RT_COND_TYPE_MAX = 6, | |||||
} rtFftsPlusCondType_t; | } rtFftsPlusCondType_t; | ||||
// the definition of ffts plus context | // the definition of ffts plus context | ||||
@@ -505,7 +505,7 @@ typedef struct tagFftsPlusAtStartCtx { | |||||
uint16_t threadIdInit; | uint16_t threadIdInit; | ||||
uint16_t threadWindowSize; | uint16_t threadWindowSize; | ||||
// 80-127 | // 80-127 | ||||
uint16_t res9[12]; | |||||
uint32_t res9[12]; | |||||
} rtFftsPlusAtStartCtx_t; | } rtFftsPlusAtStartCtx_t; | ||||
// at end context | // at end context | ||||
@@ -712,4 +712,4 @@ typedef struct tagFftsPlusCondSwitchCtx { | |||||
#if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE) | #if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE) | ||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_FFTS_PLUS_DEFINE_H | |||||
#endif // CCE_RUNTIME_RT_FFTS_PLUS_DEFINE_H |
@@ -0,0 +1,416 @@ | |||||
/* | |||||
* Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved. | |||||
* Description: mbuf and queue interface | |||||
*/ | |||||
#ifndef CCE_RUNTIME_RT_MEM_QUEUE_H | |||||
#define CCE_RUNTIME_RT_MEM_QUEUE_H | |||||
#include "base.h" | |||||
#if defined(__cplusplus) | |||||
extern "C" { | |||||
#endif | |||||
#define RT_MQ_MAX_NAME_LEN 128 // same as driver's | |||||
#define RT_MQ_DEPTH_MIN 2U | |||||
#define RT_MQ_MODE_PUSH 1 | |||||
#define RT_MQ_MODE_PULL 2 | |||||
#define RT_MQ_MODE_DEFAULT RT_MQ_MODE_PUSH | |||||
typedef struct tagMemQueueAttr { | |||||
char name[RT_MQ_MAX_NAME_LEN]; | |||||
uint32_t depth; | |||||
uint32_t workMode; | |||||
uint32_t flowCtrlDropTime; | |||||
bool flowCtrlFlag; | |||||
bool overWriteFlag; | |||||
} rtMemQueueAttr_t; | |||||
typedef struct tagMemQueueShareAttr { | |||||
uint32_t manage : 1; | |||||
uint32_t read : 1; | |||||
uint32_t write : 1; | |||||
uint32_t rsv : 29; | |||||
} rtMemQueueShareAttr_t; | |||||
typedef struct tagMemQueueBuffInfo { | |||||
void *addr; | |||||
size_t len; | |||||
} rtMemQueueBuffInfo; | |||||
typedef struct tagMemQueueBuff { | |||||
void *contextAddr; | |||||
size_t contextLen; | |||||
rtMemQueueBuffInfo *buffInfo; | |||||
uint32_t buffCount; | |||||
} rtMemQueueBuff_t; | |||||
typedef enum tagMemQueueQueryCmd { | |||||
RT_MQ_QUERY_QUE_ATTR_OF_CUR_PROC = 0, // input is qid(4bytes), output is rtMemQueueShareAttr_t | |||||
RT_MQ_QUERY_QUES_OF_CUR_PROC = 1, | |||||
RT_MQ_QUERY_CMD_MAX = 2 | |||||
} rtMemQueueQueryCmd_t; | |||||
#define RT_MQ_EVENT_QS_MSG 27 // same as driver's | |||||
#define RT_MQ_SCHED_PRIORITY_LEVEL0 0 // same as driver's | |||||
#define RT_MQ_SCHED_PRIORITY_LEVEL1 1 | |||||
#define RT_MQ_SCHED_PRIORITY_LEVEL2 2 | |||||
#define RT_MQ_SCHED_PRIORITY_LEVEL3 3 | |||||
#define RT_MQ_SCHED_PRIORITY_LEVEL4 4 | |||||
#define RT_MQ_SCHED_PRIORITY_LEVEL5 5 | |||||
#define RT_MQ_SCHED_PRIORITY_LEVEL6 6 | |||||
#define RT_MQ_SCHED_PRIORITY_LEVEL7 7 | |||||
/* Events can be released between different systems. This parameter specifies the destination type of events | |||||
to be released. The destination type is defined based on the CPU type of the destination system. */ | |||||
#define RT_MQ_DST_ENGINE_ACPU_DEVICE 0 // device AICPU, same as driver's | |||||
#define RT_MQ_DST_ENGINE_ACPU_HOST 1 // Host AICPU | |||||
#define RT_MQ_DST_ENGINE_CCPU_DEVICE 2 // device CtrlCPU | |||||
#define RT_MQ_DST_ENGINE_CCPU_HOST 3 // Host CtrlCPU | |||||
#define RT_MQ_DST_ENGINE_DCPU_DEVICE 4 // device DataCPU | |||||
#define RT_MQ_DST_ENGINE_TS_CPU 5 // device TS CPU | |||||
#define RT_MQ_DST_ENGINE_DVPP_CPU 6 // device DVPP CPU | |||||
#define RT_MQ_SCHED_EVENT_QS_MSG 25 // same as driver's EVENT_QS_MSG | |||||
/* When the destination engine is AICPU, select a policy. | |||||
ONLY: The command is executed only on the local AICPU. | |||||
FIRST: The local AICPU is preferentially executed. If the local AICPU is busy, the remote AICPU can be used. */ | |||||
#define RT_SCHEDULE_POLICY_ONLY 0 // same as driver's schedule_policy | |||||
#define RT_SCHEDULE_POLICY_FIRST 1 // same as driver's schedule_policy | |||||
typedef struct tagEschedEventSummary { | |||||
int32_t pid; // dst PID | |||||
uint32_t grpId; | |||||
int32_t eventId; // only RT_MQ_SCHED_EVENT_QS_MSG is supported | |||||
uint32_t subeventId; | |||||
uint32_t msgLen; | |||||
char *msg; | |||||
uint32_t dstEngine; // dst system cpu type | |||||
int32_t policy; // RT_SCHEDULE_POLICY_ONLY or RT_SCHEDULE_POLICY_FIRST | |||||
} rtEschedEventSummary_t; | |||||
typedef struct tagEschedEventReply { | |||||
char *buf; | |||||
uint32_t bufLen; | |||||
uint32_t replyLen; // output, ack msg len, same with msgLen in halEschedAckEvent | |||||
} rtEschedEventReply_t; | |||||
#define RT_DEV_PROCESS_CP1 0 | |||||
#define RT_DEV_PROCESS_CP2 1 | |||||
#define RT_DEV_PROCESS_DEV_ONLY 2 | |||||
#define RT_DEV_PROCESS_QS 3 | |||||
#define RT_DEV_PROCESS_SIGN_LENGTH 49 | |||||
typedef struct tagBindHostpidInfo { | |||||
int32_t hostPid; | |||||
uint32_t vfid; | |||||
uint32_t chipId; | |||||
int32_t mode; // online:0, offline:1 | |||||
int32_t cpType; // type of custom-process, see RT_DEV_PROCESS_XXX | |||||
uint32_t len; // lenth of sign | |||||
char sign[RT_DEV_PROCESS_SIGN_LENGTH]; // sign of hostpid | |||||
} rtBindHostpidInfo_t; | |||||
#define RT_MEM_BUFF_MAX_CFG_NUM 64 | |||||
typedef struct { | |||||
uint32_t cfgId; // cfg id, start from 0 | |||||
uint32_t totalSize; // one zone total size | |||||
uint32_t blkSize; // blk size, 2^n (0, 2M] | |||||
uint32_t maxBufSize; // max size can alloc from zone | |||||
uint32_t pageType; // page type, small page / huge page | |||||
int32_t elasticEnable; // elastic enable | |||||
int32_t elasticRate; | |||||
int32_t elasticRateMax; | |||||
int32_t elasticHighLevel; | |||||
int32_t elasticLowLevel; | |||||
} rtMemZoneCfg_t; | |||||
typedef struct { | |||||
rtMemZoneCfg_t cfg[RT_MEM_BUFF_MAX_CFG_NUM]; | |||||
}rtMemBuffCfg_t; | |||||
typedef void *rtMbufPtr_t; | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief init queue schedule | |||||
* @param [in] device the logical device id | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueInitQS(int32_t device); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief create mbuf queue | |||||
* @param [in] device the logical device id | |||||
* @param [in] rtMemQueueAttr attribute of queue | |||||
* @param [out] qid queue id | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueCreate(int32_t device, const rtMemQueueAttr_t *queueAttr, uint32_t *qid); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief destroy mbuf queue | |||||
* @param [in] device the logical device id | |||||
* @param [in] qid queue id | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueDestroy(int32_t device, uint32_t qid); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief destroy mbuf queue init | |||||
* @param [in] device the logical device id | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueInit(int32_t device); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief enqueu mbuf | |||||
* @param [in] device the logical device id | |||||
* @param [in] qid queue id | |||||
* @param [in] mbuf enqueue mbuf | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueEnQueue(int32_t device, uint32_t qid, void *mbuf); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief enqueu mbuf | |||||
* @param [in] device the logical device id | |||||
* @param [in] qid queue id | |||||
* @param [out] mbuf dequeue mbuf | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueDeQueue(int32_t device, uint32_t qid, void **mbuf); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief enqueu peek | |||||
* @param [in] device the logical device id | |||||
* @param [in] qid queue id | |||||
* @param [out] bufLen length of mbuf in queue | |||||
* @param [in] timeout peek timeout (ms), -1: wait all the time until peeking success | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueuePeek(int32_t device, uint32_t qid, size_t *bufLen, int32_t timeout); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief enqueu buff | |||||
* @param [in] device the logical device id | |||||
* @param [in] qid queue id | |||||
* @param [in] inBuf enqueue buff | |||||
* @param [in] timeout enqueue timeout (ms), -1: wait all the time until enqueue success | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueEnQueueBuff(int32_t device, uint32_t qid, rtMemQueueBuff_t *inBuf, int32_t timeout); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief enqueu buff | |||||
* @param [in] device the logical device id | |||||
* @param [in] qid queue id | |||||
* @param [out] outBuf dequeue buff | |||||
* @param [in] timeout dequeue timeout (ms), -1: wait all the time until dequeue success | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueDeQueueBuff(int32_t device, uint32_t qid, rtMemQueueBuff_t *outBuf, int32_t timeout); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief query queue status | |||||
* @param [in] device: the logical device id | |||||
* @param [in] cmd: query cmd | |||||
* @param [in] inBuff: input buff | |||||
* @param [in] inLen: the length of input | |||||
* @param [in|out] outBuff: output buff | |||||
* @param [in|out] outLen: the length of output | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueQuery(int32_t device, rtMemQueueQueryCmd_t cmd, const void *inBuff, uint32_t inLen, | |||||
void *outBuff, uint32_t *outLen); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief grant queue | |||||
* @param [in] device: logic devid | |||||
* @param [in] qid: queue id | |||||
* @param [in] pid: pid | |||||
* @param [in] attr: queue share attr | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueGrant(int32_t device, uint32_t qid, int32_t pid, rtMemQueueShareAttr_t *attr); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief attach queue | |||||
* @param [in] device: logic devid | |||||
* @param [in] qid: queue id | |||||
* @param [in] timeOut: timeOut | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMemQueueAttach(int32_t device, uint32_t qid, int32_t timeOut); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief Commit the event to a specific process | |||||
* @param [in] device: logic devid | |||||
* @param [in] event: event summary info | |||||
* @param [out] ack: event reply info | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtEschedSubmitEventSync(int32_t device, rtEschedEventSummary_t *event, | |||||
rtEschedEventReply_t *ack); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief query device proccess id | |||||
* @param [in] info: see struct rtBindHostpidInfo_t | |||||
* @param [out] devPid: device proccess id | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtQueryDevPid(rtBindHostpidInfo_t *info, int32_t *devPid); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief device buff init | |||||
* @param [in] cfg, init cfg | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMbufInit(rtMemBuffCfg_t *cfg); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief alloc buff | |||||
* @param [out] buff: buff addr alloced | |||||
* @param [in] size: The amount of memory space requested | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMbufAlloc(rtMbufPtr_t *mbuf, uint64_t size); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief free buff | |||||
* @param [in] buff: buff addr to be freed | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMbufFree(rtMbufPtr_t mbuf); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief get Data addr of Mbuf | |||||
* @param [in] mbuf: Mbuf addr | |||||
* @param [out] buf: Mbuf data addr | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMbufGetBuffAddr(rtMbufPtr_t mbuf, void **buf); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief get total Buffer size of Mbuf | |||||
* @param [in] mbuf: Mbuf addr | |||||
* @param [out] totalSize: total buffer size of Mbuf | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMbufGetBuffSize(rtMbufPtr_t mbuf, uint64_t *totalSize); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief Get the address and length of its user_data from the specified Mbuf | |||||
* @param [in] mbuf: Mbuf addr | |||||
* @param [out] priv: address of its user_data | |||||
* @param [out] size: length of its user_data | |||||
* @return RT_ERROR_NONE for ok | |||||
*/ | |||||
RTS_API rtError_t rtMbufGetPrivInfo (rtMbufPtr_t mbuf, void **priv, uint64_t *size); | |||||
// mem group | |||||
typedef struct { | |||||
uint64_t maxMemSize; // max buf size in grp, in KB. = 0 means no limit | |||||
} rtMemGrpConfig_t; | |||||
typedef struct { | |||||
uint32_t admin : 1; // admin permission, can add other proc to grp | |||||
uint32_t read : 1; // read only permission | |||||
uint32_t write : 1; // read and write permission | |||||
uint32_t alloc : 1; // alloc permission (have read and write permission) | |||||
uint32_t rsv : 28; | |||||
} rtMemGrpShareAttr_t; | |||||
#define RT_MEM_GRP_QUERY_GROUPS_OF_PROCESS 1 // query process all grp | |||||
typedef struct { | |||||
int32_t pid; | |||||
} rtMemGrpQueryByProc_t; // cmd: GRP_QUERY_GROUPS_OF_PROCESS | |||||
typedef union { | |||||
rtMemGrpQueryByProc_t grpQueryByProc; // cmd: GRP_QUERY_GROUPS_OF_PROCESS | |||||
} rtMemGrpQueryInput_t; | |||||
#define RT_MEM_GRP_NAME_LEN 32 // it must be same as driver define BUFF_GRP_NAME_LEN | |||||
typedef struct { | |||||
char groupName[RT_MEM_GRP_NAME_LEN]; // group name | |||||
rtMemGrpShareAttr_t attr; // process in group attribute | |||||
} rtMemGrpOfProc_t; // cmd: GRP_QUERY_GROUPS_OF_PROCESS | |||||
typedef struct { | |||||
rtMemGrpOfProc_t *groupsOfProc; // cmd: GRP_QUERY_GROUPS_OF_PROCESS | |||||
size_t maxNum; // max number of result | |||||
size_t resultNum; // if the number of results exceeds 'maxNum', only 'maxNum' results are filled in buffer | |||||
} rtMemGrpQueryOutput_t; | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief create mem group | |||||
* @attention null | |||||
* @param [in] name, group name | |||||
* @param [in] cfg, group cfg | |||||
* @return 0 for success, others for fail | |||||
*/ | |||||
RTS_API rtError_t rtMemGrpCreate(const char *name, const rtMemGrpConfig_t *cfg); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief add process to group | |||||
* @param [in] name, group name | |||||
* @param [in] pid, process id | |||||
* @param [in] attr, process permission in group | |||||
* @return 0 for success, others for fail | |||||
*/ | |||||
RTS_API rtError_t rtMemGrpAddProc(const char *name, int32_t pid, const rtMemGrpShareAttr_t *attr); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief attach proccess to check permission in group | |||||
* @param [in] name, group name | |||||
* @param [in] timeout, time out ms | |||||
* @return 0 for success, others for fail | |||||
*/ | |||||
RTS_API rtError_t rtMemGrpAttach(const char *name, int32_t timeout); | |||||
/** | |||||
* @ingroup rt_mem_queue | |||||
* @brief buff group query | |||||
* @param [in] cmd, cmd type | |||||
* @param [in] input, query input | |||||
* @param [in|out] output, query output | |||||
* @return 0 for success, others for fail | |||||
*/ | |||||
RTS_API rtError_t rtMemGrpQuery(int32_t cmd, const rtMemGrpQueryInput_t *input, rtMemGrpQueryOutput_t *output); | |||||
#if defined(__cplusplus) | |||||
} | |||||
#endif | |||||
#endif // CCE_RUNTIME_RT_MEM_QUEUE_H |
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_MODEL_H__ | |||||
#define __CCE_RUNTIME_MODEL_H__ | |||||
#ifndef CCE_RUNTIME_RT_MODEL_H | |||||
#define CCE_RUNTIME_RT_MODEL_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -42,7 +42,7 @@ typedef enum tagModelTaskType { | |||||
RT_MODEL_TASK_NOTIFY_WAIT, | RT_MODEL_TASK_NOTIFY_WAIT, | ||||
RT_MODEL_TASK_REDUCE_ASYNC, | RT_MODEL_TASK_REDUCE_ASYNC, | ||||
RT_MODEL_TASK_RDMA_SEND, | RT_MODEL_TASK_RDMA_SEND, | ||||
RT_MODEL_TASK_EVENT_RESET = 18, | |||||
RT_MODEL_TASK_EVENT_RESET, | |||||
RT_MODEL_TASK_MODEL_END_GRAPH, | RT_MODEL_TASK_MODEL_END_GRAPH, | ||||
RT_MODEL_TASK_STREAM_SWITCH_N, | RT_MODEL_TASK_STREAM_SWITCH_N, | ||||
RT_MODEL_TASK_RDMA_DB_SEND, | RT_MODEL_TASK_RDMA_DB_SEND, | ||||
@@ -66,16 +66,16 @@ typedef enum tagModelQueueFlag { | |||||
RT_MODEL_OUTPUT_QUEUE = 1 | RT_MODEL_OUTPUT_QUEUE = 1 | ||||
} rtModelQueueFlag_t; | } rtModelQueueFlag_t; | ||||
#define EXECUTOR_NONE ((uint32_t)0x0) | |||||
#define EXECUTOR_TS ((uint32_t)0x01) | |||||
#define EXECUTOR_AICPU ((uint32_t)0x02) | |||||
#define EXECUTOR_NONE (0x0U) | |||||
#define EXECUTOR_TS (0x01U) | |||||
#define EXECUTOR_AICPU (0x02U) | |||||
/* | /* | ||||
* @ingroup rt_model | * @ingroup rt_model | ||||
* @brief debug flag for kernel exception dump | * @brief debug flag for kernel exception dump | ||||
*/ | */ | ||||
#define RT_DEBUG_FLAG_AICORE_OVERFLOW (0x1 << 0) | |||||
#define RT_DEBUG_FLAG_ATOMIC_ADD_OVERFLOW (0x1 << 1) | |||||
#define RT_DEBUG_FLAG_AICORE_OVERFLOW (0x1U << 0U) | |||||
#define RT_DEBUG_FLAG_ATOMIC_ADD_OVERFLOW (0x1U << 1U) | |||||
/** | /** | ||||
* @ingroup | * @ingroup | ||||
@@ -392,12 +392,12 @@ RTS_API rtError_t rtModelExecute(rtModel_t model, rtStream_t stream, uint32_t fl | |||||
* @ingroup rt_model | * @ingroup rt_model | ||||
* @brief get model the last persist task id | * @brief get model the last persist task id | ||||
* @param [in] model model to execute | * @param [in] model model to execute | ||||
* @param [out] taskid last task id of the model | |||||
* @param [out] streamid last steam id of the model | |||||
* @param [out] taskId last task id of the model | |||||
* @param [out] streamId last steam id of the model | |||||
* @return RT_ERROR_NONE for ok | * @return RT_ERROR_NONE for ok | ||||
* @return RT_ERROR_INVALID_VALUE for error input | * @return RT_ERROR_INVALID_VALUE for error input | ||||
*/ | */ | ||||
RTS_API rtError_t rtModelGetTaskId(rtModel_t model, uint32_t *taskid, uint32_t *streamid); | |||||
RTS_API rtError_t rtModelGetTaskId(rtModel_t model, uint32_t *taskId, uint32_t *streamId); | |||||
/** | /** | ||||
* @ingroup rt_model | * @ingroup rt_model | ||||
@@ -495,4 +495,4 @@ RTS_API rtError_t rtDebugUnRegister(rtModel_t model); | |||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_MODEL_H__ | |||||
#endif // CCE_RUNTIME_RT_MODEL_H |
@@ -1,10 +1,10 @@ | |||||
/* | /* | ||||
* Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved. | * Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved. | ||||
* Description: | |||||
* Description: the definition of stars | |||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_STARS_H | |||||
#define __CCE_RUNTIME_STARS_H | |||||
#ifndef CCE_RUNTIME_RT_STARS_H | |||||
#define CCE_RUNTIME_RT_STARS_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -84,4 +84,4 @@ RTS_API rtError_t rtCdqEnQueuePtrMode(const char *queName, uint32_t cdqeIndex, c | |||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_STARS_H | |||||
#endif // CCE_RUNTIME_RT_STARS_H |
@@ -3,8 +3,8 @@ | |||||
* Description: the definition of stars | * Description: the definition of stars | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_STARS_DEFINE__H | |||||
#define __CCE_RUNTIME_STARS_DEFINE__H | |||||
#ifndef CCE_RUNTIME_RT_STARS_DEFINE_H | |||||
#define CCE_RUNTIME_RT_STARS_DEFINE_H | |||||
#include "base.h" | #include "base.h" | ||||
@@ -88,4 +88,4 @@ typedef struct tagFftsPlusSqe { | |||||
#if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE) | #if defined(__cplusplus) && !defined(COMPILE_OMG_PACKAGE) | ||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_STARS_DEFINE__H | |||||
#endif // CCE_RUNTIME_RT_STARS_DEFINE_H |
@@ -14,8 +14,8 @@ | |||||
* limitations under the License. | * limitations under the License. | ||||
*/ | */ | ||||
#ifndef __CCE_RUNTIME_STREAM_H__ | |||||
#define __CCE_RUNTIME_STREAM_H__ | |||||
#ifndef CCE_RUNTIME_STREAM_H | |||||
#define CCE_RUNTIME_STREAM_H | |||||
#include "base.h" | #include "base.h" | ||||
#include "event.h" | #include "event.h" | ||||
@@ -28,27 +28,27 @@ extern "C" { | |||||
* @ingroup stream_flags | * @ingroup stream_flags | ||||
* @brief stream op bit flags | * @brief stream op bit flags | ||||
*/ | */ | ||||
#define RT_STREAM_DEFAULT (0x00) | |||||
#define RT_STREAM_PERSISTENT (0x01) | |||||
#define RT_STREAM_FORCE_COPY (0x02) | |||||
#define RT_STREAM_HUGE (0x04) | |||||
#define RT_STREAM_AICPU (0x08) | |||||
#define RT_STREAM_FORBIDDEN_DEFAULT (0x10) | |||||
#define RT_STREAM_HEAD (0x20) | |||||
#define RT_STREAM_PRIMARY_DEFAULT (0x40) | |||||
#define RT_STREAM_PRIMARY_FIRST_DEFAULT (0x80) | |||||
#define RT_STREAM_DEFAULT (0x00U) | |||||
#define RT_STREAM_PERSISTENT (0x01U) | |||||
#define RT_STREAM_FORCE_COPY (0x02U) | |||||
#define RT_STREAM_HUGE (0x04U) | |||||
#define RT_STREAM_AICPU (0x08U) | |||||
#define RT_STREAM_FORBIDDEN_DEFAULT (0x10U) | |||||
#define RT_STREAM_HEAD (0x20U) | |||||
#define RT_STREAM_PRIMARY_DEFAULT (0x40U) | |||||
#define RT_STREAM_PRIMARY_FIRST_DEFAULT (0x80U) | |||||
/** | /** | ||||
* @ingroup stream_type | * @ingroup stream_type | ||||
* @brief stream type | * @brief stream type | ||||
*/ | */ | ||||
#define RT_NORMAL_STREAM (0x00) | |||||
#define RT_HUGE_STREAM (0x01) | |||||
#define RT_NORMAL_STREAM (0x00U) | |||||
#define RT_HUGE_STREAM (0x01U) | |||||
/** | /** | ||||
* priority level default value when create a stream | * priority level default value when create a stream | ||||
*/ | */ | ||||
#define RT_STREAM_PRIORITY_DEFAULT (0) | |||||
#define RT_STREAM_PRIORITY_DEFAULT (0U) | |||||
/** | /** | ||||
* @ingroup dvrt_stream | * @ingroup dvrt_stream | ||||
@@ -215,4 +215,4 @@ RTS_API rtError_t rtDebugUnRegisterForStream(rtStream_t stream); | |||||
} | } | ||||
#endif | #endif | ||||
#endif // __CCE_RUNTIME_STREAM_H__ | |||||
#endif // CCE_RUNTIME_STREAM_H |
@@ -22,18 +22,7 @@ | |||||
#define PROF_TASK_TIME 0x00000002 | #define PROF_TASK_TIME 0x00000002 | ||||
#define PROF_AICORE_METRICS 0x00000004 | #define PROF_AICORE_METRICS 0x00000004 | ||||
#define PROF_AICPU_TRACE 0x00000008 | #define PROF_AICPU_TRACE 0x00000008 | ||||
#define PROF_MODEL_EXECUTE 0x00000010 | |||||
#define PROF_RUNTIME_API 0x00000020 | |||||
#define PROF_RUNTIME_TRACE 0x00000040 | |||||
#define PROF_SCHEDULE_TIMELINE 0x00000080 | |||||
#define PROF_SCHEDULE_TRACE 0x00000100 | |||||
#define PROF_AIVECTORCORE_METRICS 0x00000200 | |||||
#define PROF_SUBTASK_TIME 0x00000400 | |||||
#define PROF_TRAINING_TRACE 0x00000800 | |||||
#define PROF_HCCL_TRACE 0x00001000 | |||||
#define PROF_TASK_TRACE 0x00001852 | |||||
#define PROF_L2CACHE 0x00000010 | |||||
// system profilinig switch | // system profilinig switch | ||||
#define PROF_CPU 0x00010000 | #define PROF_CPU 0x00010000 | ||||
@@ -44,6 +33,19 @@ | |||||
#define PROF_SYS_AICORE_SAMPLE 0x00200000 | #define PROF_SYS_AICORE_SAMPLE 0x00200000 | ||||
#define PROF_AIVECTORCORE_SAMPLE 0x00400000 | #define PROF_AIVECTORCORE_SAMPLE 0x00400000 | ||||
#define PROF_MODEL_EXECUTE 0x0000001000000 | |||||
#define PROF_RUNTIME_API 0x0000002000000 | |||||
#define PROF_RUNTIME_TRACE 0x0000004000000 | |||||
#define PROF_SCHEDULE_TIMELINE 0x0000008000000 | |||||
#define PROF_SCHEDULE_TRACE 0x0000010000000 | |||||
#define PROF_AIVECTORCORE_METRICS 0x0000020000000 | |||||
#define PROF_SUBTASK_TIME 0x0000040000000 | |||||
#define PROF_TRAINING_TRACE 0x0000080000000 | |||||
#define PROF_HCCL_TRACE 0x0000100000000 | |||||
#define PROF_TASK_TRACE 0x0000185000002 | |||||
#define PROF_MODEL_LOAD 0x8000000000000000 | #define PROF_MODEL_LOAD 0x8000000000000000 | ||||
// DataTypeConfig MASK | // DataTypeConfig MASK | ||||
@@ -51,16 +53,7 @@ | |||||
#define PROF_TASK_TIME_MASK 0x00000002 | #define PROF_TASK_TIME_MASK 0x00000002 | ||||
#define PROF_AICORE_METRICS_MASK 0x00000004 | #define PROF_AICORE_METRICS_MASK 0x00000004 | ||||
#define PROF_AICPU_TRACE_MASK 0x00000008 | #define PROF_AICPU_TRACE_MASK 0x00000008 | ||||
#define PROF_MODEL_EXECUTE_MASK 0x00000010 | |||||
#define PROF_RUNTIME_API_MASK 0x00000020 | |||||
#define PROF_RUNTIME_TRACE_MASK 0x00000040 | |||||
#define PROF_SCHEDULE_TIMELINE_MASK 0x00000080 | |||||
#define PROF_SCHEDULE_TRACE_MASK 0x00000100 | |||||
#define PROF_AIVECTORCORE_METRICS_MASK 0x00000200 | |||||
#define PROF_SUBTASK_TIME_MASK 0x00000400 | |||||
#define PROF_TRAINING_TRACE_MASK 0x00000800 | |||||
#define PROF_HCCL_TRACE_MASK 0x00001000 | |||||
#define PROF_L2CACHE_MASK 0x00000010 | |||||
// system profilinig mask | // system profilinig mask | ||||
#define PROF_CPU_MASK 0x00010000 | #define PROF_CPU_MASK 0x00010000 | ||||
@@ -71,6 +64,17 @@ | |||||
#define PROF_SYS_AICORE_SAMPLE_MASK 0x00200000 | #define PROF_SYS_AICORE_SAMPLE_MASK 0x00200000 | ||||
#define PROF_AIVECTORCORE_SAMPLE_MASK 0x00400000 | #define PROF_AIVECTORCORE_SAMPLE_MASK 0x00400000 | ||||
#define PROF_MODEL_EXECUTE_MASK 0x0000001000000 | |||||
#define PROF_RUNTIME_API_MASK 0x0000002000000 | |||||
#define PROF_RUNTIME_TRACE_MASK 0x0000004000000 | |||||
#define PROF_SCHEDULE_TIMELINE_MASK 0x0000008000000 | |||||
#define PROF_SCHEDULE_TRACE_MASK 0x0000010000000 | |||||
#define PROF_AIVECTORCORE_METRICS_MASK 0x0000020000000 | |||||
#define PROF_SUBTASK_TIME_MASK 0x0000040000000 | |||||
#define PROF_TRAINING_TRACE_MASK 0x0000080000000 | |||||
#define PROF_HCCL_TRACE_MASK 0x0000100000000 | |||||
#define PROF_MODEL_LOAD_MASK 0x8000000000000000 | #define PROF_MODEL_LOAD_MASK 0x8000000000000000 | ||||
#ifndef OS_TYPE | #ifndef OS_TYPE | ||||