| @@ -17,16 +17,26 @@ | |||||
| #ifndef INC_EXTERNAL_ACL_PROF_H_ | #ifndef INC_EXTERNAL_ACL_PROF_H_ | ||||
| #define INC_EXTERNAL_ACL_PROF_H_ | #define INC_EXTERNAL_ACL_PROF_H_ | ||||
| #if (defined(_WIN32) || defined(_WIN64) || defined(_MSC_VER)) | |||||
| #define MSVP_PROF_API __declspec(dllexport) | |||||
| #else | |||||
| #define MSVP_PROF_API __attribute__((visibility("default"))) | |||||
| #endif | |||||
| #include "acl_base.h" | #include "acl_base.h" | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" { | extern "C" { | ||||
| #endif | #endif | ||||
| #define ACL_PROF_ACL_API 0x0001 | |||||
| #define ACL_PROF_TASK_TIME 0x0002 | |||||
| #define ACL_PROF_AICORE_METRICS 0x0004 | |||||
| #define ACL_PROF_AICPU 0x0008 | |||||
| #define ACL_PROF_ACL_API 0x0001ULL | |||||
| #define ACL_PROF_TASK_TIME 0x0002ULL | |||||
| #define ACL_PROF_AICORE_METRICS 0x0004ULL | |||||
| #define ACL_PROF_AICPU 0x0008ULL | |||||
| #define ACL_PROF_L2CACHE 0x0010ULL | |||||
| #define ACL_PROF_HCCL_TRACE 0x0020ULL | |||||
| #define ACL_PROF_TRAINING_TRACE 0x0040ULL | |||||
| #define ACL_PROF_MSPROFTX 0x0080ULL | |||||
| /** | /** | ||||
| * @deprecated please use aclprofGetOpTypeLen and aclprofGetOpTNameLen instead | * @deprecated please use aclprofGetOpTypeLen and aclprofGetOpTNameLen instead | ||||
| @@ -40,13 +50,20 @@ typedef enum { | |||||
| ACL_AICORE_MEMORY_BANDWIDTH = 2, | ACL_AICORE_MEMORY_BANDWIDTH = 2, | ||||
| ACL_AICORE_L0B_AND_WIDTH = 3, | ACL_AICORE_L0B_AND_WIDTH = 3, | ||||
| ACL_AICORE_RESOURCE_CONFLICT_RATIO = 4, | ACL_AICORE_RESOURCE_CONFLICT_RATIO = 4, | ||||
| ACL_AICORE_MEMORY_UB = 5, | |||||
| ACL_AICORE_NONE = 0xFF | ACL_AICORE_NONE = 0xFF | ||||
| } aclprofAicoreMetrics; | } aclprofAicoreMetrics; | ||||
| typedef enum { | |||||
| ACL_STEP_START = 0, // step start | |||||
| ACL_STEP_END = 1 // step end | |||||
| } aclprofStepTag; | |||||
| typedef struct aclprofConfig aclprofConfig; | typedef struct aclprofConfig aclprofConfig; | ||||
| typedef struct aclprofStopConfig aclprofStopConfig; | typedef struct aclprofStopConfig aclprofStopConfig; | ||||
| typedef struct aclprofAicoreEvents aclprofAicoreEvents; | typedef struct aclprofAicoreEvents aclprofAicoreEvents; | ||||
| typedef struct aclprofSubscribeConfig aclprofSubscribeConfig; | typedef struct aclprofSubscribeConfig aclprofSubscribeConfig; | ||||
| typedef struct aclprofStepInfo aclprofStepInfo; | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -60,7 +77,7 @@ typedef struct aclprofSubscribeConfig aclprofSubscribeConfig; | |||||
| * | * | ||||
| * @see aclprofFinalize | * @see aclprofFinalize | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofInit(const char *profilerResultPath, size_t length); | |||||
| MSVP_PROF_API aclError aclprofInit(const char *profilerResultPath, size_t length); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -71,7 +88,7 @@ ACL_FUNC_VISIBILITY aclError aclprofInit(const char *profilerResultPath, size_t | |||||
| * | * | ||||
| * @see aclprofInit | * @see aclprofInit | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofFinalize(); | |||||
| MSVP_PROF_API aclError aclprofFinalize(); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -84,7 +101,7 @@ ACL_FUNC_VISIBILITY aclError aclprofFinalize(); | |||||
| * | * | ||||
| * @see aclprofStop | * @see aclprofStop | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofStart(const aclprofConfig *profilerConfig); | |||||
| MSVP_PROF_API aclError aclprofStart(const aclprofConfig *profilerConfig); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -100,9 +117,9 @@ ACL_FUNC_VISIBILITY aclError aclprofStart(const aclprofConfig *profilerConfig); | |||||
| * | * | ||||
| * @see aclprofDestroyConfig | * @see aclprofDestroyConfig | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclprofConfig *aclprofCreateConfig(uint32_t *deviceIdList, uint32_t deviceNums, | |||||
| aclprofAicoreMetrics aicoreMetrics, | |||||
| aclprofAicoreEvents *aicoreEvents, uint64_t dataTypeConfig); | |||||
| MSVP_PROF_API aclprofConfig *aclprofCreateConfig(uint32_t *deviceIdList, uint32_t deviceNums, | |||||
| aclprofAicoreMetrics aicoreMetrics, aclprofAicoreEvents *aicoreEvents, | |||||
| uint64_t dataTypeConfig); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -115,7 +132,7 @@ ACL_FUNC_VISIBILITY aclprofConfig *aclprofCreateConfig(uint32_t *deviceIdList, u | |||||
| * | * | ||||
| * @see aclprofCreateConfig | * @see aclprofCreateConfig | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofDestroyConfig(const aclprofConfig *profilerConfig); | |||||
| MSVP_PROF_API aclError aclprofDestroyConfig(const aclprofConfig *profilerConfig); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -128,7 +145,7 @@ ACL_FUNC_VISIBILITY aclError aclprofDestroyConfig(const aclprofConfig *profilerC | |||||
| * | * | ||||
| * @see aclprofStart | * @see aclprofStart | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofStop(const aclprofConfig *profilerConfig); | |||||
| MSVP_PROF_API aclError aclprofStop(const aclprofConfig *profilerConfig); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -142,7 +159,7 @@ ACL_FUNC_VISIBILITY aclError aclprofStop(const aclprofConfig *profilerConfig); | |||||
| * | * | ||||
| * @see aclprofModelUnSubscribe | * @see aclprofModelUnSubscribe | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofModelSubscribe(uint32_t modelId, const aclprofSubscribeConfig *profSubscribeConfig); | |||||
| MSVP_PROF_API aclError aclprofModelSubscribe(uint32_t modelId, const aclprofSubscribeConfig *profSubscribeConfig); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -155,7 +172,7 @@ ACL_FUNC_VISIBILITY aclError aclprofModelSubscribe(uint32_t modelId, const aclpr | |||||
| * | * | ||||
| * @see aclprofModelSubscribe | * @see aclprofModelSubscribe | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofModelUnSubscribe(uint32_t modelId); | |||||
| MSVP_PROF_API aclError aclprofModelUnSubscribe(uint32_t modelId); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -169,8 +186,8 @@ ACL_FUNC_VISIBILITY aclError aclprofModelUnSubscribe(uint32_t modelId); | |||||
| * | * | ||||
| * @see aclprofDestroySubscribeConfig | * @see aclprofDestroySubscribeConfig | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclprofSubscribeConfig *aclprofCreateSubscribeConfig(int8_t timeInfoSwitch, | |||||
| aclprofAicoreMetrics aicoreMetrics, void *fd); | |||||
| MSVP_PROF_API aclprofSubscribeConfig *aclprofCreateSubscribeConfig(int8_t timeInfoSwitch, | |||||
| aclprofAicoreMetrics aicoreMetrics, void *fd); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -183,7 +200,7 @@ ACL_FUNC_VISIBILITY aclprofSubscribeConfig *aclprofCreateSubscribeConfig(int8_t | |||||
| * | * | ||||
| * @see aclprofCreateSubscribeConfig | * @see aclprofCreateSubscribeConfig | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofDestroySubscribeConfig(const aclprofSubscribeConfig *profSubscribeConfig); | |||||
| MSVP_PROF_API aclError aclprofDestroySubscribeConfig(const aclprofSubscribeConfig *profSubscribeConfig); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -194,7 +211,7 @@ ACL_FUNC_VISIBILITY aclError aclprofDestroySubscribeConfig(const aclprofSubscrib | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | * @retval ACL_SUCCESS The function is successfully executed. | ||||
| * @retval OtherValues Failure | * @retval OtherValues Failure | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofGetOpDescSize(size_t *opDescSize); | |||||
| MSVP_PROF_API aclError aclprofGetOpDescSize(size_t *opDescSize); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -207,7 +224,7 @@ ACL_FUNC_VISIBILITY aclError aclprofGetOpDescSize(size_t *opDescSize); | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | * @retval ACL_SUCCESS The function is successfully executed. | ||||
| * @retval OtherValues Failure | * @retval OtherValues Failure | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofGetOpNum(const void *opInfo, size_t opInfoLen, uint32_t *opNumber); | |||||
| MSVP_PROF_API aclError aclprofGetOpNum(const void *opInfo, size_t opInfoLen, uint32_t *opNumber); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -221,8 +238,7 @@ ACL_FUNC_VISIBILITY aclError aclprofGetOpNum(const void *opInfo, size_t opInfoLe | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | * @retval ACL_SUCCESS The function is successfully executed. | ||||
| * @retval OtherValues Failure | * @retval OtherValues Failure | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofGetOpTypeLen(const void *opInfo, size_t opInfoLen, uint32_t index, | |||||
| size_t *opTypeLen); | |||||
| MSVP_PROF_API aclError aclprofGetOpTypeLen(const void *opInfo, size_t opInfoLen, uint32_t index, size_t *opTypeLen); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -237,8 +253,8 @@ ACL_FUNC_VISIBILITY aclError aclprofGetOpTypeLen(const void *opInfo, size_t opIn | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | * @retval ACL_SUCCESS The function is successfully executed. | ||||
| * @retval OtherValues Failure | * @retval OtherValues Failure | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofGetOpType(const void *opInfo, size_t opInfoLen, uint32_t index, char *opType, | |||||
| size_t opTypeLen); | |||||
| MSVP_PROF_API aclError aclprofGetOpType(const void *opInfo, size_t opInfoLen, uint32_t index, char *opType, | |||||
| size_t opTypeLen); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -252,8 +268,7 @@ ACL_FUNC_VISIBILITY aclError aclprofGetOpType(const void *opInfo, size_t opInfoL | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | * @retval ACL_SUCCESS The function is successfully executed. | ||||
| * @retval OtherValues Failure | * @retval OtherValues Failure | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofGetOpNameLen(const void *opInfo, size_t opInfoLen, uint32_t index, | |||||
| size_t *opNameLen); | |||||
| MSVP_PROF_API aclError aclprofGetOpNameLen(const void *opInfo, size_t opInfoLen, uint32_t index, size_t *opNameLen); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -268,8 +283,8 @@ ACL_FUNC_VISIBILITY aclError aclprofGetOpNameLen(const void *opInfo, size_t opIn | |||||
| * @retval ACL_SUCCESS The function is successfully executed. | * @retval ACL_SUCCESS The function is successfully executed. | ||||
| * @retval OtherValues Failure | * @retval OtherValues Failure | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY aclError aclprofGetOpName(const void *opInfo, size_t opInfoLen, uint32_t index, char *opName, | |||||
| size_t opNameLen); | |||||
| MSVP_PROF_API aclError aclprofGetOpName(const void *opInfo, size_t opInfoLen, uint32_t index, char *opName, | |||||
| size_t opNameLen); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -282,7 +297,7 @@ ACL_FUNC_VISIBILITY aclError aclprofGetOpName(const void *opInfo, size_t opInfoL | |||||
| * @retval start time(us) of specified op with timestamp | * @retval start time(us) of specified op with timestamp | ||||
| * @retval 0 for failed | * @retval 0 for failed | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY uint64_t aclprofGetOpStart(const void *opInfo, size_t opInfoLen, uint32_t index); | |||||
| MSVP_PROF_API uint64_t aclprofGetOpStart(const void *opInfo, size_t opInfoLen, uint32_t index); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -295,7 +310,7 @@ ACL_FUNC_VISIBILITY uint64_t aclprofGetOpStart(const void *opInfo, size_t opInfo | |||||
| * @retval end time(us) of specified op with timestamp | * @retval end time(us) of specified op with timestamp | ||||
| * @retval 0 for failed | * @retval 0 for failed | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY uint64_t aclprofGetOpEnd(const void *opInfo, size_t opInfoLen, uint32_t index); | |||||
| MSVP_PROF_API uint64_t aclprofGetOpEnd(const void *opInfo, size_t opInfoLen, uint32_t index); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -308,7 +323,7 @@ ACL_FUNC_VISIBILITY uint64_t aclprofGetOpEnd(const void *opInfo, size_t opInfoLe | |||||
| * @retval execution time(us) of specified op with timestamp | * @retval execution time(us) of specified op with timestamp | ||||
| * @retval 0 for failed | * @retval 0 for failed | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY uint64_t aclprofGetOpDuration(const void *opInfo, size_t opInfoLen, uint32_t index); | |||||
| MSVP_PROF_API uint64_t aclprofGetOpDuration(const void *opInfo, size_t opInfoLen, uint32_t index); | |||||
| /** | /** | ||||
| * @ingroup AscendCL | * @ingroup AscendCL | ||||
| @@ -320,7 +335,37 @@ ACL_FUNC_VISIBILITY uint64_t aclprofGetOpDuration(const void *opInfo, size_t opI | |||||
| * @retval model id of subscription data | * @retval model id of subscription data | ||||
| * @retval 0 for failed | * @retval 0 for failed | ||||
| */ | */ | ||||
| ACL_FUNC_VISIBILITY size_t aclprofGetModelId(const void *opInfo, size_t opInfoLen, uint32_t index); | |||||
| MSVP_PROF_API size_t aclprofGetModelId(const void *opInfo, size_t opInfoLen, uint32_t index); | |||||
| /** | |||||
| * @ingroup AscendCL | |||||
| * @brief | |||||
| * | |||||
| * @param stepInfo [IN] pointer to stepInfo data | |||||
| * @param aclprofstepTag [IN] start or end flag | |||||
| * @param stream [IN] steam info | |||||
| * | |||||
| * @retval 0 for failed | |||||
| */ | |||||
| MSVP_PROF_API aclError aclprofGetStepTimestamp(aclprofStepInfo *stepInfo, aclprofStepTag tag, aclrtStream stream); | |||||
| /** | |||||
| * @ingroup AscendCL | |||||
| * @brief create pointer to aclprofStepInfo data | |||||
| * | |||||
| * | |||||
| * @retval aclprofStepInfo pointer | |||||
| */ | |||||
| MSVP_PROF_API aclprofStepInfo *aclprofCreateStepInfo(); | |||||
| /** | |||||
| * @ingroup AscendCL | |||||
| * @brief destroy aclprofStepInfo pointer | |||||
| * | |||||
| * | |||||
| * @retval void | |||||
| */ | |||||
| MSVP_PROF_API void aclprofDestroyStepInfo(aclprofStepInfo *stepinfo); | |||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| } | } | ||||